mirror of
https://github.com/prefix-dev/setup-pixi
synced 2026-10-08 15:04:08 +03:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b1ab8f237b | ||
|
|
d7951c27cd | ||
|
|
4522f6409d | ||
|
|
a8c5cac0eb | ||
|
|
307e5e5842 | ||
|
|
273e4808c8 | ||
|
|
c690703e5f | ||
|
|
29045c2e67 | ||
|
|
2fd23d90b5 | ||
|
|
14c8aabd75 |
@@ -0,0 +1,7 @@
|
||||
:8080 {
|
||||
@unauthorized not header Authorization "Bearer s3cr3tT0k3nABC123"
|
||||
respond @unauthorized "Unauthorized: Invalid token" 401
|
||||
|
||||
root * ./assets
|
||||
file_server
|
||||
}
|
||||
@@ -47,7 +47,7 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
latest_version="$(jq -r '.version' package.json)"
|
||||
count_expected=17
|
||||
count_expected=19
|
||||
count_actual="$(grep -c "setup-pixi@v$latest_version" README.md || true)"
|
||||
if [ "$count_actual" -ne "$count_expected" ]; then
|
||||
echo "::error file=README.md::Expected $count_expected mentions of \`setup-pixi@v$latest_version\` in README.md, but found $count_actual."
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
TAG_NAME: v${{ steps.version-metadata.outputs.newVersion }}
|
||||
- name: Create release
|
||||
if: steps.version-metadata.outputs.changed == 'true'
|
||||
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
|
||||
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
|
||||
with:
|
||||
generate_release_notes: true
|
||||
tag_name: v${{ steps.version-metadata.outputs.newVersion }}
|
||||
|
||||
+299
-109
@@ -190,6 +190,94 @@ jobs:
|
||||
pixi-url: https://github.com/prefix-dev/pixi/releases/download/v0.14.0/pixi-x86_64-unknown-linux-musl
|
||||
- run: pixi --version | grep -q "pixi 0.14.0"
|
||||
|
||||
pixi-url-bearer-token:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi.toml
|
||||
run: mv test/old-pixi-lockfiles/* .
|
||||
- name: Setup caddy
|
||||
run: |
|
||||
set -euo pipefail
|
||||
curl -Ls -o caddy.tar.gz https://github.com/caddyserver/caddy/releases/download/v2.10.0/caddy_2.10.0_linux_amd64.tar.gz
|
||||
tar -xzf caddy.tar.gz
|
||||
chmod +x caddy
|
||||
|
||||
mkdir -p assets
|
||||
curl -Ls -o assets/pixi https://github.com/prefix-dev/pixi/releases/download/v0.14.0/pixi-x86_64-unknown-linux-musl
|
||||
|
||||
cp .github/assets/pixi-url-auth-test/Caddyfile .
|
||||
|
||||
./caddy run --config Caddyfile &
|
||||
- run: ps -aux | grep caddy
|
||||
- name: Run with wrong token
|
||||
uses: ./
|
||||
id: wrongtoken
|
||||
with:
|
||||
cache: false
|
||||
pixi-url: http://localhost:8080/pixi
|
||||
pixi-url-bearer-token: wrongtoken
|
||||
continue-on-error: true
|
||||
- name: Fail if wrong token did not fail
|
||||
run: |
|
||||
echo "Unexpected success!"
|
||||
exit 1
|
||||
if: ${{ steps.wrongtoken.outcome != 'failure' }}
|
||||
- name: Run with correct token
|
||||
uses: ./
|
||||
with:
|
||||
cache: false
|
||||
pixi-url: http://localhost:8080/pixi
|
||||
pixi-url-bearer-token: s3cr3tT0k3nABC123
|
||||
- run: pixi --version | grep -q "pixi 0.14.0"
|
||||
|
||||
pixi-url-custom-template-no-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: ./
|
||||
with:
|
||||
pixi-url: |
|
||||
{{#if latest ~}}
|
||||
https://github.com/prefix-dev/pixi/releases/download/v0.14.0/{{pixiFile}}
|
||||
{{~else~}}
|
||||
https://github.com/prefix-dev/pixi/releases/download/{{version}}/{{pixiFile}}
|
||||
{{~/if}}
|
||||
run-install: false
|
||||
- run: pixi --version | grep -q "pixi 0.14.0"
|
||||
|
||||
pixi-url-custom-template-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: ./
|
||||
with:
|
||||
pixi-url: |
|
||||
{{#if latest ~}}
|
||||
https://github.com/prefix-dev/pixi/releases/download/v0.14.0/{{pixiFile}}
|
||||
{{~else~}}
|
||||
https://github.com/prefix-dev/pixi/releases/download/{{version}}/{{pixiFile}}
|
||||
{{~/if}}
|
||||
run-install: false
|
||||
pixi-version: v0.15.1
|
||||
- run: pixi --version | grep -q "pixi 0.15.1"
|
||||
|
||||
pixi-url-custom-template-version-latest:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: ./
|
||||
with:
|
||||
pixi-url: |
|
||||
{{#if latest ~}}
|
||||
https://github.com/prefix-dev/pixi/releases/download/v0.14.0/{{pixiFile}}
|
||||
{{~else~}}
|
||||
https://github.com/prefix-dev/pixi/releases/download/{{version}}/{{pixiFile}}
|
||||
{{~/if}}
|
||||
run-install: false
|
||||
pixi-version: latest
|
||||
- run: pixi --version | grep -q "pixi 0.14.0"
|
||||
|
||||
custom-manifest-path:
|
||||
strategy:
|
||||
matrix:
|
||||
@@ -426,6 +514,7 @@ jobs:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi.toml
|
||||
@@ -444,6 +533,7 @@ jobs:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi.toml
|
||||
@@ -884,118 +974,218 @@ jobs:
|
||||
- run: which python | grep '.pixi/envs/py311/bin/python'
|
||||
- run: '[[ $PIXI_ENVIRONMENT_NAME = "py311" ]]'
|
||||
|
||||
# not properly testable
|
||||
# https://github.com/actions/runner/issues/2347
|
||||
# https://github.com/orgs/community/discussions/15452
|
||||
# test-cache-fail-no-lockfile:
|
||||
# runs-on: ${{ matrix.os }}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
# steps:
|
||||
# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
# - name: Move pixi files
|
||||
# run: mv test/no-lockfile/* .
|
||||
# - uses: ./
|
||||
# with:
|
||||
# cache: true
|
||||
# cache-key: test-cache-no-lockfile-${{ github.sha }}-${{ github.run_attempt }}-
|
||||
# - run: exit 1
|
||||
# if: success()
|
||||
multiple-invokations:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi.toml
|
||||
run: mv test/multiple-environments/* .
|
||||
- uses: ./
|
||||
with:
|
||||
run-install: false
|
||||
- uses: ./
|
||||
with:
|
||||
environments: >-
|
||||
py311 py312
|
||||
activate-environment: py311
|
||||
|
||||
# test-incorrect-version:
|
||||
# runs-on: ${{ matrix.os }}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
# steps:
|
||||
# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
# - name: Move pixi files
|
||||
# run: mv test/default/* .
|
||||
# - uses: ./
|
||||
# with:
|
||||
# pixi-version: 0.1.0
|
||||
# - run: exit 1
|
||||
# if: success()
|
||||
env-variable-input-custom-bin-path:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi.toml
|
||||
run: mv test/default/* .
|
||||
- uses: ./
|
||||
env:
|
||||
SETUP_PIXI_PIXI_BIN_PATH: custom-bin/pixi${{ matrix.os == 'windows-latest' && '.exe' || '' }}
|
||||
with:
|
||||
cache: false
|
||||
- run: |
|
||||
test -f custom-bin/pixi${{ matrix.os == 'windows-latest' && '.exe' || '' }}
|
||||
pixi --help
|
||||
which pixi | grep -q custom-bin/pixi
|
||||
# which pixi should be absolute
|
||||
which pixi | grep -q "^/"
|
||||
|
||||
# test-frozen-and-locked:
|
||||
# runs-on: ${{ matrix.os }}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
# steps:
|
||||
# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
# - name: Move pixi files
|
||||
# run: mv test/default/* .
|
||||
# - uses: ./
|
||||
# with:
|
||||
# pixi-version: v0.5.0
|
||||
# frozen: true
|
||||
# locked: true
|
||||
# - run: exit 1
|
||||
# if: success()
|
||||
env-variable-input-custom-pixi-url:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi.toml
|
||||
run: mv test/old-pixi-lockfiles/* .
|
||||
- uses: ./
|
||||
env:
|
||||
SETUP_PIXI_PIXI_URL: https://github.com/prefix-dev/pixi/releases/download/v0.14.0/pixi-x86_64-unknown-linux-musl
|
||||
with:
|
||||
cache: false
|
||||
- run: pixi --version | grep -q "pixi 0.14.0"
|
||||
|
||||
# test-frozen-no-lockfile:
|
||||
# runs-on: ${{ matrix.os }}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
# steps:
|
||||
# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
# - name: Move pixi files
|
||||
# run: mv test/no-lockfile/* .
|
||||
# - uses: ./
|
||||
# with:
|
||||
# frozen: true
|
||||
# - run: exit 1
|
||||
# if: success()
|
||||
env-variable-input-precendence:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi.toml
|
||||
run: mv test/old-pixi-lockfiles/* .
|
||||
- uses: ./
|
||||
env:
|
||||
SETUP_PIXI_PIXI_URL: https://github.com/prefix-dev/pixi/releases/download/v0.14.0/pixi-x86_64-unknown-linux-musl
|
||||
with:
|
||||
cache: false
|
||||
pixi-url: https://github.com/prefix-dev/pixi/releases/download/v0.49.0/pixi-x86_64-unknown-linux-musl
|
||||
- run: pixi --version | grep -q "pixi 0.49.0"
|
||||
|
||||
# test-locked-no-lockfile:
|
||||
# runs-on: ${{ matrix.os }}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
# steps:
|
||||
# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
# - name: Move pixi files
|
||||
# run: mv test/no-lockfile/* .
|
||||
# - uses: ./
|
||||
# with:
|
||||
# locked: true
|
||||
# - run: exit 1
|
||||
# if: success()
|
||||
test-cache-fail-no-lockfile:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi files
|
||||
run: mv test/no-lockfile/* .
|
||||
- uses: ./
|
||||
id: test
|
||||
with:
|
||||
cache: true
|
||||
cache-key: test-cache-no-lockfile-${{ github.sha }}-${{ github.run_attempt }}-
|
||||
continue-on-error: true
|
||||
- name: Fail on unexpected success
|
||||
run: |
|
||||
echo "Unexpected success!"
|
||||
exit 1
|
||||
if: ${{ steps.test.outcome != 'failure' }}
|
||||
|
||||
# test-lockfile-not-up-to-date:
|
||||
# runs-on: ${{ matrix.os }}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
# steps:
|
||||
# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
# - name: Move pixi files
|
||||
# run: mv test/lockfile-not-up-to-date/* .
|
||||
# - uses: ./
|
||||
# # locked: true is implicit
|
||||
# - run: exit 1
|
||||
# if: success()
|
||||
test-incorrect-version:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi files
|
||||
run: mv test/default/* .
|
||||
- uses: ./
|
||||
id: test
|
||||
with:
|
||||
pixi-version: 0.1.0
|
||||
continue-on-error: true
|
||||
- name: Fail on unexpected success
|
||||
run: |
|
||||
echo "Unexpected success!"
|
||||
exit 1
|
||||
if: ${{ steps.test.outcome != 'failure' }}
|
||||
|
||||
# cache-write-true-no-lockfile:
|
||||
# timeout-minutes: 10
|
||||
# runs-on: ${{ matrix.os }}
|
||||
# strategy:
|
||||
# fail-fast: false
|
||||
# matrix:
|
||||
# os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
# steps:
|
||||
# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
# - name: Move pixi files
|
||||
# run: mv test/no-lockfile/* .
|
||||
# - uses: ./
|
||||
# with:
|
||||
# cache-write: true
|
||||
test-frozen-and-locked:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi files
|
||||
run: mv test/default/* .
|
||||
- uses: ./
|
||||
id: test
|
||||
with:
|
||||
pixi-version: v0.5.0
|
||||
frozen: true
|
||||
locked: true
|
||||
continue-on-error: true
|
||||
- name: Fail on unexpected success
|
||||
run: |
|
||||
echo "Unexpected success!"
|
||||
exit 1
|
||||
if: ${{ steps.test.outcome != 'failure' }}
|
||||
|
||||
test-frozen-no-lockfile:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi files
|
||||
run: mv test/no-lockfile/* .
|
||||
- uses: ./
|
||||
id: test
|
||||
with:
|
||||
frozen: true
|
||||
continue-on-error: true
|
||||
- name: Fail on unexpected success
|
||||
run: |
|
||||
echo "Unexpected success!"
|
||||
exit 1
|
||||
if: ${{ steps.test.outcome != 'failure' }}
|
||||
|
||||
test-locked-no-lockfile:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi files
|
||||
run: mv test/no-lockfile/* .
|
||||
- uses: ./
|
||||
id: test
|
||||
with:
|
||||
locked: true
|
||||
continue-on-error: true
|
||||
- name: Fail on unexpected success
|
||||
run: |
|
||||
echo "Unexpected success!"
|
||||
exit 1
|
||||
if: ${{ steps.test.outcome != 'failure' }}
|
||||
|
||||
test-lockfile-not-up-to-date:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi files
|
||||
run: mv test/lockfile-not-up-to-date/* .
|
||||
- uses: ./
|
||||
id: test
|
||||
# locked: true is implicit
|
||||
continue-on-error: true
|
||||
- name: Fail on unexpected success
|
||||
run: |
|
||||
echo "Unexpected success!"
|
||||
exit 1
|
||||
if: ${{ steps.test.outcome != 'failure' }}
|
||||
|
||||
cache-write-true-no-lockfile:
|
||||
timeout-minutes: 10
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Move pixi files
|
||||
run: mv test/no-lockfile/* .
|
||||
- uses: ./
|
||||
id: test
|
||||
with:
|
||||
cache-write: true
|
||||
continue-on-error: true
|
||||
- name: Fail on unexpected success
|
||||
run: |
|
||||
echo "Unexpected success!"
|
||||
exit 1
|
||||
if: ${{ steps.test.outcome != 'failure' }}
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
dist
|
||||
pnpm-lock.yaml
|
||||
pixi.lock
|
||||
|
||||
@@ -23,9 +23,9 @@ GitHub Action to set up the [pixi](https://github.com/prefix-dev/pixi) package m
|
||||
## Usage
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
pixi-version: v0.44.0
|
||||
pixi-version: v0.49.0
|
||||
|
||||
cache: true
|
||||
auth-host: prefix.dev
|
||||
@@ -35,7 +35,7 @@ GitHub Action to set up the [pixi](https://github.com/prefix-dev/pixi) package m
|
||||
|
||||
> [!WARNING]
|
||||
> Since pixi is not yet stable, the API of this action may change between minor versions.
|
||||
> Please pin the versions of this action to a specific version (i.e., `prefix-dev/setup-pixi@v0.8.9`) to avoid breaking changes.
|
||||
> Please pin the versions of this action to a specific version (i.e., `prefix-dev/setup-pixi@v0.8.13`) to avoid breaking changes.
|
||||
> You can automatically update the version of this action by using [Dependabot](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot).
|
||||
>
|
||||
> Put the following in your `.github/dependabot.yml` file to enable Dependabot for your GitHub Actions:
|
||||
@@ -74,7 +74,7 @@ In order to not exceed the [10 GB cache size limit](https://docs.github.com/en/a
|
||||
This can be done by setting the `cache-write` argument.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
cache: true
|
||||
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
|
||||
@@ -119,7 +119,7 @@ test:
|
||||
environment: [py311, py312]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
environments: ${{ matrix.environment }}
|
||||
```
|
||||
@@ -129,7 +129,7 @@ test:
|
||||
The following example will install both the `py311` and the `py312` environment on the runner.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
# separated by spaces
|
||||
environments: >-
|
||||
@@ -165,7 +165,7 @@ Specify the token using the `auth-token` input argument.
|
||||
This form of authentication (bearer token in the request headers) is mainly used at [prefix.dev](https://prefix.dev).
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
auth-host: prefix.dev
|
||||
auth-token: ${{ secrets.PREFIX_DEV_TOKEN }}
|
||||
@@ -177,7 +177,7 @@ Specify the username and password using the `auth-username` and `auth-password`
|
||||
This form of authentication (HTTP Basic Auth) is used in some enterprise environments with [artifactory](https://jfrog.com/artifactory) for example.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
auth-host: custom-artifactory.com
|
||||
auth-username: ${{ secrets.PIXI_USERNAME }}
|
||||
@@ -190,7 +190,7 @@ Specify the conda-token using the `auth-conda-token` input argument.
|
||||
This form of authentication (token is encoded in URL: `https://my-quetz-instance.com/t/<token>/get/custom-channel`) is used at [anaconda.org](https://anaconda.org) or with [quetz instances](https://github.com/mamba-org/quetz).
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
auth-host: anaconda.org # or my-quetz-instance.com
|
||||
auth-conda-token: ${{ secrets.CONDA_TOKEN }}
|
||||
@@ -202,7 +202,7 @@ Specify the S3 key pair using the `auth-access-key-id` and `auth-secret-access-k
|
||||
You can also specify the session token using the `auth-session-token` input argument.
|
||||
|
||||
```yaml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
auth-host: s3://my-s3-bucket
|
||||
auth-s3-access-key-id: ${{ secrets.ACCESS_KEY_ID }}
|
||||
@@ -274,7 +274,7 @@ To this end, `setup-pixi` adds all environment variables set when executing `pix
|
||||
As a result, all installed binaries can be accessed without having to call `pixi run`.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
activate-environment: true
|
||||
```
|
||||
@@ -282,7 +282,7 @@ As a result, all installed binaries can be accessed without having to call `pixi
|
||||
If you are installing multiple environments, you will need to specify the name of the environment that you want to be activated.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
environments: >-
|
||||
py311
|
||||
@@ -299,7 +299,7 @@ You can specify whether `setup-pixi` should run `pixi install --frozen` or `pixi
|
||||
See the [official documentation](https://prefix.dev/docs/pixi/cli#install) for more information about the `--frozen` and `--locked` flags.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
locked: true
|
||||
# or
|
||||
@@ -318,7 +318,7 @@ The first one is the debug logging of the action itself.
|
||||
This can be enabled by running the action with the `RUNNER_DEBUG` environment variable set to `true`.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
env:
|
||||
RUNNER_DEBUG: true
|
||||
```
|
||||
@@ -336,7 +336,7 @@ The second type is the debug logging of the pixi executable.
|
||||
This can be specified by setting the `log-level` input.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
# one of `q`, `default`, `v`, `vv`, or `vvv`.
|
||||
log-level: vvv
|
||||
@@ -362,7 +362,7 @@ If nothing is specified, `post-cleanup` will default to `true`.
|
||||
On self-hosted runners, you also might want to alter the default pixi install location to a temporary location. You can use `pixi-bin-path: ${{ runner.temp }}/bin/pixi` to do this.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
post-cleanup: true
|
||||
# ${{ runner.temp }}\Scripts\pixi.exe on Windows
|
||||
@@ -378,7 +378,7 @@ You can also use a preinstalled local version of pixi on the runner by not setti
|
||||
This can be overwritten by setting the `manifest-path` input argument.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
manifest-path: pyproject.toml
|
||||
```
|
||||
@@ -388,11 +388,54 @@ This can be overwritten by setting the `manifest-path` input argument.
|
||||
If you only want to install pixi and not install the current project, you can use the `run-install` option.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.9
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
run-install: false
|
||||
```
|
||||
|
||||
### Download pixi from a custom URL
|
||||
|
||||
You can also download pixi from a custom URL by setting the `pixi-url` input argument.
|
||||
Optionally, you can combine this with the `pixi-url-bearer-token` input argument to authenticate the download request.
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
pixi-url: https://pixi-mirror.example.com/releases/download/v0.48.0/pixi-x86_64-unknown-linux-musl
|
||||
pixi-url-bearer-token: ${{ secrets.PIXI_MIRROR_BEARER_TOKEN }}
|
||||
```
|
||||
|
||||
The `pixi-url` input argument can also be a [Handlebars](https://handlebarsjs.com/) template string.
|
||||
It will be rendered with the following variables:
|
||||
|
||||
- `version`: The version of pixi that is being installed (`latest` or a version like `v0.48.0`).
|
||||
- `latest`: A boolean indicating if the version is `latest`.
|
||||
- `pixiFile`: The name of the pixi binary to download, as determined by the system of the runner (e.g., `pixi-x86_64-unknown-linux-musl`).
|
||||
|
||||
By default, `pixi-url` is equivalent to the following template:
|
||||
|
||||
```yml
|
||||
- uses: prefix-dev/setup-pixi@v0.8.13
|
||||
with:
|
||||
pixi-url: |
|
||||
{{#if latest~}}
|
||||
https://github.com/prefix-dev/pixi/releases/latest/download/{{pixiFile}}
|
||||
{{~else~}}
|
||||
https://github.com/prefix-dev/pixi/releases/download/{{version}}/{{pixiFile}}
|
||||
{{~/if}}
|
||||
```
|
||||
|
||||
### Setting inputs from environment variables
|
||||
|
||||
Alternatively to setting the inputs in the `with` section, you can also set each of them using environment variables.
|
||||
The corresponding environment variable names are derived from the input names by converting them to uppercase, replacing hyphens with underscores, and prefixing them with `SETUP_PIXI_`.
|
||||
|
||||
For example, the `pixi-bin-path` input can be set using the `SETUP_PIXI_PIXI_BIN_PATH` environment variable.
|
||||
|
||||
This is particularly useful if executing the action on a self-hosted runner.
|
||||
|
||||
Inputs always take precedence over environment variables.
|
||||
|
||||
## More examples
|
||||
|
||||
If you want to see more examples, you can take a look at the [GitHub Workflows of this repository](.github/workflows/test.yml).
|
||||
|
||||
+3
-1
@@ -9,7 +9,9 @@ inputs:
|
||||
pixi-version:
|
||||
description: Version of pixi to install
|
||||
pixi-url:
|
||||
description: URL of pixi to install
|
||||
description: URL of pixi to install. Can be a Handlebars template receiving `version`, `latest`, and `pixiFile` as variables.
|
||||
pixi-url-bearer-token:
|
||||
description: Bearer token to use for authentication when downloading pixi from a URL.
|
||||
log-level:
|
||||
description: |
|
||||
Log level for the pixi CLI.
|
||||
|
||||
+6050
-172
File diff suppressed because one or more lines are too long
+5998
-119
File diff suppressed because one or more lines are too long
+9
-9
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "setup-pixi",
|
||||
"version": "0.8.9",
|
||||
"version": "0.8.13",
|
||||
"private": true,
|
||||
"description": "Action to set up the pixi package manager.",
|
||||
"scripts": {
|
||||
@@ -27,20 +27,20 @@
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/io": "^1.1.3",
|
||||
"@actions/tool-cache": "^2.0.2",
|
||||
"smol-toml": "^1.3.4",
|
||||
"handlebars": "^4.7.8",
|
||||
"smol-toml": "^1.4.0",
|
||||
"untildify": "^5.0.0",
|
||||
"which": "^5.0.0",
|
||||
"zod": "^3.24.2"
|
||||
"zod": "^3.25.67"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.23.0",
|
||||
"@types/eslint__js": "^9.14.0",
|
||||
"@types/node": "^22.13.14",
|
||||
"@eslint/js": "^9.30.0",
|
||||
"@types/node": "^24.0.8",
|
||||
"@types/which": "^3.0.4",
|
||||
"eslint": "^9.23.0",
|
||||
"prettier": "^3.5.3",
|
||||
"eslint": "^9.30.0",
|
||||
"prettier": "^3.6.2",
|
||||
"tsup": "^8.4.0",
|
||||
"typescript": "^5.8.2",
|
||||
"typescript-eslint": "^8.29.0"
|
||||
"typescript-eslint": "^8.35.1"
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+222
-188
@@ -23,9 +23,12 @@ importers:
|
||||
'@actions/tool-cache':
|
||||
specifier: ^2.0.2
|
||||
version: 2.0.2
|
||||
handlebars:
|
||||
specifier: ^4.7.8
|
||||
version: 4.7.8
|
||||
smol-toml:
|
||||
specifier: ^1.3.4
|
||||
version: 1.3.4
|
||||
specifier: ^1.4.0
|
||||
version: 1.4.0
|
||||
untildify:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
@@ -33,27 +36,24 @@ importers:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
zod:
|
||||
specifier: ^3.24.2
|
||||
version: 3.25.45
|
||||
specifier: ^3.25.67
|
||||
version: 3.25.67
|
||||
devDependencies:
|
||||
'@eslint/js':
|
||||
specifier: ^9.23.0
|
||||
version: 9.28.0
|
||||
'@types/eslint__js':
|
||||
specifier: ^9.14.0
|
||||
version: 9.14.0
|
||||
specifier: ^9.30.0
|
||||
version: 9.30.0
|
||||
'@types/node':
|
||||
specifier: ^22.13.14
|
||||
version: 22.15.29
|
||||
specifier: ^24.0.8
|
||||
version: 24.0.8
|
||||
'@types/which':
|
||||
specifier: ^3.0.4
|
||||
version: 3.0.4
|
||||
eslint:
|
||||
specifier: ^9.23.0
|
||||
version: 9.28.0
|
||||
specifier: ^9.30.0
|
||||
version: 9.30.0
|
||||
prettier:
|
||||
specifier: ^3.5.3
|
||||
version: 3.5.3
|
||||
specifier: ^3.6.2
|
||||
version: 3.6.2
|
||||
tsup:
|
||||
specifier: ^8.4.0
|
||||
version: 8.5.0(typescript@5.8.3)
|
||||
@@ -61,8 +61,8 @@ importers:
|
||||
specifier: ^5.8.2
|
||||
version: 5.8.3
|
||||
typescript-eslint:
|
||||
specifier: ^8.29.0
|
||||
version: 8.33.0(eslint@9.28.0)(typescript@5.8.3)
|
||||
specifier: ^8.35.1
|
||||
version: 8.35.1(eslint@9.30.0)(typescript@5.8.3)
|
||||
|
||||
packages:
|
||||
|
||||
@@ -292,12 +292,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@eslint-community/eslint-utils@4.5.1':
|
||||
resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
||||
|
||||
'@eslint-community/eslint-utils@4.7.0':
|
||||
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
@@ -308,32 +302,36 @@ packages:
|
||||
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
|
||||
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
||||
|
||||
'@eslint/config-array@0.20.0':
|
||||
resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==}
|
||||
'@eslint/config-array@0.21.0':
|
||||
resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/config-helpers@0.2.2':
|
||||
resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==}
|
||||
'@eslint/config-helpers@0.3.0':
|
||||
resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/core@0.14.0':
|
||||
resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/core@0.15.1':
|
||||
resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/eslintrc@3.3.1':
|
||||
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/js@9.28.0':
|
||||
resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==}
|
||||
'@eslint/js@9.30.0':
|
||||
resolution: {integrity: sha512-Wzw3wQwPvc9sHM+NjakWTcPx11mbZyiYHuwWa/QfZ7cIRX7WK54PSk7bdyXDaoaopUcMatv1zaQvOAAO8hCdww==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/object-schema@2.1.6':
|
||||
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/plugin-kit@0.3.1':
|
||||
resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==}
|
||||
'@eslint/plugin-kit@0.3.3':
|
||||
resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@fastify/busboy@2.1.1':
|
||||
@@ -356,8 +354,8 @@ packages:
|
||||
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
|
||||
engines: {node: '>=18.18'}
|
||||
|
||||
'@humanwhocodes/retry@0.4.2':
|
||||
resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
|
||||
'@humanwhocodes/retry@0.4.3':
|
||||
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
|
||||
engines: {node: '>=18.18'}
|
||||
|
||||
'@isaacs/cliui@8.0.2':
|
||||
@@ -510,80 +508,78 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@types/eslint__js@9.14.0':
|
||||
resolution: {integrity: sha512-s0jepCjOJWB/GKcuba4jISaVpBudw3ClXJ3fUK4tugChUMQsp6kSwuA8Dcx6wFd/JsJqcY8n4rEpa5RTHs5ypA==}
|
||||
deprecated: This is a stub types definition. @eslint/js provides its own type definitions, so you do not need this installed.
|
||||
|
||||
'@types/estree@1.0.6':
|
||||
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
|
||||
|
||||
'@types/estree@1.0.7':
|
||||
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
|
||||
'@types/estree@1.0.8':
|
||||
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
|
||||
|
||||
'@types/json-schema@7.0.15':
|
||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||
|
||||
'@types/node@22.15.29':
|
||||
resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==}
|
||||
'@types/node@24.0.8':
|
||||
resolution: {integrity: sha512-WytNrFSgWO/esSH9NbpWUfTMGQwCGIKfCmNlmFDNiI5gGhgMmEA+V1AEvKLeBNvvtBnailJtkrEa2OIISwrVAA==}
|
||||
|
||||
'@types/which@3.0.4':
|
||||
resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.33.0':
|
||||
resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==}
|
||||
'@typescript-eslint/eslint-plugin@8.35.1':
|
||||
resolution: {integrity: sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^8.33.0
|
||||
'@typescript-eslint/parser': ^8.35.1
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <5.9.0'
|
||||
|
||||
'@typescript-eslint/parser@8.33.0':
|
||||
resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==}
|
||||
'@typescript-eslint/parser@8.35.1':
|
||||
resolution: {integrity: sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <5.9.0'
|
||||
|
||||
'@typescript-eslint/project-service@8.33.0':
|
||||
resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/scope-manager@8.33.0':
|
||||
resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/tsconfig-utils@8.33.0':
|
||||
resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==}
|
||||
'@typescript-eslint/project-service@8.35.1':
|
||||
resolution: {integrity: sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <5.9.0'
|
||||
|
||||
'@typescript-eslint/type-utils@8.33.0':
|
||||
resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==}
|
||||
'@typescript-eslint/scope-manager@8.35.1':
|
||||
resolution: {integrity: sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/tsconfig-utils@8.35.1':
|
||||
resolution: {integrity: sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <5.9.0'
|
||||
|
||||
'@typescript-eslint/type-utils@8.35.1':
|
||||
resolution: {integrity: sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <5.9.0'
|
||||
|
||||
'@typescript-eslint/types@8.33.0':
|
||||
resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==}
|
||||
'@typescript-eslint/types@8.35.1':
|
||||
resolution: {integrity: sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.33.0':
|
||||
resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==}
|
||||
'@typescript-eslint/typescript-estree@8.35.1':
|
||||
resolution: {integrity: sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <5.9.0'
|
||||
|
||||
'@typescript-eslint/utils@8.33.0':
|
||||
resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==}
|
||||
'@typescript-eslint/utils@8.35.1':
|
||||
resolution: {integrity: sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <5.9.0'
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.33.0':
|
||||
resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==}
|
||||
'@typescript-eslint/visitor-keys@8.35.1':
|
||||
resolution: {integrity: sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
abort-controller@3.0.0:
|
||||
@@ -595,8 +591,8 @@ packages:
|
||||
peerDependencies:
|
||||
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
|
||||
acorn@8.14.1:
|
||||
resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
|
||||
acorn@8.15.0:
|
||||
resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
hasBin: true
|
||||
|
||||
@@ -635,11 +631,11 @@ packages:
|
||||
balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
brace-expansion@1.1.12:
|
||||
resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
|
||||
|
||||
brace-expansion@2.0.1:
|
||||
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
|
||||
brace-expansion@2.0.2:
|
||||
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
|
||||
|
||||
braces@3.0.3:
|
||||
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
|
||||
@@ -763,20 +759,20 @@ packages:
|
||||
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
eslint-scope@8.3.0:
|
||||
resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
|
||||
eslint-scope@8.4.0:
|
||||
resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
eslint-visitor-keys@3.4.3:
|
||||
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
eslint-visitor-keys@4.2.0:
|
||||
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
|
||||
eslint-visitor-keys@4.2.1:
|
||||
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
eslint@9.28.0:
|
||||
resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==}
|
||||
eslint@9.30.0:
|
||||
resolution: {integrity: sha512-iN/SiPxmQu6EVkf+m1qpBxzUhE12YqFLOSySuOyVLJLEF9nzTf+h/1AJYc1JWzCnktggeNrjvQGLngDzXirU6g==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -785,8 +781,8 @@ packages:
|
||||
jiti:
|
||||
optional: true
|
||||
|
||||
espree@10.3.0:
|
||||
resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
|
||||
espree@10.4.0:
|
||||
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
esquery@1.6.0:
|
||||
@@ -910,6 +906,11 @@ packages:
|
||||
graphemer@1.4.0:
|
||||
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
|
||||
|
||||
handlebars@4.7.8:
|
||||
resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
|
||||
engines: {node: '>=0.4.7'}
|
||||
hasBin: true
|
||||
|
||||
has-flag@4.0.0:
|
||||
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -1054,6 +1055,9 @@ packages:
|
||||
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
|
||||
minimist@1.2.8:
|
||||
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
||||
|
||||
minipass@7.1.2:
|
||||
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
@@ -1070,6 +1074,9 @@ packages:
|
||||
natural-compare@1.4.0:
|
||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||
|
||||
neo-async@2.6.2:
|
||||
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
|
||||
|
||||
node-fetch@2.7.0:
|
||||
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
|
||||
engines: {node: 4.x || >=6.0.0}
|
||||
@@ -1157,8 +1164,8 @@ packages:
|
||||
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
||||
prettier@3.5.3:
|
||||
resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
|
||||
prettier@3.6.2:
|
||||
resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
@@ -1220,10 +1227,14 @@ packages:
|
||||
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
smol-toml@1.3.4:
|
||||
resolution: {integrity: sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==}
|
||||
smol-toml@1.4.0:
|
||||
resolution: {integrity: sha512-IMxaDA/58wBvkvX77ykQ6e9r6fjs8xbxpz8bMCyVQ/fEFWbA5uJrnaVwDuhLrrANGdd7apRyTPDBvI893Bxu9g==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
source-map@0.6.1:
|
||||
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
source-map@0.8.0-beta.0:
|
||||
resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
|
||||
engines: {node: '>= 8'}
|
||||
@@ -1330,8 +1341,8 @@ packages:
|
||||
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
||||
typescript-eslint@8.33.0:
|
||||
resolution: {integrity: sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ==}
|
||||
typescript-eslint@8.35.1:
|
||||
resolution: {integrity: sha512-xslJjFzhOmHYQzSB/QTeASAHbjmxOGEP6Coh93TXmUBFQoJ1VU35UHIDmG06Jd6taf3wqqC1ntBnCMeymy5Ovw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
@@ -1350,8 +1361,13 @@ packages:
|
||||
ufo@1.6.1:
|
||||
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
|
||||
|
||||
undici-types@6.21.0:
|
||||
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
||||
uglify-js@3.19.3:
|
||||
resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
|
||||
engines: {node: '>=0.8.0'}
|
||||
hasBin: true
|
||||
|
||||
undici-types@7.8.0:
|
||||
resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==}
|
||||
|
||||
undici@5.29.0:
|
||||
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
|
||||
@@ -1394,6 +1410,9 @@ packages:
|
||||
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
wordwrap@1.0.0:
|
||||
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
|
||||
|
||||
wrap-ansi@7.0.0:
|
||||
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -1414,8 +1433,8 @@ packages:
|
||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
zod@3.25.45:
|
||||
resolution: {integrity: sha512-kv1swJBZqv98NQibL0oVvkQE8rXT+6qGNM1FpZkFcJG2jnz4vbtu48bgaitp85CaBPLSKXibrEsU7MzJoVoZAA==}
|
||||
zod@3.25.67:
|
||||
resolution: {integrity: sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==}
|
||||
|
||||
snapshots:
|
||||
|
||||
@@ -1646,37 +1665,36 @@ snapshots:
|
||||
'@esbuild/win32-x64@0.25.0':
|
||||
optional: true
|
||||
|
||||
'@eslint-community/eslint-utils@4.5.1(eslint@9.28.0)':
|
||||
'@eslint-community/eslint-utils@4.7.0(eslint@9.30.0)':
|
||||
dependencies:
|
||||
eslint: 9.28.0
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/eslint-utils@4.7.0(eslint@9.28.0)':
|
||||
dependencies:
|
||||
eslint: 9.28.0
|
||||
eslint: 9.30.0
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/regexpp@4.12.1': {}
|
||||
|
||||
'@eslint/config-array@0.20.0':
|
||||
'@eslint/config-array@0.21.0':
|
||||
dependencies:
|
||||
'@eslint/object-schema': 2.1.6
|
||||
debug: 4.4.0
|
||||
debug: 4.4.1
|
||||
minimatch: 3.1.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@eslint/config-helpers@0.2.2': {}
|
||||
'@eslint/config-helpers@0.3.0': {}
|
||||
|
||||
'@eslint/core@0.14.0':
|
||||
dependencies:
|
||||
'@types/json-schema': 7.0.15
|
||||
|
||||
'@eslint/core@0.15.1':
|
||||
dependencies:
|
||||
'@types/json-schema': 7.0.15
|
||||
|
||||
'@eslint/eslintrc@3.3.1':
|
||||
dependencies:
|
||||
ajv: 6.12.6
|
||||
debug: 4.4.0
|
||||
espree: 10.3.0
|
||||
debug: 4.4.1
|
||||
espree: 10.4.0
|
||||
globals: 14.0.0
|
||||
ignore: 5.3.2
|
||||
import-fresh: 3.3.1
|
||||
@@ -1686,13 +1704,13 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@eslint/js@9.28.0': {}
|
||||
'@eslint/js@9.30.0': {}
|
||||
|
||||
'@eslint/object-schema@2.1.6': {}
|
||||
|
||||
'@eslint/plugin-kit@0.3.1':
|
||||
'@eslint/plugin-kit@0.3.3':
|
||||
dependencies:
|
||||
'@eslint/core': 0.14.0
|
||||
'@eslint/core': 0.15.1
|
||||
levn: 0.4.1
|
||||
|
||||
'@fastify/busboy@2.1.1': {}
|
||||
@@ -1708,7 +1726,7 @@ snapshots:
|
||||
|
||||
'@humanwhocodes/retry@0.3.1': {}
|
||||
|
||||
'@humanwhocodes/retry@0.4.2': {}
|
||||
'@humanwhocodes/retry@0.4.3': {}
|
||||
|
||||
'@isaacs/cliui@8.0.2':
|
||||
dependencies:
|
||||
@@ -1829,31 +1847,27 @@ snapshots:
|
||||
'@rollup/rollup-win32-x64-msvc@4.34.8':
|
||||
optional: true
|
||||
|
||||
'@types/eslint__js@9.14.0':
|
||||
dependencies:
|
||||
'@eslint/js': 9.28.0
|
||||
|
||||
'@types/estree@1.0.6': {}
|
||||
|
||||
'@types/estree@1.0.7': {}
|
||||
'@types/estree@1.0.8': {}
|
||||
|
||||
'@types/json-schema@7.0.15': {}
|
||||
|
||||
'@types/node@22.15.29':
|
||||
'@types/node@24.0.8':
|
||||
dependencies:
|
||||
undici-types: 6.21.0
|
||||
undici-types: 7.8.0
|
||||
|
||||
'@types/which@3.0.4': {}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3)':
|
||||
'@typescript-eslint/eslint-plugin@8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3))(eslint@9.30.0)(typescript@5.8.3)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 8.33.0(eslint@9.28.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/scope-manager': 8.33.0
|
||||
'@typescript-eslint/type-utils': 8.33.0(eslint@9.28.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/utils': 8.33.0(eslint@9.28.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/visitor-keys': 8.33.0
|
||||
eslint: 9.28.0
|
||||
'@typescript-eslint/parser': 8.35.1(eslint@9.30.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/scope-manager': 8.35.1
|
||||
'@typescript-eslint/type-utils': 8.35.1(eslint@9.30.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/utils': 8.35.1(eslint@9.30.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/visitor-keys': 8.35.1
|
||||
eslint: 9.30.0
|
||||
graphemer: 1.4.0
|
||||
ignore: 7.0.5
|
||||
natural-compare: 1.4.0
|
||||
@@ -1862,55 +1876,55 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@8.33.0(eslint@9.28.0)(typescript@5.8.3)':
|
||||
'@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.33.0
|
||||
'@typescript-eslint/types': 8.33.0
|
||||
'@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3)
|
||||
'@typescript-eslint/visitor-keys': 8.33.0
|
||||
'@typescript-eslint/scope-manager': 8.35.1
|
||||
'@typescript-eslint/types': 8.35.1
|
||||
'@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3)
|
||||
'@typescript-eslint/visitor-keys': 8.35.1
|
||||
debug: 4.4.1
|
||||
eslint: 9.28.0
|
||||
eslint: 9.30.0
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/project-service@8.33.0(typescript@5.8.3)':
|
||||
'@typescript-eslint/project-service@8.35.1(typescript@5.8.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3)
|
||||
'@typescript-eslint/types': 8.33.0
|
||||
'@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3)
|
||||
'@typescript-eslint/types': 8.35.1
|
||||
debug: 4.4.1
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
'@typescript-eslint/scope-manager@8.33.0':
|
||||
'@typescript-eslint/scope-manager@8.35.1':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.33.0
|
||||
'@typescript-eslint/visitor-keys': 8.33.0
|
||||
'@typescript-eslint/types': 8.35.1
|
||||
'@typescript-eslint/visitor-keys': 8.35.1
|
||||
|
||||
'@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)':
|
||||
'@typescript-eslint/tsconfig-utils@8.35.1(typescript@5.8.3)':
|
||||
dependencies:
|
||||
typescript: 5.8.3
|
||||
|
||||
'@typescript-eslint/type-utils@8.33.0(eslint@9.28.0)(typescript@5.8.3)':
|
||||
'@typescript-eslint/type-utils@8.35.1(eslint@9.30.0)(typescript@5.8.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3)
|
||||
'@typescript-eslint/utils': 8.33.0(eslint@9.28.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3)
|
||||
'@typescript-eslint/utils': 8.35.1(eslint@9.30.0)(typescript@5.8.3)
|
||||
debug: 4.4.1
|
||||
eslint: 9.28.0
|
||||
eslint: 9.30.0
|
||||
ts-api-utils: 2.1.0(typescript@5.8.3)
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/types@8.33.0': {}
|
||||
'@typescript-eslint/types@8.35.1': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)':
|
||||
'@typescript-eslint/typescript-estree@8.35.1(typescript@5.8.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/project-service': 8.33.0(typescript@5.8.3)
|
||||
'@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3)
|
||||
'@typescript-eslint/types': 8.33.0
|
||||
'@typescript-eslint/visitor-keys': 8.33.0
|
||||
'@typescript-eslint/project-service': 8.35.1(typescript@5.8.3)
|
||||
'@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3)
|
||||
'@typescript-eslint/types': 8.35.1
|
||||
'@typescript-eslint/visitor-keys': 8.35.1
|
||||
debug: 4.4.1
|
||||
fast-glob: 3.3.3
|
||||
is-glob: 4.0.3
|
||||
@@ -1921,31 +1935,31 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.33.0(eslint@9.28.0)(typescript@5.8.3)':
|
||||
'@typescript-eslint/utils@8.35.1(eslint@9.30.0)(typescript@5.8.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0)
|
||||
'@typescript-eslint/scope-manager': 8.33.0
|
||||
'@typescript-eslint/types': 8.33.0
|
||||
'@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3)
|
||||
eslint: 9.28.0
|
||||
'@eslint-community/eslint-utils': 4.7.0(eslint@9.30.0)
|
||||
'@typescript-eslint/scope-manager': 8.35.1
|
||||
'@typescript-eslint/types': 8.35.1
|
||||
'@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3)
|
||||
eslint: 9.30.0
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.33.0':
|
||||
'@typescript-eslint/visitor-keys@8.35.1':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.33.0
|
||||
eslint-visitor-keys: 4.2.0
|
||||
'@typescript-eslint/types': 8.35.1
|
||||
eslint-visitor-keys: 4.2.1
|
||||
|
||||
abort-controller@3.0.0:
|
||||
dependencies:
|
||||
event-target-shim: 5.0.1
|
||||
|
||||
acorn-jsx@5.3.2(acorn@8.14.1):
|
||||
acorn-jsx@5.3.2(acorn@8.15.0):
|
||||
dependencies:
|
||||
acorn: 8.14.1
|
||||
acorn: 8.15.0
|
||||
|
||||
acorn@8.14.1: {}
|
||||
acorn@8.15.0: {}
|
||||
|
||||
agent-base@7.1.3: {}
|
||||
|
||||
@@ -1974,12 +1988,12 @@ snapshots:
|
||||
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
brace-expansion@1.1.12:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
|
||||
brace-expansion@2.0.1:
|
||||
brace-expansion@2.0.2:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
|
||||
@@ -2103,38 +2117,38 @@ snapshots:
|
||||
|
||||
escape-string-regexp@4.0.0: {}
|
||||
|
||||
eslint-scope@8.3.0:
|
||||
eslint-scope@8.4.0:
|
||||
dependencies:
|
||||
esrecurse: 4.3.0
|
||||
estraverse: 5.3.0
|
||||
|
||||
eslint-visitor-keys@3.4.3: {}
|
||||
|
||||
eslint-visitor-keys@4.2.0: {}
|
||||
eslint-visitor-keys@4.2.1: {}
|
||||
|
||||
eslint@9.28.0:
|
||||
eslint@9.30.0:
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.5.1(eslint@9.28.0)
|
||||
'@eslint-community/eslint-utils': 4.7.0(eslint@9.30.0)
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@eslint/config-array': 0.20.0
|
||||
'@eslint/config-helpers': 0.2.2
|
||||
'@eslint/config-array': 0.21.0
|
||||
'@eslint/config-helpers': 0.3.0
|
||||
'@eslint/core': 0.14.0
|
||||
'@eslint/eslintrc': 3.3.1
|
||||
'@eslint/js': 9.28.0
|
||||
'@eslint/plugin-kit': 0.3.1
|
||||
'@eslint/js': 9.30.0
|
||||
'@eslint/plugin-kit': 0.3.3
|
||||
'@humanfs/node': 0.16.6
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@humanwhocodes/retry': 0.4.2
|
||||
'@types/estree': 1.0.7
|
||||
'@humanwhocodes/retry': 0.4.3
|
||||
'@types/estree': 1.0.8
|
||||
'@types/json-schema': 7.0.15
|
||||
ajv: 6.12.6
|
||||
chalk: 4.1.2
|
||||
cross-spawn: 7.0.6
|
||||
debug: 4.4.0
|
||||
debug: 4.4.1
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint-scope: 8.3.0
|
||||
eslint-visitor-keys: 4.2.0
|
||||
espree: 10.3.0
|
||||
eslint-scope: 8.4.0
|
||||
eslint-visitor-keys: 4.2.1
|
||||
espree: 10.4.0
|
||||
esquery: 1.6.0
|
||||
esutils: 2.0.3
|
||||
fast-deep-equal: 3.1.3
|
||||
@@ -2152,11 +2166,11 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
espree@10.3.0:
|
||||
espree@10.4.0:
|
||||
dependencies:
|
||||
acorn: 8.14.1
|
||||
acorn-jsx: 5.3.2(acorn@8.14.1)
|
||||
eslint-visitor-keys: 4.2.0
|
||||
acorn: 8.15.0
|
||||
acorn-jsx: 5.3.2(acorn@8.15.0)
|
||||
eslint-visitor-keys: 4.2.1
|
||||
|
||||
esquery@1.6.0:
|
||||
dependencies:
|
||||
@@ -2285,6 +2299,15 @@ snapshots:
|
||||
|
||||
graphemer@1.4.0: {}
|
||||
|
||||
handlebars@4.7.8:
|
||||
dependencies:
|
||||
minimist: 1.2.8
|
||||
neo-async: 2.6.2
|
||||
source-map: 0.6.1
|
||||
wordwrap: 1.0.0
|
||||
optionalDependencies:
|
||||
uglify-js: 3.19.3
|
||||
|
||||
has-flag@4.0.0: {}
|
||||
|
||||
has-symbols@1.1.0: {}
|
||||
@@ -2400,17 +2423,19 @@ snapshots:
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
brace-expansion: 1.1.12
|
||||
|
||||
minimatch@9.0.5:
|
||||
dependencies:
|
||||
brace-expansion: 2.0.1
|
||||
brace-expansion: 2.0.2
|
||||
|
||||
minimist@1.2.8: {}
|
||||
|
||||
minipass@7.1.2: {}
|
||||
|
||||
mlly@1.7.4:
|
||||
dependencies:
|
||||
acorn: 8.14.1
|
||||
acorn: 8.15.0
|
||||
pathe: 2.0.3
|
||||
pkg-types: 1.3.1
|
||||
ufo: 1.6.1
|
||||
@@ -2425,6 +2450,8 @@ snapshots:
|
||||
|
||||
natural-compare@1.4.0: {}
|
||||
|
||||
neo-async@2.6.2: {}
|
||||
|
||||
node-fetch@2.7.0:
|
||||
dependencies:
|
||||
whatwg-url: 5.0.0
|
||||
@@ -2485,7 +2512,7 @@ snapshots:
|
||||
|
||||
prelude-ls@1.2.1: {}
|
||||
|
||||
prettier@3.5.3: {}
|
||||
prettier@3.6.2: {}
|
||||
|
||||
punycode@2.3.1: {}
|
||||
|
||||
@@ -2544,7 +2571,9 @@ snapshots:
|
||||
|
||||
signal-exit@4.1.0: {}
|
||||
|
||||
smol-toml@1.3.4: {}
|
||||
smol-toml@1.4.0: {}
|
||||
|
||||
source-map@0.6.1: {}
|
||||
|
||||
source-map@0.8.0-beta.0:
|
||||
dependencies:
|
||||
@@ -2658,12 +2687,12 @@ snapshots:
|
||||
dependencies:
|
||||
prelude-ls: 1.2.1
|
||||
|
||||
typescript-eslint@8.33.0(eslint@9.28.0)(typescript@5.8.3):
|
||||
typescript-eslint@8.35.1(eslint@9.30.0)(typescript@5.8.3):
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/parser': 8.33.0(eslint@9.28.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/utils': 8.33.0(eslint@9.28.0)(typescript@5.8.3)
|
||||
eslint: 9.28.0
|
||||
'@typescript-eslint/eslint-plugin': 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.0)(typescript@5.8.3))(eslint@9.30.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/parser': 8.35.1(eslint@9.30.0)(typescript@5.8.3)
|
||||
'@typescript-eslint/utils': 8.35.1(eslint@9.30.0)(typescript@5.8.3)
|
||||
eslint: 9.30.0
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -2674,7 +2703,10 @@ snapshots:
|
||||
|
||||
ufo@1.6.1: {}
|
||||
|
||||
undici-types@6.21.0: {}
|
||||
uglify-js@3.19.3:
|
||||
optional: true
|
||||
|
||||
undici-types@7.8.0: {}
|
||||
|
||||
undici@5.29.0:
|
||||
dependencies:
|
||||
@@ -2713,6 +2745,8 @@ snapshots:
|
||||
|
||||
word-wrap@1.2.5: {}
|
||||
|
||||
wordwrap@1.0.0: {}
|
||||
|
||||
wrap-ansi@7.0.0:
|
||||
dependencies:
|
||||
ansi-styles: 4.3.0
|
||||
@@ -2734,4 +2768,4 @@ snapshots:
|
||||
|
||||
yocto-queue@0.1.0: {}
|
||||
|
||||
zod@3.25.45: {}
|
||||
zod@3.25.67: {}
|
||||
|
||||
+5
-3
@@ -6,18 +6,20 @@ import * as core from '@actions/core'
|
||||
import { downloadTool } from '@actions/tool-cache'
|
||||
import type { PixiSource } from './options'
|
||||
import { options } from './options'
|
||||
import { execute, getPixiUrlFromVersion, pixiCmd } from './util'
|
||||
import { execute, pixiCmd, renderPixiUrl } from './util'
|
||||
import { saveCache, tryRestoreCache } from './cache'
|
||||
import { activateEnvironment } from './activate'
|
||||
|
||||
const downloadPixi = (source: PixiSource) => {
|
||||
const url = 'version' in source ? getPixiUrlFromVersion(source.version) : source.url
|
||||
const url = renderPixiUrl(source.urlTemplate, source.version)
|
||||
const auth = 'bearerToken' in source && source.bearerToken ? `Bearer ${source.bearerToken}` : ''
|
||||
return core.group('Downloading Pixi', () => {
|
||||
core.debug('Installing pixi')
|
||||
core.debug(`Downloading pixi from ${url}`)
|
||||
core.debug(`Using Bearer auth: ${auth ? 'yes' : 'no'}`)
|
||||
return fs
|
||||
.mkdir(path.dirname(options.pixiBinPath), { recursive: true })
|
||||
.then(() => downloadTool(url, options.pixiBinPath))
|
||||
.then(() => downloadTool(url, options.pixiBinPath, auth))
|
||||
.then((_downloadPath) => fs.chmod(options.pixiBinPath, 0o755))
|
||||
.then(() => {
|
||||
core.info(`Pixi installed to ${options.pixiBinPath}`)
|
||||
|
||||
+43
-24
@@ -7,10 +7,12 @@ import * as z from 'zod'
|
||||
import untildify from 'untildify'
|
||||
import { parse } from 'smol-toml'
|
||||
import which from 'which'
|
||||
import { DEFAULT_PIXI_URL_TEMPLATE } from './util'
|
||||
|
||||
type Inputs = Readonly<{
|
||||
pixiVersion?: string
|
||||
pixiUrl?: string
|
||||
pixiUrlBearerToken?: string
|
||||
logLevel?: LogLevel
|
||||
manifestPath?: string
|
||||
runInstall?: boolean
|
||||
@@ -33,13 +35,11 @@ type Inputs = Readonly<{
|
||||
postCleanup?: boolean
|
||||
}>
|
||||
|
||||
export type PixiSource =
|
||||
| {
|
||||
version: string
|
||||
}
|
||||
| {
|
||||
url: string
|
||||
}
|
||||
export interface PixiSource {
|
||||
urlTemplate: string
|
||||
bearerToken?: string
|
||||
version: string
|
||||
}
|
||||
|
||||
type Auth = {
|
||||
host: string
|
||||
@@ -92,10 +92,30 @@ export const PATHS = {
|
||||
pixiBin: path.join(os.homedir(), '.pixi', 'bin', `pixi${os.platform() === 'win32' ? '.exe' : ''}`)
|
||||
}
|
||||
|
||||
const getEnvironmentVariableName = (key: string): string => {
|
||||
return `SETUP_PIXI_${key.toUpperCase().replace(/-/g, '_')}`
|
||||
}
|
||||
|
||||
const inputOrEnvironmentVariable = (key: string): string | undefined => {
|
||||
const inputValue = core.getInput(key)
|
||||
// GitHub actions sets empty inputs to the empty string
|
||||
if (inputValue !== '') {
|
||||
return inputValue
|
||||
}
|
||||
|
||||
const envVarName = getEnvironmentVariableName(key)
|
||||
const envVarValue = process.env[envVarName]
|
||||
// Empty environment variables are treated as undefined
|
||||
if (envVarValue !== undefined && envVarValue !== '') {
|
||||
core.debug(`Using environment variable ${envVarName} with value: ${envVarValue}`)
|
||||
return envVarValue
|
||||
}
|
||||
return undefined
|
||||
}
|
||||
|
||||
const parseOrUndefined = <T>(key: string, schema: z.ZodSchema<T>, errorMessage?: string): T | undefined => {
|
||||
const input = core.getInput(key)
|
||||
// GitHub actions sets empty inputs to the empty string, but we want undefined
|
||||
if (input === '') {
|
||||
const input = inputOrEnvironmentVariable(key)
|
||||
if (input === undefined) {
|
||||
return undefined
|
||||
}
|
||||
const maybeResult = schema.safeParse(input)
|
||||
@@ -109,18 +129,16 @@ const parseOrUndefined = <T>(key: string, schema: z.ZodSchema<T>, errorMessage?:
|
||||
}
|
||||
|
||||
const parseOrUndefinedJSON = <T>(key: string, schema: z.ZodSchema<T>): T | undefined => {
|
||||
const input = core.getInput(key)
|
||||
// GitHub actions sets empty inputs to the empty string, but we want undefined
|
||||
if (input === '') {
|
||||
const input = inputOrEnvironmentVariable(key)
|
||||
if (input === undefined) {
|
||||
return undefined
|
||||
}
|
||||
return schema.parse(JSON.parse(input))
|
||||
}
|
||||
|
||||
const parseOrUndefinedList = <T>(key: string, schema: z.ZodSchema<T>): T[] | undefined => {
|
||||
const input = core.getInput(key)
|
||||
// GitHub actions sets empty inputs to the empty string, but we want undefined
|
||||
if (input === '') {
|
||||
const input = inputOrEnvironmentVariable(key)
|
||||
if (input === undefined) {
|
||||
return undefined
|
||||
}
|
||||
return input
|
||||
@@ -130,8 +148,8 @@ const parseOrUndefinedList = <T>(key: string, schema: z.ZodSchema<T>): T[] | und
|
||||
}
|
||||
|
||||
const validateInputs = (inputs: Inputs): void => {
|
||||
if (inputs.pixiVersion && inputs.pixiUrl) {
|
||||
throw new Error('You need to specify either pixi-version or pixi-url')
|
||||
if (inputs.pixiUrlBearerToken && !inputs.pixiUrl) {
|
||||
throw new Error('You need to specify pixi-url when using pixi-url-bearer-token')
|
||||
}
|
||||
if (inputs.cacheKey !== undefined && inputs.cache === false) {
|
||||
throw new Error('Cannot specify cache key without caching')
|
||||
@@ -220,11 +238,11 @@ const determinePixiInstallation = (pixiUrlOrVersionSet: boolean, pixiBinPath: st
|
||||
|
||||
const inferOptions = (inputs: Inputs): Options => {
|
||||
const runInstall = inputs.runInstall ?? true
|
||||
const pixiSource = inputs.pixiVersion
|
||||
? { version: inputs.pixiVersion }
|
||||
: inputs.pixiUrl
|
||||
? { url: inputs.pixiUrl }
|
||||
: { version: 'latest' }
|
||||
const pixiSource: PixiSource = {
|
||||
urlTemplate: inputs.pixiUrl ?? DEFAULT_PIXI_URL_TEMPLATE,
|
||||
bearerToken: inputs.pixiUrlBearerToken,
|
||||
version: inputs.pixiVersion ?? 'latest'
|
||||
}
|
||||
|
||||
const { downloadPixi, pixiBinPath } = determinePixiInstallation(
|
||||
!!inputs.pixiVersion || !!inputs.pixiUrl,
|
||||
@@ -339,7 +357,8 @@ const getOptions = () => {
|
||||
z.union([z.literal('latest'), z.string().regex(/^v\d+\.\d+\.\d+$/)]),
|
||||
'pixi-version must either be `latest` or a version string matching `vX.Y.Z`.'
|
||||
),
|
||||
pixiUrl: parseOrUndefined('pixi-url', z.string().url()),
|
||||
pixiUrl: parseOrUndefined('pixi-url', z.string()),
|
||||
pixiUrlBearerToken: parseOrUndefined('pixi-url-bearer-token', z.string()),
|
||||
logLevel: parseOrUndefined(
|
||||
'log-level',
|
||||
logLevelSchema,
|
||||
|
||||
+20
-20
@@ -1,4 +1,5 @@
|
||||
import fs from 'fs/promises'
|
||||
import { existsSync } from 'fs'
|
||||
import path from 'path'
|
||||
import os from 'os'
|
||||
import { exit } from 'process'
|
||||
@@ -6,32 +7,31 @@ import * as core from '@actions/core'
|
||||
import { options } from './options'
|
||||
|
||||
const removeEmptyParentDirs = (dirPath: string): Promise<void> => {
|
||||
return fs.readdir(dirPath).then((files) => {
|
||||
if (files.length === 0) {
|
||||
core.debug(`Removing empty directory ${dirPath}.`)
|
||||
return fs.rm(dirPath, { recursive: true }).then(() => {
|
||||
const parentDir = path.dirname(dirPath)
|
||||
if (parentDir !== dirPath) {
|
||||
return removeEmptyParentDirs(parentDir)
|
||||
}
|
||||
})
|
||||
}
|
||||
return Promise.resolve()
|
||||
})
|
||||
if (existsSync(dirPath)) {
|
||||
return fs.readdir(dirPath).then((files) => {
|
||||
if (files.length === 0) {
|
||||
core.debug(`Removing empty directory ${dirPath}.`)
|
||||
return fs.rm(dirPath, { recursive: true, force: true }).then(() => {
|
||||
const parentDir = path.dirname(dirPath)
|
||||
if (parentDir !== dirPath) {
|
||||
return removeEmptyParentDirs(parentDir)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
const cleanupPixiBin = () => {
|
||||
const pixiBinPath = options.pixiBinPath
|
||||
const pixiBinDir = path.dirname(pixiBinPath)
|
||||
core.debug(`Cleaning up pixi binary ${pixiBinPath}.`)
|
||||
return fs
|
||||
.rm(pixiBinPath, {
|
||||
// Ignore exceptions if pixi binary does not exist anymore,
|
||||
// to avoid errors if setup-pixi is used multiple times within the same workflow.
|
||||
// This could, for instance, be the case for composite actions using setup-pixi.
|
||||
force: true
|
||||
})
|
||||
.then(() => removeEmptyParentDirs(pixiBinDir))
|
||||
if (existsSync(pixiBinPath)) {
|
||||
return fs.rm(pixiBinPath).then(() => removeEmptyParentDirs(pixiBinDir))
|
||||
} else {
|
||||
return removeEmptyParentDirs(pixiBinDir)
|
||||
}
|
||||
}
|
||||
|
||||
const cleanupEnv = () => {
|
||||
|
||||
+16
-5
@@ -5,6 +5,14 @@ import * as core from '@actions/core'
|
||||
import type { ExecOptions } from '@actions/exec'
|
||||
import { exec, getExecOutput } from '@actions/exec'
|
||||
import { options } from './options'
|
||||
import Handlebars from 'handlebars'
|
||||
|
||||
export const DEFAULT_PIXI_URL_TEMPLATE = `\
|
||||
{{#if latest~}}
|
||||
https://github.com/prefix-dev/pixi/releases/latest/download/{{pixiFile}}
|
||||
{{~else~}}
|
||||
https://github.com/prefix-dev/pixi/releases/download/{{version}}/{{pixiFile}}
|
||||
{{~/if}}`
|
||||
|
||||
export const getCondaArch = () => {
|
||||
const archDict: Record<string, string> = {
|
||||
@@ -49,14 +57,17 @@ const getArch = () => {
|
||||
}
|
||||
}
|
||||
|
||||
export const getPixiUrlFromVersion = (version: string) => {
|
||||
export const renderPixiUrl = (urlTemplate: string, version: string) => {
|
||||
const latest = version == 'latest'
|
||||
const arch = getArch()
|
||||
const platform = getPlatform()
|
||||
const pixiFile = `pixi-${arch}-${platform}${platform === 'pc-windows-msvc' ? '.exe' : ''}`
|
||||
if (version === 'latest') {
|
||||
return `https://github.com/prefix-dev/pixi/releases/latest/download/${pixiFile}`
|
||||
}
|
||||
return `https://github.com/prefix-dev/pixi/releases/download/${version}/${pixiFile}`
|
||||
const template = Handlebars.compile(urlTemplate)
|
||||
return template({
|
||||
version,
|
||||
latest,
|
||||
pixiFile
|
||||
})
|
||||
}
|
||||
|
||||
export const sha256 = (s: BinaryLike) => {
|
||||
|
||||
@@ -24,6 +24,7 @@ export default defineConfig({
|
||||
'@actions/cache',
|
||||
'@actions/io',
|
||||
'@actions/tool-cache',
|
||||
'handlebars',
|
||||
'untildify',
|
||||
'smol-toml',
|
||||
'which',
|
||||
|
||||
Reference in New Issue
Block a user