mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-12-15 11:07:14 +00:00
Compare commits
1 Commits
v5.4.1
...
use-uv-fro
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
928a502318 |
9
.github/actionlint.yaml
vendored
9
.github/actionlint.yaml
vendored
@@ -1,9 +0,0 @@
|
||||
self-hosted-runner:
|
||||
# Custom labels of self-hosted or large GitHub hosted runners
|
||||
# so that actionlint knows that they are not a typo
|
||||
labels:
|
||||
- selfhosted-ubuntu-arm64
|
||||
# Configuration variables in array of strings defined in your repository or
|
||||
# organization. `null` means disabling configuration variables check.
|
||||
# Empty array means no configuration variable is allowed.
|
||||
config-variables: null
|
||||
49
.github/workflows/check-dist.yml
vendored
Normal file
49
.github/workflows/check-dist.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
# `dist/index.js` is a special file in Actions.
|
||||
# When you reference an action with `uses:` in a workflow,
|
||||
# `index.js` is the code that will run.
|
||||
# For our project, we generate this file through a build process from other source files.
|
||||
# We need to make sure the checked-in `index.js` actually matches what we expect it to be.
|
||||
name: Check dist/
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check-dist:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Node.js 20
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Rebuild the dist/ directory
|
||||
run: |
|
||||
npm run build
|
||||
npm run package
|
||||
|
||||
- name: Compare the expected and actual dist/ directories
|
||||
run: |
|
||||
if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then
|
||||
echo "Detected uncommitted changes after build. See status below:"
|
||||
git diff --text -v
|
||||
exit 1
|
||||
fi
|
||||
id: diff
|
||||
|
||||
# If index.js was different than expected, upload the expected version as an artifact
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
||||
with:
|
||||
name: dist
|
||||
path: dist/
|
||||
9
.github/workflows/codeql-analysis.yml
vendored
9
.github/workflows/codeql-analysis.yml
vendored
@@ -12,14 +12,13 @@
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
branches: [main]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches:
|
||||
- main
|
||||
branches: [main]
|
||||
schedule:
|
||||
- cron: "31 7 * * 3"
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
|
||||
5
.github/workflows/release-drafter.yml
vendored
5
.github/workflows/release-drafter.yml
vendored
@@ -3,18 +3,15 @@ name: Release Drafter
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update_release_draft:
|
||||
name: ✏️ Draft release
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: read
|
||||
steps:
|
||||
- name: 🚀 Run Release Drafter
|
||||
uses: release-drafter/release-drafter@v6.1.0
|
||||
|
||||
43
.github/workflows/test-cache-windows.yml
vendored
Normal file
43
.github/workflows/test-cache-windows.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
name: "test-cache-windows"
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test-setup-cache:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__\fixtures\uv-project
|
||||
test-restore-cache:
|
||||
runs-on: windows-latest
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if ($env:CACHE_HIT -ne "true") {
|
||||
exit 1
|
||||
}
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__\fixtures\uv-project
|
||||
229
.github/workflows/test-cache.yml
vendored
Normal file
229
.github/workflows/test-cache.yml
vendored
Normal file
@@ -0,0 +1,229 @@
|
||||
name: "test-cache"
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test-setup-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: ["ubuntu-latest", "selfhosted-ubuntu-arm64"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64" ]
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- name: Cache was hit
|
||||
if: ${{ matrix.enable-cache == 'true' || (matrix.enable-cache == 'auto' && matrix.os == 'ubuntu-latest') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- name: Cache was not hit
|
||||
if: ${{ matrix.enable-cache == 'false' || (matrix.enable-cache == 'auto' && matrix.os == 'selfhosted-ubuntu-arm64') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-setup-cache-requirements-txt:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
test-restore-cache-requirements-txt:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
|
||||
test-setup-cache-dependency-glob:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-dependency-glob:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache-dependency-glob
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Change pyproject.toml
|
||||
run: |
|
||||
echo '[tool.uv]' >> __tests__/fixtures/uv-project/pyproject.toml
|
||||
echo 'dev-dependencies = []' >> __tests__/fixtures/uv-project/pyproject.toml
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
ignore-nothing-to-cache: true
|
||||
- name: Cache was not hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
|
||||
test-setup-cache-local:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-local:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
needs: test-setup-cache-local
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-tilde-expansion-cache-local-path:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
cache-local-path: ~/uv-cache/cache-local-path
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-tilde-expansion-cache-dependency-glob:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Create cache dependency glob file
|
||||
run: touch ~/uv-cache.glob
|
||||
shell: bash
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-local-path: ~/uv-cache/cache-dependency-glob
|
||||
cache-dependency-glob: "~/uv-cache.glob"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
cleanup-tilde-expansion-tests:
|
||||
needs:
|
||||
- test-tilde-expansion-cache-local-path
|
||||
- test-tilde-expansion-cache-dependency-glob
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- name: Remove cache directory
|
||||
run: rm -rf ~/uv-cache
|
||||
shell: bash
|
||||
- name: Remove cache dependency glob file
|
||||
run: rm -f ~/uv-cache.glob
|
||||
shell: bash
|
||||
|
||||
test-no-python-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Fake pyproject.toml at root
|
||||
run: cp __tests__/fixtures/old-python-constraint-project/pyproject.toml pyproject.toml
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/old-python-constraint-project
|
||||
27
.github/workflows/test-windows.yml
vendored
Normal file
27
.github/workflows/test-windows.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
name: "test-windows"
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test-default-version:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Should not be on path
|
||||
run: |
|
||||
if (!(Get-Command -Name "uv" -ErrorAction SilentlyContinue)) {
|
||||
exit 0
|
||||
} else {
|
||||
exit 1
|
||||
}
|
||||
- name: Setup uv
|
||||
uses: ./
|
||||
- run: uv sync
|
||||
working-directory: __tests__\fixtures\uv-project
|
||||
336
.github/workflows/test.yml
vendored
336
.github/workflows/test.yml
vendored
@@ -1,9 +1,6 @@
|
||||
name: "test"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
@@ -12,16 +9,11 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Actionlint
|
||||
uses: eifinger/actionlint-action@23c85443d840cd73bbecb9cddfc933cc21649a38 # v1.9.1
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "20"
|
||||
@@ -31,26 +23,18 @@ jobs:
|
||||
npm run all
|
||||
- name: Make sure no changes from linters are detected
|
||||
run: |
|
||||
git diff --exit-code || (echo "::error::Please run 'npm run all' to fix the issues" && exit 1)
|
||||
|
||||
git diff --exit-code
|
||||
test-default-version:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
|
||||
os: [ubuntu-latest, macos-latest, macos-14]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install latest version
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
shell: bash
|
||||
- name: Check uv-path is set
|
||||
run: ${{ steps.setup-uv.outputs.uv-path }} --version
|
||||
- name: Check uvx-path is set
|
||||
run: ${{ steps.setup-uv.outputs.uvx-path }} --version
|
||||
|
||||
test-specific-version:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
@@ -64,7 +48,6 @@ jobs:
|
||||
version: ${{ matrix.uv-version }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-semver-range:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -81,24 +64,6 @@ jobs:
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
|
||||
test-pep440-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install version 0.4.30
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
version: ">=0.4.25,<0.5"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$UV_VERSION" != "0.4.30" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
|
||||
test-pyproject-file-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -115,19 +80,6 @@ jobs:
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
|
||||
test-malformed-pyproject-file-fallback:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install using malformed pyproject.toml
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-uv-file-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -145,14 +97,17 @@ jobs:
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
|
||||
test-checksum:
|
||||
runs-on: ${{ matrix.inputs.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
inputs:
|
||||
- os: ubuntu-latest
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
checksum:
|
||||
["4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"]
|
||||
exclude:
|
||||
- os: macos-latest
|
||||
checksum: "4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"
|
||||
include:
|
||||
- os: macos-latest
|
||||
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218"
|
||||
steps:
|
||||
@@ -161,10 +116,9 @@ jobs:
|
||||
uses: ./
|
||||
with:
|
||||
version: "0.3.2"
|
||||
checksum: ${{ matrix.inputs.checksum }}
|
||||
checksum: ${{ matrix.checksum }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-with-explicit-token:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -175,7 +129,6 @@ jobs:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-uvx:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -183,7 +136,6 @@ jobs:
|
||||
- name: Install default version
|
||||
uses: ./
|
||||
- run: uvx ruff --version
|
||||
|
||||
test-tool-install:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
@@ -201,7 +153,6 @@ jobs:
|
||||
uses: ./
|
||||
- run: uv tool install ruff
|
||||
- run: ruff --version
|
||||
|
||||
test-tilde-expansion-tool-dirs:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
@@ -221,7 +172,6 @@ jobs:
|
||||
echo "UV_TOOL_DIR does not contain /home/ubuntu/tool-dir: $UV_TOOL_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test-python-version:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
@@ -251,270 +201,14 @@ jobs:
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
test-musl:
|
||||
runs-on: ubuntu-latest
|
||||
container: alpine
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install latest version
|
||||
uses: ./
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-setup-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest" ]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
shell: bash
|
||||
test-restore-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest" ]
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- name: Cache was hit
|
||||
if: ${{ matrix.enable-cache == 'true' || (matrix.enable-cache == 'auto' && matrix.os == 'ubuntu-latest') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
shell: bash
|
||||
- name: Cache was not hit
|
||||
if: ${{ matrix.enable-cache == 'false' || (matrix.enable-cache == 'auto' && matrix.os == 'selfhosted-ubuntu-arm64') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
shell: bash
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
shell: bash
|
||||
|
||||
test-setup-cache-requirements-txt:
|
||||
test-malformed-pyproject-file-fallback:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
- name: Install using malformed pyproject.toml
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
test-restore-cache-requirements-txt:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
|
||||
test-setup-cache-dependency-glob:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
pyproject-file: "__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-dependency-glob:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache-dependency-glob
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Change pyproject.toml
|
||||
run: |
|
||||
echo '[tool.uv]' >> __tests__/fixtures/uv-project/pyproject.toml
|
||||
echo 'dev-dependencies = []' >> __tests__/fixtures/uv-project/pyproject.toml
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
ignore-nothing-to-cache: true
|
||||
- name: Cache was not hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
|
||||
test-setup-cache-local:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-local:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
needs: test-setup-cache-local
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-tilde-expansion-cache-local-path:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
cache-local-path: ~/uv-cache/cache-local-path
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-tilde-expansion-cache-dependency-glob:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Create cache dependency glob file
|
||||
run: touch ~/uv-cache.glob
|
||||
shell: bash
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-local-path: ~/uv-cache/cache-dependency-glob
|
||||
cache-dependency-glob: "~/uv-cache.glob"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
cleanup-tilde-expansion-tests:
|
||||
needs:
|
||||
- test-tilde-expansion-cache-local-path
|
||||
- test-tilde-expansion-cache-dependency-glob
|
||||
if: always()
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- name: Remove cache directory
|
||||
run: rm -rf ~/uv-cache
|
||||
shell: bash
|
||||
- name: Remove cache dependency glob file
|
||||
run: rm -f ~/uv-cache.glob
|
||||
shell: bash
|
||||
|
||||
test-no-python-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Fake pyproject.toml at root
|
||||
run: cp __tests__/fixtures/old-python-constraint-project/pyproject.toml pyproject.toml
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/old-python-constraint-project
|
||||
|
||||
all-tests-passed:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- lint
|
||||
- test-default-version
|
||||
- test-specific-version
|
||||
- test-semver-range
|
||||
- test-pep440-version
|
||||
- test-pyproject-file-version
|
||||
- test-malformed-pyproject-file-fallback
|
||||
- test-uv-file-version
|
||||
- test-checksum
|
||||
- test-with-explicit-token
|
||||
- test-uvx
|
||||
- test-tool-install
|
||||
- test-tilde-expansion-tool-dirs
|
||||
- test-python-version
|
||||
- test-musl
|
||||
- test-restore-cache
|
||||
- test-restore-cache-requirements-txt
|
||||
- test-restore-cache-dependency-glob
|
||||
- test-restore-cache-local
|
||||
- test-tilde-expansion-cache-local-path
|
||||
- test-tilde-expansion-cache-dependency-glob
|
||||
- cleanup-tilde-expansion-tests
|
||||
- test-no-python-version
|
||||
if: always()
|
||||
steps:
|
||||
- name: All tests passed
|
||||
run: |
|
||||
echo "All jobs passed: ${{ !contains(needs.*.result, 'failure') }}"
|
||||
# shellcheck disable=SC2242
|
||||
exit ${{ contains(needs.*.result, 'failure') && 1 || 0 }}
|
||||
|
||||
5
.github/workflows/update-known-checksums.yml
vendored
5
.github/workflows/update-known-checksums.yml
vendored
@@ -7,9 +7,6 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
@@ -22,7 +19,7 @@ jobs:
|
||||
src/download/checksum/known-checksums.ts ${{ secrets.GITHUB_TOKEN }}
|
||||
- run: npm install && npm run all
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||
uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # v7.0.6
|
||||
with:
|
||||
commit-message: "chore: update known checksums"
|
||||
title:
|
||||
|
||||
34
.github/workflows/update-major-minor-tags.yml
vendored
34
.github/workflows/update-major-minor-tags.yml
vendored
@@ -1,6 +1,7 @@
|
||||
---
|
||||
name: Update Major Minor Tags
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
@@ -12,36 +13,7 @@ jobs:
|
||||
update_major_minor_tags:
|
||||
name: Make sure major and minor tags are up to date on a patch release
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Update Major Minor Tags
|
||||
run: |
|
||||
set -x
|
||||
|
||||
cd "${GITHUB_WORKSPACE}" || exit
|
||||
|
||||
# Set up variables.
|
||||
TAG="${GITHUB_REF#refs/tags/}" # v1.2.3
|
||||
MINOR="${TAG%.*}" # v1.2
|
||||
MAJOR="${MINOR%.*}" # v1
|
||||
|
||||
if [ "${GITHUB_REF}" = "${TAG}" ]; then
|
||||
echo "This workflow is not triggered by tag push: GITHUB_REF=${GITHUB_REF}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MESSAGE="Release ${TAG}"
|
||||
|
||||
# Set up Git.
|
||||
git config user.name "${GITHUB_ACTOR}"
|
||||
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
|
||||
|
||||
# Update MAJOR/MINOR tag
|
||||
git tag -fa "${MAJOR}" -m "${MESSAGE}"
|
||||
git tag -fa "${MINOR}" -m "${MESSAGE}"
|
||||
|
||||
# Push
|
||||
git push --force origin "${MINOR}"
|
||||
git push --force origin "${MAJOR}"
|
||||
- name: Run Update semver
|
||||
uses: haya14busa/action-update-semver@v1.2.1
|
||||
|
||||
70
README.md
70
README.md
@@ -14,7 +14,7 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
- [Install a required-version or latest (default)](#install-a-required-version-or-latest-default)
|
||||
- [Install the latest version](#install-the-latest-version)
|
||||
- [Install a specific version](#install-a-specific-version)
|
||||
- [Install a version by supplying a semver range or pep440 identifier](#install-a-version-by-supplying-a-semver-range-or-pep440-identifier)
|
||||
- [Install a version by supplying a semver range](#install-a-version-by-supplying-a-semver-range)
|
||||
- [Install a required-version](#install-a-required-version)
|
||||
- [Python version](#python-version)
|
||||
- [Validate checksum](#validate-checksum)
|
||||
@@ -63,10 +63,9 @@ For an example workflow, see
|
||||
version: "0.4.4"
|
||||
```
|
||||
|
||||
### Install a version by supplying a semver range or pep440 identifier
|
||||
### Install a version by supplying a semver range
|
||||
|
||||
You can specify a [semver range](https://github.com/npm/node-semver?tab=readme-ov-file#ranges)
|
||||
or [pep440 identifier](https://peps.python.org/pep-0440/#version-specifiers)
|
||||
to install the latest version that satisfies the range.
|
||||
|
||||
```yaml
|
||||
@@ -83,13 +82,6 @@ to install the latest version that satisfies the range.
|
||||
version: "0.4.x"
|
||||
```
|
||||
|
||||
```yaml
|
||||
- name: Install a pep440-specifier-satisfying version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
version: ">=0.4.25,<0.5"
|
||||
```
|
||||
|
||||
### Install a required-version
|
||||
|
||||
You can specify a [required-version](https://docs.astral.sh/uv/reference/settings/#required-version)
|
||||
@@ -164,7 +156,6 @@ are automatically verified by this action. The sha256 hashes can be found on the
|
||||
|
||||
If you enable caching, the [uv cache](https://docs.astral.sh/uv/concepts/cache/) will be uploaded to
|
||||
the GitHub Actions cache. This can speed up runs that reuse the cache by several minutes.
|
||||
Caching is enabled by default on GitHub-hosted runners.
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
@@ -199,8 +190,6 @@ changes. If you use relative paths, they are relative to the repository root.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> You can look up supported patterns [here](https://github.com/actions/toolkit/tree/main/packages/glob#patterns)
|
||||
>
|
||||
> The default is
|
||||
> ```yaml
|
||||
> cache-dependency-glob: |
|
||||
@@ -289,20 +278,6 @@ If you want to ignore this, set the `ignore-nothing-to-cache` input to `true`.
|
||||
ignore-nothing-to-cache: true
|
||||
```
|
||||
|
||||
### Ignore empty workdir
|
||||
|
||||
By default, the action will warn if the workdir is empty, because this is usually the case when
|
||||
`actions/checkout` is configured to run after `setup-uv`, which is not supported.
|
||||
|
||||
If you want to ignore this, set the `ignore-empty-workdir` input to `true`.
|
||||
|
||||
```yaml
|
||||
- name: Ignore empty workdir
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
ignore-empty-workdir: true
|
||||
```
|
||||
|
||||
### GitHub authentication token
|
||||
|
||||
This action uses the GitHub API to fetch the uv release artifacts. To avoid hitting the GitHub API
|
||||
@@ -437,47 +412,6 @@ output:
|
||||
run: echo "Installed uv version is ${{ steps.setup-uv.outputs.uv-version }}"
|
||||
```
|
||||
|
||||
### Should I include the resolution strategy in the cache key?
|
||||
|
||||
**Yes!**
|
||||
|
||||
The cache key gets computed by using the [cache-dependency-glob](#cache-dependency-glob).
|
||||
|
||||
If you
|
||||
have jobs which use the same dependency definitions from `requirements.txt` or
|
||||
`pyproject.toml` but different
|
||||
[resolution strategies](https://docs.astral.sh/uv/concepts/resolution/#resolution-strategy),
|
||||
each job will have different dependencies or dependency versions.
|
||||
But if you do not add the resolution strategy as a [cache-suffix](#enable-caching),
|
||||
they will have the same cache key.
|
||||
|
||||
This means the first job which starts uploading its cache will win and all other job will fail
|
||||
uploading the cache,
|
||||
because they try to upload with the same cache key.
|
||||
|
||||
You might see errors like
|
||||
`Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists`
|
||||
|
||||
### Why do I see warnings like `No GitHub Actions cache found for key`
|
||||
|
||||
When a workflow runs for the first time on a branch and has a new cache key, because the
|
||||
[cache-dependency-glob](#cache-dependency-glob) found changed files (changed dependencies),
|
||||
the cache will not be found and the warning `No GitHub Actions cache found for key` will be printed.
|
||||
|
||||
While this might be irritating at first, it is expected behaviour and the cache will be created
|
||||
and reused in later workflows.
|
||||
|
||||
The reason for the warning is, that we have to way to know if this is the first run of a new
|
||||
cache key or the user accidentally misconfigured the [cache-dependency-glob](#cache-dependency-glob)
|
||||
or [cache-suffix](#enable-caching) and the cache never gets used.
|
||||
|
||||
### Do I have to run `actions/checkout` before or after `setup-uv`?
|
||||
|
||||
Some workflows need uv but do not need to access the repository content.
|
||||
|
||||
But **if** you need to access the repository content, you have run `actions/checkout` before running `setup-uv`.
|
||||
Running `actions/checkout` after `setup-uv` **is not supported**.
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
`setup-uv` was initially written and published by [Kevin Stillhammer](https://github.com/eifinger)
|
||||
|
||||
@@ -45,9 +45,6 @@ inputs:
|
||||
ignore-nothing-to-cache:
|
||||
description: "Ignore when nothing is found to cache."
|
||||
default: "false"
|
||||
ignore-empty-workdir:
|
||||
description: "Ignore when the working directory is empty."
|
||||
default: "false"
|
||||
tool-dir:
|
||||
description: "Custom path to set UV_TOOL_DIR to."
|
||||
required: false
|
||||
@@ -57,10 +54,6 @@ inputs:
|
||||
outputs:
|
||||
uv-version:
|
||||
description: "The installed uv version. Useful when using latest."
|
||||
uv-path:
|
||||
description: "The path to the installed uv binary."
|
||||
uvx-path:
|
||||
description: "The path to the installed uvx binary."
|
||||
cache-hit:
|
||||
description: "A boolean value to indicate a cache entry was found"
|
||||
runs:
|
||||
|
||||
47492
dist/save-cache/index.js
generated
vendored
47492
dist/save-cache/index.js
generated
vendored
File diff suppressed because one or more lines are too long
60439
dist/setup/index.js
generated
vendored
60439
dist/setup/index.js
generated
vendored
File diff suppressed because one or more lines are too long
54670
dist/update-known-checksums/index.js
generated
vendored
54670
dist/update-known-checksums/index.js
generated
vendored
File diff suppressed because one or more lines are too long
852
package-lock.json
generated
852
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
18
package.json
18
package.json
@@ -23,27 +23,25 @@
|
||||
"author": "@eifinger",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/cache": "^4.0.3",
|
||||
"@actions/cache": "^4.0.0",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/glob": "^0.5.0",
|
||||
"@actions/io": "^1.1.3",
|
||||
"@actions/tool-cache": "^2.0.2",
|
||||
"@octokit/core": "^6.1.4",
|
||||
"@octokit/plugin-paginate-rest": "^11.4.3",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^13.3.1",
|
||||
"@renovatebot/pep440": "^4.1.0",
|
||||
"smol-toml": "^1.3.1",
|
||||
"undici": "^7.5.0"
|
||||
"@octokit/core": "^6.1.3",
|
||||
"@octokit/plugin-paginate-rest": "^11.4.0",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^13.3.0",
|
||||
"smol-toml": "^1.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "1.9.4",
|
||||
"@types/node": "^22.13.10",
|
||||
"@types/node": "^22.12.0",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@vercel/ncc": "^0.38.3",
|
||||
"jest": "^29.7.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"ts-jest": "^29.2.6",
|
||||
"typescript": "^5.8.2"
|
||||
"ts-jest": "^29.2.5",
|
||||
"typescript": "^5.7.3"
|
||||
}
|
||||
}
|
||||
|
||||
3
src/cache/restore-cache.ts
vendored
3
src/cache/restore-cache.ts
vendored
@@ -53,8 +53,7 @@ async function computeKeys(): Promise<string> {
|
||||
}
|
||||
const suffix = cacheSuffix ? `-${cacheSuffix}` : "";
|
||||
const pythonVersion = await getPythonVersion();
|
||||
const platform = await getPlatform();
|
||||
return `setup-uv-${CACHE_VERSION}-${getArch()}-${platform}-${pythonVersion}${cacheDependencyPathHash}${suffix}`;
|
||||
return `setup-uv-${CACHE_VERSION}-${getArch()}-${getPlatform()}-${pythonVersion}${cacheDependencyPathHash}${suffix}`;
|
||||
}
|
||||
|
||||
async function getPythonVersion(): Promise<string> {
|
||||
|
||||
@@ -1,447 +1,5 @@
|
||||
// AUTOGENERATED_DO_NOT_EDIT
|
||||
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"aarch64-apple-darwin-0.6.10":
|
||||
"82bf2cb3b34ab504eb08486093c9e97cfaf5299da4d4a60e14b6642a2a2e9b8e",
|
||||
"aarch64-pc-windows-msvc-0.6.10":
|
||||
"afc3c1ed78273843417b781fd30b263ba417dcfd05ef9a65be50eec7aa500f20",
|
||||
"aarch64-unknown-linux-gnu-0.6.10":
|
||||
"527f0adc3bcf841a3a0df0d3fef8db277b8afffac588d80948638719b611a8c2",
|
||||
"aarch64-unknown-linux-musl-0.6.10":
|
||||
"36c36aafdf4b2fb8040d0b8db2eaa4b3f44260a689a6e789bc1cd95689e890bc",
|
||||
"arm-unknown-linux-musleabihf-0.6.10":
|
||||
"abef3136f0da26055368df298f3379bbd0d6776ba7e7a0c12275e403136408d8",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.10":
|
||||
"8b776d606b3b9566ae659ab8b2c767e771f1f3e2e632b4c634ff80b26796795f",
|
||||
"armv7-unknown-linux-musleabihf-0.6.10":
|
||||
"d5af6869e1f69753e9ac2b8bacadd6356f84f373b0f6edfda60dc85c194d3a6b",
|
||||
"i686-pc-windows-msvc-0.6.10":
|
||||
"ff6c580750d6bdbca1cb7c64601ebf0f079cc6d8ab79df6472e5fd61e4f89cf9",
|
||||
"i686-unknown-linux-gnu-0.6.10":
|
||||
"978e8d7b495251d842250045a3f15c59e9fe148d09538aa322d4c045db632cc3",
|
||||
"i686-unknown-linux-musl-0.6.10":
|
||||
"432c0609dec5d196f516639de8845fdf9393b4591978a927f6b2bfa92edd0220",
|
||||
"powerpc64-unknown-linux-gnu-0.6.10":
|
||||
"ec4285062cc4bec8aa7f95efba227c4ee3301503938735902fdd896c3ef8ec7f",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.10":
|
||||
"d1dcbdd11b133bcce003aa48be6710a56f1c938eff496eb021dbeac8c09b5c2d",
|
||||
"s390x-unknown-linux-gnu-0.6.10":
|
||||
"4a68f92213c567a8d2bc22ccc10a328f3dd851967f315c517fc1eb52c8f58ed5",
|
||||
"x86_64-apple-darwin-0.6.10":
|
||||
"ddd27652b1a4053b848e35c348500841a8fde38e8ac2b37233464ab91e8f7788",
|
||||
"x86_64-pc-windows-msvc-0.6.10":
|
||||
"c41c4f34782558d3263f7a51e4efd053bc4d074dc46fefa574c4fdb2ed0a00e1",
|
||||
"x86_64-unknown-linux-gnu-0.6.10":
|
||||
"d58885f055fdb726d12cdd1cc54119432a0e4557c8e8ba04ca1d625058b98832",
|
||||
"x86_64-unknown-linux-musl-0.6.10":
|
||||
"1bdeaa0396405a30c4bff35b2d7c9df832836da50eec132ccc0d92657a336c4c",
|
||||
"aarch64-apple-darwin-0.6.9":
|
||||
"a6841484affb3c123313df98bcd8932208bdfb3d9d90a72aec274e8a696caa88",
|
||||
"aarch64-pc-windows-msvc-0.6.9":
|
||||
"bdb7e5eebaa5bb807f2c665b909dbba4bce6f23adf774134924a4a3c6acd4e72",
|
||||
"aarch64-unknown-linux-gnu-0.6.9":
|
||||
"f5032ad47151c7906c0fb25f7c3b00a85ab0bfed2170cbc444e79c438799095b",
|
||||
"aarch64-unknown-linux-musl-0.6.9":
|
||||
"4de15999c38a0e57a3708eccb1fe3295b3d1c0c69410029b16e5e42452d232a9",
|
||||
"arm-unknown-linux-musleabihf-0.6.9":
|
||||
"1a228a1cc86689894c771d0b4635b74708db416c240cfbdc36ddd87c90ae0eb0",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.9":
|
||||
"a9a307d6b3e6a3500aa0102ff7b03cccebe2a9af40130df97382688574afc637",
|
||||
"armv7-unknown-linux-musleabihf-0.6.9":
|
||||
"2cf77dcd0e73b323c5f10120452f6ef34191cab3bb8061ee01d5e62706af7493",
|
||||
"i686-pc-windows-msvc-0.6.9":
|
||||
"709d6d7e6d0e8244b4d51ac9ef0f373d2ac2cb20570e8bdf71c84ccab8c8cba0",
|
||||
"i686-unknown-linux-gnu-0.6.9":
|
||||
"4000a6fd98af6ed84c9a7c2f06019cab5f4a8cfa4e5a9c37b6984e4c7cae1df2",
|
||||
"i686-unknown-linux-musl-0.6.9":
|
||||
"d227586d574264922f344cf98b0f469335ce52d3443619d15448140b44ff8204",
|
||||
"powerpc64-unknown-linux-gnu-0.6.9":
|
||||
"f12b8dbc8ed1ca24dfadbd3969730ab9c2cf797e117cdb508732f49b9fa4b620",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.9":
|
||||
"451cd936bd35405c1cf2d0b63c975d5490e2646f1516b9bcb27af66688946903",
|
||||
"s390x-unknown-linux-gnu-0.6.9":
|
||||
"e25ec6762b68383abfbecb1ec24c1eda52a64dc67866021280c649ef3813726f",
|
||||
"x86_64-apple-darwin-0.6.9":
|
||||
"96eb2bfbe2bb3b74836aa5d6f563ae21bbb9e071148adfda1e67000735a020a3",
|
||||
"x86_64-pc-windows-msvc-0.6.9":
|
||||
"4d959abc2517c38b5527e3368b6755d66ecbb85679a9b2b34b7a78796c6cf7f8",
|
||||
"x86_64-unknown-linux-gnu-0.6.9":
|
||||
"001b87a0c2ea642a3c75a98c6af3e8528aa473d560e653cf213efcc9aaa4a028",
|
||||
"x86_64-unknown-linux-musl-0.6.9":
|
||||
"2b2914da53f9412a1aad7457cee424680da037e6a49c378365c3b5ff5ef0b926",
|
||||
"aarch64-apple-darwin-0.6.8":
|
||||
"e4f83fc42d9735512198c2d86a6fc136e2f5a2b59b3ccc4f104018ed07465499",
|
||||
"aarch64-pc-windows-msvc-0.6.8":
|
||||
"5619c7fbc026544c8cc77ade994ef79e799fc521a050268172aa47826f364834",
|
||||
"aarch64-unknown-linux-gnu-0.6.8":
|
||||
"3ffcaa4f4dba917fa58484a1c3dcb96a958a4baca0204e9c10a4799f81b9ee2f",
|
||||
"aarch64-unknown-linux-musl-0.6.8":
|
||||
"c1d4504ee47d8577761989c9daa4bbd1b93e5d04056215584a0415ad8738b0f9",
|
||||
"arm-unknown-linux-musleabihf-0.6.8":
|
||||
"7280cb1425787faf335bed8e9f2d575bcb179e1b19489ee7984c546d6ef07fff",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.8":
|
||||
"6753d79f3f8e1556a855912f0f859b039b67e591332f6ee794e2c51f2eda1658",
|
||||
"armv7-unknown-linux-musleabihf-0.6.8":
|
||||
"ba73e8503d3ded103cc1fd946bd307f5b986e096d673296eb616f2edb6cf23aa",
|
||||
"i686-pc-windows-msvc-0.6.8":
|
||||
"c28ab471753368b79887fd5cbd12b002704fa7fb2e96b0f5a98277e4f1d8572a",
|
||||
"i686-unknown-linux-gnu-0.6.8":
|
||||
"df60b14b5b6bf29c75c06d8d04b0dd358070bf91f19c6f23afaf738fd05fa271",
|
||||
"i686-unknown-linux-musl-0.6.8":
|
||||
"b1e92aabb97fa356e8f0d4b61f698e0f372b6a5582df949ffbcc60565e7a9c7a",
|
||||
"powerpc64-unknown-linux-gnu-0.6.8":
|
||||
"a18998d2f8f426b1ccf1f6c7ec279dd35ccc1cbe76d90b185e453e6b199df245",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.8":
|
||||
"0d7460fe945a7ed48a9236d50f683a5eb937f22eaa605f4e6eb6a5f9cdf3676e",
|
||||
"s390x-unknown-linux-gnu-0.6.8":
|
||||
"127a7d547be5029b29532f937822332fed690e135d0a97ec9574d43904a4622a",
|
||||
"x86_64-apple-darwin-0.6.8":
|
||||
"e069e79f6e0c430d7beaca3025b398980357b8b5c6faa7191032e20d5ee75970",
|
||||
"x86_64-pc-windows-msvc-0.6.8":
|
||||
"d31c3d01ca3e1a75e15ed9514c135239770b6b40a99cae716661e28e433aa495",
|
||||
"x86_64-unknown-linux-gnu-0.6.8":
|
||||
"2378ea0122bd56a11ee7ae2ad6116c1f22f4657c03b9efb78ac150236bf7974c",
|
||||
"x86_64-unknown-linux-musl-0.6.8":
|
||||
"58902317e1872994b5e707c3c77f4cbf3010104d4b07990a5110bbc09f3e9b8a",
|
||||
"aarch64-apple-darwin-0.6.7":
|
||||
"1a4d04477893c215e3def30149208fabe58a70d031388684d0125f553e3cd74f",
|
||||
"aarch64-pc-windows-msvc-0.6.7":
|
||||
"1c6de0c79ad35baadb61f6be7a014f3114a320809868b4ccb09c4d16b7118b48",
|
||||
"aarch64-unknown-linux-gnu-0.6.7":
|
||||
"b64c4ec32d55bd8e8b726b3162be0dfb3c117c3ca4cd798862497d33fe68e7b9",
|
||||
"aarch64-unknown-linux-musl-0.6.7":
|
||||
"df9e1b9530ad63085b66936e65cca107acc98197856e2ac22b896b1ab3936ac4",
|
||||
"arm-unknown-linux-musleabihf-0.6.7":
|
||||
"03a4b36d50fe4f0e50845559a524ed75610762072075c411f7ed84479e6c736d",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.7":
|
||||
"a877f7697375f6b19d3b537c5152cbb3d86430120b20d957cfa7c084e6b79d6c",
|
||||
"armv7-unknown-linux-musleabihf-0.6.7":
|
||||
"e337a7dd6b86c842dac78041acfa9d9402662d5a8cede1d0ae694c9c17057162",
|
||||
"i686-pc-windows-msvc-0.6.7":
|
||||
"33002d9f1dab894f48254f43b4b882f6c88078d70ace883ed29fcde82616bbb0",
|
||||
"i686-unknown-linux-gnu-0.6.7":
|
||||
"b5f04a274f96aa41e8094b1c4355632f6caa9dfb7e62a45908950ca1c5d3fb38",
|
||||
"i686-unknown-linux-musl-0.6.7":
|
||||
"bd56de94a3ffac99a06fc0d37e7cb45e1c35ba275924b5ed502da833dc712d12",
|
||||
"powerpc64-unknown-linux-gnu-0.6.7":
|
||||
"57c668908878e1b12c726efc0439cd609697892a22e1e43c0ebb520ef2995a27",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.7":
|
||||
"abe3004c0fc468e89ddcf8490991c7fc83abc9d9f6e6a29c59473541265e8bd5",
|
||||
"s390x-unknown-linux-gnu-0.6.7":
|
||||
"b6c60b7b907f871880a9be43294b02f84be5ec3187b1a16d7705f5beb622e01a",
|
||||
"x86_64-apple-darwin-0.6.7":
|
||||
"680be39f40bf00a8c3a6776e9ddaa9c3c18ef2efbb0c1a9a854b333660ca8678",
|
||||
"x86_64-pc-windows-msvc-0.6.7":
|
||||
"11b902b07e98331cef0d648c182c6aa1f279cde688c4411eb9153dc957d48f90",
|
||||
"x86_64-unknown-linux-gnu-0.6.7":
|
||||
"601c2b1147117c4471a154b4cebbdb31c818105f796d5f8115fe42d2526689c8",
|
||||
"x86_64-unknown-linux-musl-0.6.7":
|
||||
"a31bd6916eff780a7a44c84c194f4f8b70a8250b9175b3839ce2d4403fd735de",
|
||||
"aarch64-apple-darwin-0.6.6":
|
||||
"d0fb047593122746c7529960f8efd5d7d10d2cb230302f71158e9765ad37727b",
|
||||
"aarch64-pc-windows-msvc-0.6.6":
|
||||
"6bb6d5a28e8a181fd5b0046778b97a75c3ec1c5117a058e1961e0f6df9ee2925",
|
||||
"aarch64-unknown-linux-gnu-0.6.6":
|
||||
"37a543598cdb7d8fc9b74e6b1fe1fdf8b9a279c6137c7ff8396a88f69ec7a43c",
|
||||
"aarch64-unknown-linux-musl-0.6.6":
|
||||
"1f11c12ccfb693a6928c097c6b2ae3caa8e073744661795a6c96c5ffa9358f24",
|
||||
"arm-unknown-linux-musleabihf-0.6.6":
|
||||
"6cbd68ca3cef4a9a2f0f5c53492d47596494c82df8f1017df144c37a39d13294",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.6":
|
||||
"97c71ad1f443182b3594ef671624e23f8f7960cb84badbbbda38598457845f83",
|
||||
"armv7-unknown-linux-musleabihf-0.6.6":
|
||||
"bee1941d59c8703fa143e186db1f335324b1922f38201cd52bfdfe1b29062987",
|
||||
"i686-pc-windows-msvc-0.6.6":
|
||||
"2231f24bfe6b8729427a5ecccf0339c5feacf96309f62da51c5077f4cfe8954e",
|
||||
"i686-unknown-linux-gnu-0.6.6":
|
||||
"16667b429a57ee917b10093e81e52956e4c19f9fd73d05dd87c3cbc27779ac7e",
|
||||
"i686-unknown-linux-musl-0.6.6":
|
||||
"96fab088198ef251facccfdf3850139720249f673c937cf6cc21642f54f19894",
|
||||
"powerpc64-unknown-linux-gnu-0.6.6":
|
||||
"564d1207601cdb3a3684f7d3ac31bf40436ac6912df7de340216b30a2e94ca44",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.6":
|
||||
"c2aa7d2686b1f5943a562488153141f9690acfa59d6fdb01a2272019dc4f94dd",
|
||||
"s390x-unknown-linux-gnu-0.6.6":
|
||||
"fe7a1425620325b6063bf8b5c008846bc0ef7c867e7a155049adf5d9c356db2d",
|
||||
"x86_64-apple-darwin-0.6.6":
|
||||
"c584b85e81df8d8ae8142876b80ae977e41c6bba14c57cc1061b6a87f361ad2e",
|
||||
"x86_64-pc-windows-msvc-0.6.6":
|
||||
"72d7866fac1a9f5e895ec632a0b8a98ea59627cb2c3b8e68af4fec899ee4b43b",
|
||||
"x86_64-unknown-linux-gnu-0.6.6":
|
||||
"4c3426c4919d9f44633ab9884827fa1ad64ad8d993516d636eb955a3835c4a8c",
|
||||
"x86_64-unknown-linux-musl-0.6.6":
|
||||
"bcc30541d54156d434a74d6070a44c333263edc65ea423d3039cb8112ed78c95",
|
||||
"aarch64-apple-darwin-0.6.5":
|
||||
"4952c6275778fbc7e5cf6b5739ffd944c47063134d6ea43a7037b0a028ef771e",
|
||||
"aarch64-pc-windows-msvc-0.6.5":
|
||||
"2af20abb3a289d57ae6a8f34ec9f6a60276947fdfb80de6d7304a1b49242cc64",
|
||||
"aarch64-unknown-linux-gnu-0.6.5":
|
||||
"ebf0707ab949b948ad14250ed93f968fec954e20d12ce6bc9fce74b0ce7e4900",
|
||||
"aarch64-unknown-linux-musl-0.6.5":
|
||||
"8e3eae9802c443f87f7519518c9900a323e95a54e47f89433452287d9d2e9d13",
|
||||
"arm-unknown-linux-musleabihf-0.6.5":
|
||||
"85caa3c874d98ae5cb981d13e127602c2063d69874b8fd18ca0d1083805a04b1",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.5":
|
||||
"184051f8cceccaafee109787f5c8f5788ed6e619ad65edc98779a96b3a8782c2",
|
||||
"armv7-unknown-linux-musleabihf-0.6.5":
|
||||
"86c7f7dcd0197c131ecce8f3c34807470753c145e1570cec5f0836e34481af9d",
|
||||
"i686-pc-windows-msvc-0.6.5":
|
||||
"65dac0af6d2f143736e83fe17f5b52546686fa000fb2f1f89dbb26d1c96183db",
|
||||
"i686-unknown-linux-gnu-0.6.5":
|
||||
"beb346c6a869d6e742de8a797fa7c2a489c6cbc3127387e08a9106a944f56dc2",
|
||||
"i686-unknown-linux-musl-0.6.5":
|
||||
"5a254d1f0dc92e00c3f2a9c97f27a1adb1261f841e08f1ed3e4f03dcf45b7c12",
|
||||
"powerpc64-unknown-linux-gnu-0.6.5":
|
||||
"1f8fd8dde91258380dbcd4b9fc65f15a7dc3af6cfffefb9a4f99d32c4c67436d",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.5":
|
||||
"d2b6e19ca7ecd8d7e0d1ddced965aa91a3c822d07a7f7657743945245c1f627a",
|
||||
"s390x-unknown-linux-gnu-0.6.5":
|
||||
"43a3e39f19fd5d098bb8c896b6c0f99a146253c271d78409cf31c2f55f2763d0",
|
||||
"x86_64-apple-darwin-0.6.5":
|
||||
"d336d862694e1c36afea55eb15f5df02aa77c04a168b781df515d641e23285f0",
|
||||
"x86_64-pc-windows-msvc-0.6.5":
|
||||
"a3e9f0913189c38b804bf6bb3d348af305a8ceabc690be92b6e111245a821640",
|
||||
"x86_64-unknown-linux-gnu-0.6.5":
|
||||
"8fc9895719a1291ecd193cb86f9282ff3649cef797d29eacc74c4f573aab1e2f",
|
||||
"x86_64-unknown-linux-musl-0.6.5":
|
||||
"ed4830b7b6293b9413618970b84dad7bc9245f4a7dfa741f943afdb647c196c4",
|
||||
"aarch64-apple-darwin-0.6.4":
|
||||
"1497302e13b33188d6ea4b255520e72f4b9ca9a2c5e9ad30b7bc919e5a0b1071",
|
||||
"aarch64-pc-windows-msvc-0.6.4":
|
||||
"92d18fec3da41dd759ff5c05074445def51d30a325cee0e94d4539fbaabae795",
|
||||
"aarch64-unknown-linux-gnu-0.6.4":
|
||||
"4c78928aa92170bb1c68245da3a5ce0c051e185b7cb6356c33909f94f033ae84",
|
||||
"aarch64-unknown-linux-musl-0.6.4":
|
||||
"fec5583459f22a26eab91aa32cb922cdb7bd72826b3e23c6c164c3814126f462",
|
||||
"arm-unknown-linux-musleabihf-0.6.4":
|
||||
"e9e1ef68e6b316b47a5ee48a48e5b28898a351fb588f0944666b004fa5baed2c",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.4":
|
||||
"65df00771f9d4928853ecb5a627745edc829af3ee1339171c2f53f2afa935323",
|
||||
"armv7-unknown-linux-musleabihf-0.6.4":
|
||||
"f963d53f99ddcf5281b79545cf905dc66a6b25a4a5dcdefaecefd42a63710b88",
|
||||
"i686-pc-windows-msvc-0.6.4":
|
||||
"ecdb47abb3fc29511a2adc9df0407fe604371c6518cd2861235c8aa178928941",
|
||||
"i686-unknown-linux-gnu-0.6.4":
|
||||
"7e8c9c6d1b1c9f43eb50a634742f03c34d87a94d8155d2602f1f23c2c6cbfc22",
|
||||
"i686-unknown-linux-musl-0.6.4":
|
||||
"f3985d87a510c1fded1c8de25c6e70bcc2039e587f17efc5ab328b20c956b224",
|
||||
"powerpc64-unknown-linux-gnu-0.6.4":
|
||||
"81d3430b221d57070af86cdd868d766316266515fa49aa61c660ff1d61e5fa78",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.4":
|
||||
"c8aba58a91854645ee41deeb9b0223c5218231c4d03b5b9cbe17f2ddd2f62358",
|
||||
"s390x-unknown-linux-gnu-0.6.4":
|
||||
"a73197566e1b706a6ca0427556b6d4732185eb6d621f0730d70c165ee5b1395e",
|
||||
"x86_64-apple-darwin-0.6.4":
|
||||
"af09c768697edd009ac1af66eaea35bbd29f145bd9c2c02b8f93309e23670b4f",
|
||||
"x86_64-pc-windows-msvc-0.6.4":
|
||||
"4526b772f5d9b0afdd61a780ab649730d125e0a56348daa7463ee44c0c5e5762",
|
||||
"x86_64-unknown-linux-gnu-0.6.4":
|
||||
"ed38cde84d822c1878c484e560e28c157a1c025204151efa60aa46831500f4d6",
|
||||
"x86_64-unknown-linux-musl-0.6.4":
|
||||
"1b04edff73d7d7f837b9d6a36a556fe2feb59cc9f747c4fcd01f76c886dd3579",
|
||||
"aarch64-apple-darwin-0.6.3":
|
||||
"51b84818bbfe08358a298ba3389c6d448d3ddc0f2601a2d63c5a62cb7b704062",
|
||||
"aarch64-pc-windows-msvc-0.6.3":
|
||||
"ec3561ca86328aa351919de2d5208f6761a58d42a2e0e50e1d1d80d10039756a",
|
||||
"aarch64-unknown-linux-gnu-0.6.3":
|
||||
"447726788204106ffd8ecc59396fccc75fae7aca998555265b5ea6950b00160c",
|
||||
"aarch64-unknown-linux-musl-0.6.3":
|
||||
"2bb44c9fb8a13e244d502a577d6c32669b680941c996c35524817971e6e56460",
|
||||
"arm-unknown-linux-musleabihf-0.6.3":
|
||||
"d1e508cdbb4b479c496d6a50febe4b0f0159ef1d0693d09d274c119471545aea",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.3":
|
||||
"d067b079991909b3f76279c048c57470aaa2d0fcf1ce3307b7f15fec88b7a99d",
|
||||
"armv7-unknown-linux-musleabihf-0.6.3":
|
||||
"82c7b7aca1855f285db509ae3c957f9b1ca5e3eaa77ecbd80da8349fe0a6491e",
|
||||
"i686-pc-windows-msvc-0.6.3":
|
||||
"83173da302701020c44cefdab5d127e5cde9e4333ca7e7cbefc03e39908b7a39",
|
||||
"i686-unknown-linux-gnu-0.6.3":
|
||||
"7c044bd2db0690cce49b0613abf01daaeb6fb829737ef9ec7978191f218e1542",
|
||||
"i686-unknown-linux-musl-0.6.3":
|
||||
"a3401dd97c1ee55c1def00c5b98419087da2fd0ce81a74df1cf268a95b338998",
|
||||
"powerpc64-unknown-linux-gnu-0.6.3":
|
||||
"6023103b5d761da0e06c70a95197476796ba68ed3f6849529c89d603609a82d5",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.3":
|
||||
"e41eec560bd166f5bd155772ef120ec7220a80dcb4b70e71d8f4781276c5d102",
|
||||
"s390x-unknown-linux-gnu-0.6.3":
|
||||
"2c3c03d95c20adb2e521efaeddf6f9947c427c5e8140e38585595f3c947cebed",
|
||||
"x86_64-apple-darwin-0.6.3":
|
||||
"a675d2d0fcf533f89f4b584bfa8ee3173a1ffbc87d9d1d48fcc3abb8c55d946d",
|
||||
"x86_64-pc-windows-msvc-0.6.3":
|
||||
"40b50b3da3cf74dc5717802acd076b4669b6d7d2c91c4482875b4e5e46c62ba3",
|
||||
"x86_64-unknown-linux-gnu-0.6.3":
|
||||
"b7a37a33d62cb7672716c695226450231e8c02a8eb2b468fa61cd28a8f86eab2",
|
||||
"x86_64-unknown-linux-musl-0.6.3":
|
||||
"7c77a5bc7c5fc56becf266c2ea8dae1e0fd4f9fe2c510110d097ad9066cacfb1",
|
||||
"aarch64-apple-darwin-0.6.2":
|
||||
"4af802a1216053650dd82eee85ea4241994f432937d41c8b0bc90f2639e6ae14",
|
||||
"aarch64-pc-windows-msvc-0.6.2":
|
||||
"02299bd78e4fbd2850532710c52a92368601f77654e3c6c342c651d75e6ca1f6",
|
||||
"aarch64-unknown-linux-gnu-0.6.2":
|
||||
"ca4c08724764a2b6c8f2173c4e3ca9dcde0d9d328e73b4d725cfb6b17a925eed",
|
||||
"aarch64-unknown-linux-musl-0.6.2":
|
||||
"9a90ef4761d75ee1a5158cc2fbd787c78dcfb1c12532a00a3c13b915db720c2e",
|
||||
"arm-unknown-linux-musleabihf-0.6.2":
|
||||
"f3643b8b67d6f711876a5682d4607b4a31e6e2935b4ccb35d7a98ec067b944d9",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.2":
|
||||
"79a0df9c7e1df089722ff5338c7766e2437a2d3e40b4e232c72be4a4e9e3a7b9",
|
||||
"armv7-unknown-linux-musleabihf-0.6.2":
|
||||
"6aff9c4d54a1466be66234a754181f6e48501ac206d02dd5cf5e81df4c9efbfd",
|
||||
"i686-pc-windows-msvc-0.6.2":
|
||||
"29e46887292d4d645cb941731bfbc688fc1689255f9898b25e6b1c96bf1b954c",
|
||||
"i686-unknown-linux-gnu-0.6.2":
|
||||
"66301b549ea0e8e6960dc6d1eb7b9dcf5fc8d8913f2bb480434918af25f1c6c4",
|
||||
"i686-unknown-linux-musl-0.6.2":
|
||||
"b85ec115f14ca15418db3540c597e13a970546df49a85c1905c16286b86eb471",
|
||||
"powerpc64-unknown-linux-gnu-0.6.2":
|
||||
"de17553549280fd877452dd1f7f9d0a604e3544bfad007b8ec0b9943f103796f",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.2":
|
||||
"f341fd4874d2d007135626a0657d1478f331a78991d8a1a06aaa0d52fbe16183",
|
||||
"s390x-unknown-linux-gnu-0.6.2":
|
||||
"17fd89bd8de75da9c91baf918b8079c1f1f92bb6a398f0cfbc5ddefe0c7f0ee5",
|
||||
"x86_64-apple-darwin-0.6.2":
|
||||
"2b9e78b2562aea93f13e42df1177cb07c59a4d4f1c8ff8907d0c31f3a5e5e8db",
|
||||
"x86_64-pc-windows-msvc-0.6.2":
|
||||
"5f33c3cc5c183775cc51b3e661a0d2ce31142d32a50406a67c7ad0321fc841d9",
|
||||
"x86_64-unknown-linux-gnu-0.6.2":
|
||||
"37ea31f099678a3bee56f8a757d73551aad43f8025d377a8dde80dd946c1b7f2",
|
||||
"x86_64-unknown-linux-musl-0.6.2":
|
||||
"fcd01693df76379be5bc325efa43c644cf0704a2e720ccd6695f41ded09934d7",
|
||||
"aarch64-apple-darwin-0.6.1":
|
||||
"90e10cc7f26cbaf3eaa867cf99344ffd550e942fd4b660e88f2f91c23022dc5a",
|
||||
"aarch64-pc-windows-msvc-0.6.1":
|
||||
"a9bce4582ec8dcc93e19e94b4d7ab653b378a68da1a7e72f5ea82ddd2d42fb44",
|
||||
"aarch64-unknown-linux-gnu-0.6.1":
|
||||
"f355989fb5ecf47c9f9087a0b21e2ee7d7c802bc3d0cf6edae07560d4297751f",
|
||||
"aarch64-unknown-linux-musl-0.6.1":
|
||||
"6455886f9aef3392df0af630dee9df892787fdffda0f0800245f86a735bd810d",
|
||||
"arm-unknown-linux-musleabihf-0.6.1":
|
||||
"4bbd397391134dbfedebb938d40845573eafe6dfd1e8e1882e89c21de702104e",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.1":
|
||||
"811e19387997ac14f1b775c3e975a7d560c93f866eb5fd2955132f9718445a0a",
|
||||
"armv7-unknown-linux-musleabihf-0.6.1":
|
||||
"a2022883913d55c0913001869f64208b8b3244ec6286c9e097ad9563b9f747b9",
|
||||
"i686-pc-windows-msvc-0.6.1":
|
||||
"920e08d6d649a414981c2c1814746fcb0a10f25e2c65e359abf534212e1f0c8c",
|
||||
"i686-unknown-linux-gnu-0.6.1":
|
||||
"943a9a4637151d9f950de65725b28f0dfe3f73e7ad5b2b9ab35392cbc44b3cec",
|
||||
"i686-unknown-linux-musl-0.6.1":
|
||||
"63d269c67e7da4f645cd6be593b55e2f0e84a9bb7cf2d45faca791c27c5f9f66",
|
||||
"powerpc64-unknown-linux-gnu-0.6.1":
|
||||
"8775b00b1c44a7400e8a8d5238efc5ecc636f62ed8e865bd612486c67c6272b3",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.1":
|
||||
"becf4913112c475b2713df01a8c0536b38dc2c48f04b1d603cd6f0a74f88caa2",
|
||||
"s390x-unknown-linux-gnu-0.6.1":
|
||||
"ee687d56ba1e359a7a2e20e301b992b83882df5ffb1409d301e1b0d21b3fa16a",
|
||||
"x86_64-apple-darwin-0.6.1":
|
||||
"d8609b53f280d5e784a7586bf7a3fd90c557656af109cee8572b24a0c1443191",
|
||||
"x86_64-pc-windows-msvc-0.6.1":
|
||||
"32de1730597db0a7c5f34e2257ab491b660374b22c016c3d9a59ae279d837697",
|
||||
"x86_64-unknown-linux-gnu-0.6.1":
|
||||
"0dcad9831d3f10f3bc4dcd7678948dfc74c0b3ab3f07aa684eb9e5135b971a58",
|
||||
"x86_64-unknown-linux-musl-0.6.1":
|
||||
"143dba84867f72107048e1f95be8f894d59f456e018a34276d9d2d6bacdf8f99",
|
||||
"aarch64-apple-darwin-0.6.0":
|
||||
"ff4f1ec24a3adb3dd251f9523e4b7a7cba379e9896ae6ed1efa163fcdcd6af8a",
|
||||
"aarch64-pc-windows-msvc-0.6.0":
|
||||
"c29a1bfcc3070a3a4834b9aa8e290f25e82e7b2a1d25cdbae3418fb8b72c2b0b",
|
||||
"aarch64-unknown-linux-gnu-0.6.0":
|
||||
"47fa7ada7352f69a5efd19628b86b83c0bbda34541de3a4254ba75a188414953",
|
||||
"aarch64-unknown-linux-musl-0.6.0":
|
||||
"92b105bb9253a6123a0f8a8412aec9d05b162bf529cbe60fcad75a71a9a43d3f",
|
||||
"arm-unknown-linux-musleabihf-0.6.0":
|
||||
"a36895e6bde3bb0a74f2d61230332bd8f2cb60984e86bbbc69e9b2e742e1b971",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.0":
|
||||
"01cbd440e41eb9fff4e372a534706156fefefe34ac44d6eb9b8abc7d5739b0fd",
|
||||
"armv7-unknown-linux-musleabihf-0.6.0":
|
||||
"62424a2b18a7b4a7cd62912d7cd952a74f755e6b46e46c9bae6029f4b3f2f2cf",
|
||||
"i686-pc-windows-msvc-0.6.0":
|
||||
"40422491d697c2da3f30c2b00b5fbfbe5075e33dd64956137959a6536b851213",
|
||||
"i686-unknown-linux-gnu-0.6.0":
|
||||
"22ee5cacb0139b065e219e43db84f4f21ea2a316f7341b245786d2f3e748488d",
|
||||
"i686-unknown-linux-musl-0.6.0":
|
||||
"1ab5f3ea0e809c5390dbda97558d4176efcbe7e3eb5166eb2c61a41991d7c4f9",
|
||||
"powerpc64-unknown-linux-gnu-0.6.0":
|
||||
"b99ba184663eecbd1197d60c3120b5451879009b69e900eed83b8dd5f9b568ec",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.0":
|
||||
"d782751a6ec8a0775aa57087275225b6562a115004c1f41935bec1609765508d",
|
||||
"s390x-unknown-linux-gnu-0.6.0":
|
||||
"664f4165767a0cd808d1784d1d70243da4789024ec5cd779a861201b54a479b7",
|
||||
"x86_64-apple-darwin-0.6.0":
|
||||
"530ef3b6f563448e8e017a8cd6693d6c72c146fb0a3c43440bb0e93fcf36264f",
|
||||
"x86_64-pc-windows-msvc-0.6.0":
|
||||
"65836dae55d3a63e5fc1d51ae52e6ea175aaab1c82c4a6660d46462b27d19c2a",
|
||||
"x86_64-unknown-linux-gnu-0.6.0":
|
||||
"1a26ce241f7ff1f52634d869f86db533fffba21e528597029ee9d1423bf3df18",
|
||||
"x86_64-unknown-linux-musl-0.6.0":
|
||||
"ac2331cda152aa71fed700c7b1ceec4a0662185e65f544b3c3a607be53f856f0",
|
||||
"aarch64-apple-darwin-0.5.31":
|
||||
"396c9bd6acd98466fdb585da2ed040eecea15228e580d4bd649c09215b490bf9",
|
||||
"aarch64-pc-windows-msvc-0.5.31":
|
||||
"e1c862e67f03f11ff5d359d4b1afa9f624bd52489d09ffb6efcc1c5c743674bc",
|
||||
"aarch64-unknown-linux-gnu-0.5.31":
|
||||
"e7f358efb0718bd8f98dc0c29fd0902323b590381ca765537063a2ca23ed34c7",
|
||||
"aarch64-unknown-linux-musl-0.5.31":
|
||||
"7a49b56be133a756b8ef589beef33f70176a7ce796e118de2911bdae0ffb9a56",
|
||||
"arm-unknown-linux-musleabihf-0.5.31":
|
||||
"2ad1f334295c3ce92c5fd7c3fa9121ffd4569b6db1846c1ecbb6a2007041d09f",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.31":
|
||||
"78270187aebe5f37fdff184f65e8aa537fd9a06cb5d5119f59c6dd7badcf95ef",
|
||||
"armv7-unknown-linux-musleabihf-0.5.31":
|
||||
"329dba251b81dcc840f261148d6466442b23bad54d75f1a21d5005c9c4d04aa0",
|
||||
"i686-pc-windows-msvc-0.5.31":
|
||||
"3860cbf6115f7af85cdf9e83ba1a9ee2bc6cf4da750825014a999738ba6950dd",
|
||||
"i686-unknown-linux-gnu-0.5.31":
|
||||
"4347e44f076448a8b37140a762845d65831819c21f1b6b1da4706640b82d3e4a",
|
||||
"i686-unknown-linux-musl-0.5.31":
|
||||
"54365460d1dbed67a6106ece17ec50900f1209ec1543172364696e7694c7b64c",
|
||||
"powerpc64-unknown-linux-gnu-0.5.31":
|
||||
"1263a21ef5f72d48d03b7051b69102d7addcb647af2e5182b5e6c5313d8ffd48",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.31":
|
||||
"e292dc0a7b23fab01bbf2b6fdddf8bb0c531805b1dbc3905637af70a88ff1f5f",
|
||||
"s390x-unknown-linux-gnu-0.5.31":
|
||||
"66232646bd15a38cf6877c6af6bf8668fadb2af910d7cf7a1159885487a15e70",
|
||||
"x86_64-apple-darwin-0.5.31":
|
||||
"5316b82da14fab9a76b3521c901e7c0a7d641fb9d28eb07874e26a00b0ac2725",
|
||||
"x86_64-pc-windows-msvc-0.5.31":
|
||||
"1ad54dace424c259b603ecd36262cb235af2bc8d6f280e24063d57919545f593",
|
||||
"x86_64-unknown-linux-gnu-0.5.31":
|
||||
"017ce7ed02c967f1b0489f09162e19ee3df4586a44e681211d16206e007fce62",
|
||||
"x86_64-unknown-linux-musl-0.5.31":
|
||||
"b0642eedb1704371f0cf533e2103ebcaebed59e043c71a70c8fa4a971d2032ab",
|
||||
"aarch64-apple-darwin-0.5.30":
|
||||
"654c3e010c9c53b024fa752d08b949e0f80f10ec4e3a1acea9437a1d127a1053",
|
||||
"aarch64-pc-windows-msvc-0.5.30":
|
||||
"aa5331546935864fe0c627fc22f4ffc60cd2d24ec17900780e95e11436d544a8",
|
||||
"aarch64-unknown-linux-gnu-0.5.30":
|
||||
"d1ea4a2299768b2c8263db0abd8ea0de3b8052a34a51f5cf73094051456d4de2",
|
||||
"aarch64-unknown-linux-musl-0.5.30":
|
||||
"e9b51e591a852a5bc432df3411acaf2c03efd5c8a1ea4280e356881a0c689d31",
|
||||
"arm-unknown-linux-musleabihf-0.5.30":
|
||||
"d143460c27df2b8bcafe8a548eb90fb8000a97921754f13a45cb675d04d366f8",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.30":
|
||||
"3d1953151a534e0cbe3c2094e5165a419e75f1ae32444748c5cd69bcfb9906c0",
|
||||
"armv7-unknown-linux-musleabihf-0.5.30":
|
||||
"4ef3aee22dc8feb9665df4339d4689c1262a26d36d34c7c543e0caa31eb8f45b",
|
||||
"i686-pc-windows-msvc-0.5.30":
|
||||
"3389683ab13451b628cfd95ca5bf56fd7137300af5903180d60eed35c4cbfb82",
|
||||
"i686-unknown-linux-gnu-0.5.30":
|
||||
"3ebb74ae2326030c93972f4c1b5e77a17b29bd191349b6244e41e70bb98d8507",
|
||||
"i686-unknown-linux-musl-0.5.30":
|
||||
"bc590e89243cf7688709ba39822d0acaee394dc0b4781eef044af411e6ac26af",
|
||||
"powerpc64-unknown-linux-gnu-0.5.30":
|
||||
"e289eae011dec0fa5d00133c17efde5e427237e876bfb0e1e27146e45959fc26",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.30":
|
||||
"b10ba261377f89e598322f3329beeada6b868119581e2a7294e7585351d3733f",
|
||||
"s390x-unknown-linux-gnu-0.5.30":
|
||||
"7341e6d62b0e02fbd33fe6ce0158e9f68617f43e5ec42fc6904d246bda5f6d34",
|
||||
"x86_64-apple-darwin-0.5.30":
|
||||
"42c4a5d3611928613342958652ab16943d05980b1ab5057bb47e4283ef7e890d",
|
||||
"x86_64-pc-windows-msvc-0.5.30":
|
||||
"43d6b97d2e283f6509a9199fd32411d67a64d5b5dca3e6e63e45ec2faec68f73",
|
||||
"x86_64-unknown-linux-gnu-0.5.30":
|
||||
"9d82816c14c44054f0c679f2bcaecfd910c75f207e08874085cb27b482f17776",
|
||||
"x86_64-unknown-linux-musl-0.5.30":
|
||||
"7cc79871e5fcd2678474d756bfc32c6c3d28e136963dda10902c516fab67fa2d",
|
||||
"aarch64-apple-darwin-0.5.29":
|
||||
"c89e96bde40402cc4db2f59bcb886882ab69e557235279283a2db9dea61135c3",
|
||||
"aarch64-pc-windows-msvc-0.5.29":
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
import * as core from "@actions/core";
|
||||
import * as tc from "@actions/tool-cache";
|
||||
import * as path from "node:path";
|
||||
import * as pep440 from "@renovatebot/pep440";
|
||||
import { promises as fs } from "node:fs";
|
||||
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
|
||||
import type { Architecture, Platform } from "../utils/platforms";
|
||||
import { validateChecksum } from "./checksum/checksum";
|
||||
import { Octokit } from "../utils/octokit";
|
||||
import { Octokit } from "@octokit/core";
|
||||
import { paginateRest } from "@octokit/plugin-paginate-rest";
|
||||
import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
|
||||
|
||||
const PaginatingOctokit = Octokit.plugin(paginateRest, restEndpointMethods);
|
||||
|
||||
export function tryGetFromToolCache(
|
||||
arch: Architecture,
|
||||
@@ -75,7 +78,6 @@ export async function resolveVersion(
|
||||
versionInput: string,
|
||||
githubToken: string,
|
||||
): Promise<string> {
|
||||
core.debug(`Resolving version: ${versionInput}`);
|
||||
const version =
|
||||
versionInput === "latest"
|
||||
? await getLatestVersion(githubToken)
|
||||
@@ -85,9 +87,8 @@ export async function resolveVersion(
|
||||
return version;
|
||||
}
|
||||
const availableVersions = await getAvailableVersions(githubToken);
|
||||
core.debug(`Available versions: ${availableVersions}`);
|
||||
const resolvedVersion = maxSatisfying(availableVersions, version);
|
||||
if (resolvedVersion === undefined) {
|
||||
const resolvedVersion = tc.evaluateVersions(availableVersions, version);
|
||||
if (resolvedVersion === "") {
|
||||
throw new Error(`No version found for ${version}`);
|
||||
}
|
||||
return resolvedVersion;
|
||||
@@ -95,7 +96,7 @@ export async function resolveVersion(
|
||||
|
||||
async function getAvailableVersions(githubToken: string): Promise<string[]> {
|
||||
try {
|
||||
const octokit = new Octokit({
|
||||
const octokit = new PaginatingOctokit({
|
||||
auth: githubToken,
|
||||
});
|
||||
return await getReleaseTagNames(octokit);
|
||||
@@ -104,7 +105,7 @@ async function getAvailableVersions(githubToken: string): Promise<string[]> {
|
||||
core.info(
|
||||
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
|
||||
);
|
||||
const octokit = new Octokit();
|
||||
const octokit = new PaginatingOctokit();
|
||||
return await getReleaseTagNames(octokit);
|
||||
}
|
||||
throw err;
|
||||
@@ -112,7 +113,7 @@ async function getAvailableVersions(githubToken: string): Promise<string[]> {
|
||||
}
|
||||
|
||||
async function getReleaseTagNames(
|
||||
octokit: InstanceType<typeof Octokit>,
|
||||
octokit: InstanceType<typeof PaginatingOctokit>,
|
||||
): Promise<string[]> {
|
||||
const response = await octokit.paginate(octokit.rest.repos.listReleases, {
|
||||
owner: OWNER,
|
||||
@@ -122,8 +123,7 @@ async function getReleaseTagNames(
|
||||
}
|
||||
|
||||
async function getLatestVersion(githubToken: string) {
|
||||
core.debug("Getting latest version...");
|
||||
const octokit = new Octokit({
|
||||
const octokit = new PaginatingOctokit({
|
||||
auth: githubToken,
|
||||
});
|
||||
|
||||
@@ -131,46 +131,29 @@ async function getLatestVersion(githubToken: string) {
|
||||
try {
|
||||
latestRelease = await getLatestRelease(octokit);
|
||||
} catch (err) {
|
||||
core.info(
|
||||
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
|
||||
);
|
||||
if (err instanceof Error) {
|
||||
core.debug(err.message);
|
||||
if ((err as Error).message.includes("Bad credentials")) {
|
||||
core.info(
|
||||
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
|
||||
);
|
||||
const octokit = new PaginatingOctokit();
|
||||
latestRelease = await getLatestRelease(octokit);
|
||||
} else {
|
||||
throw err;
|
||||
}
|
||||
const octokit = new Octokit();
|
||||
latestRelease = await getLatestRelease(octokit);
|
||||
}
|
||||
|
||||
if (!latestRelease) {
|
||||
throw new Error("Could not determine latest release.");
|
||||
}
|
||||
core.debug(`Latest version: ${latestRelease.tag_name}`);
|
||||
return latestRelease.tag_name;
|
||||
}
|
||||
|
||||
async function getLatestRelease(octokit: InstanceType<typeof Octokit>) {
|
||||
async function getLatestRelease(
|
||||
octokit: InstanceType<typeof PaginatingOctokit>,
|
||||
) {
|
||||
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
||||
owner: OWNER,
|
||||
repo: REPO,
|
||||
});
|
||||
return latestRelease;
|
||||
}
|
||||
|
||||
function maxSatisfying(
|
||||
versions: string[],
|
||||
version: string,
|
||||
): string | undefined {
|
||||
const maxSemver = tc.evaluateVersions(versions, version);
|
||||
if (maxSemver !== "") {
|
||||
core.debug(`Found a version that satisfies the semver range: ${maxSemver}`);
|
||||
return maxSemver;
|
||||
}
|
||||
const maxPep440 = pep440.maxSatisfying(versions, version);
|
||||
if (maxPep440 !== null) {
|
||||
core.debug(
|
||||
`Found a version that satisfies the pep440 specifier: ${maxPep440}`,
|
||||
);
|
||||
return maxPep440;
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import {
|
||||
ignoreNothingToCache,
|
||||
pruneCache as shouldPruneCache,
|
||||
} from "./utils/inputs";
|
||||
import { STATE_CACHED_UV_DIR } from "./utils/constants";
|
||||
|
||||
export async function run(): Promise<void> {
|
||||
try {
|
||||
@@ -72,8 +73,10 @@ async function saveCache(): Promise<void> {
|
||||
}
|
||||
|
||||
async function pruneCache(): Promise<void> {
|
||||
const uvDir = core.getState(STATE_CACHED_UV_DIR);
|
||||
const options: exec.ExecOptions = {
|
||||
silent: !core.isDebug(),
|
||||
silent: false,
|
||||
env: { PATH: uvDir },
|
||||
};
|
||||
const execArgs = ["cache", "prune", "--ci"];
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ import {
|
||||
import {
|
||||
cacheLocalPath,
|
||||
checkSum,
|
||||
ignoreEmptyWorkdir,
|
||||
enableCache,
|
||||
githubToken,
|
||||
pyProjectFile,
|
||||
@@ -29,10 +28,10 @@ import {
|
||||
import * as exec from "@actions/exec";
|
||||
import fs from "node:fs";
|
||||
import { getUvVersionFromConfigFile } from "./utils/pyproject";
|
||||
import { STATE_CACHED_UV_DIR } from "./utils/constants";
|
||||
|
||||
async function run(): Promise<void> {
|
||||
detectEmptyWorkdir();
|
||||
const platform = await getPlatform();
|
||||
const platform = getPlatform();
|
||||
const arch = getArch();
|
||||
|
||||
try {
|
||||
@@ -44,7 +43,8 @@ async function run(): Promise<void> {
|
||||
}
|
||||
const setupResult = await setupUv(platform, arch, checkSum, githubToken);
|
||||
|
||||
addUvToPathAndOutput(setupResult.uvDir);
|
||||
core.saveState(STATE_CACHED_UV_DIR, setupResult.uvDir);
|
||||
addUvToPath(setupResult.uvDir);
|
||||
addToolBinToPath();
|
||||
setToolDir();
|
||||
await setupPython();
|
||||
@@ -63,20 +63,6 @@ async function run(): Promise<void> {
|
||||
}
|
||||
}
|
||||
|
||||
function detectEmptyWorkdir(): void {
|
||||
if (fs.readdirSync(".").length === 0) {
|
||||
if (ignoreEmptyWorkdir) {
|
||||
core.info(
|
||||
"Empty workdir detected. Ignoring because ignore-empty-workdir is enabled",
|
||||
);
|
||||
} else {
|
||||
core.warning(
|
||||
"Empty workdir detected. This may cause unexpected behavior. You can enable ignore-empty-workdir to mute this warning.",
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function setupUv(
|
||||
platform: Platform,
|
||||
arch: Architecture,
|
||||
@@ -129,9 +115,7 @@ async function determineVersion(): Promise<string> {
|
||||
return await resolveVersion(versionFromConfigFile || "latest", githubToken);
|
||||
}
|
||||
|
||||
function addUvToPathAndOutput(cachedPath: string): void {
|
||||
core.setOutput("uv-path", `${cachedPath}${path.sep}uv`);
|
||||
core.setOutput("uvx-path", `${cachedPath}${path.sep}uvx`);
|
||||
function addUvToPath(cachedPath: string): void {
|
||||
core.addPath(cachedPath);
|
||||
core.info(`Added ${cachedPath} to the path`);
|
||||
}
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
import * as semver from "semver";
|
||||
import * as core from "@actions/core";
|
||||
import { Octokit } from "./utils/octokit";
|
||||
import { Octokit } from "@octokit/core";
|
||||
import { paginateRest } from "@octokit/plugin-paginate-rest";
|
||||
import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
|
||||
|
||||
import { OWNER, REPO } from "./utils/constants";
|
||||
|
||||
import { updateChecksums } from "./download/checksum/update-known-checksums";
|
||||
|
||||
const PaginatingOctokit = Octokit.plugin(paginateRest, restEndpointMethods);
|
||||
|
||||
async function run(): Promise<void> {
|
||||
const checksumFilePath = process.argv.slice(2)[0];
|
||||
const github_token = process.argv.slice(2)[1];
|
||||
|
||||
const octokit = new Octokit({
|
||||
const octokit = new PaginatingOctokit({
|
||||
auth: github_token,
|
||||
});
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
export const REPO = "uv";
|
||||
export const OWNER = "astral-sh";
|
||||
export const TOOL_CACHE_NAME = "uv";
|
||||
export const STATE_CACHED_UV_DIR = "cached-uv-dir";
|
||||
|
||||
@@ -13,8 +13,6 @@ export const cacheDependencyGlob = core.getInput("cache-dependency-glob");
|
||||
export const pruneCache = core.getInput("prune-cache") === "true";
|
||||
export const ignoreNothingToCache =
|
||||
core.getInput("ignore-nothing-to-cache") === "true";
|
||||
export const ignoreEmptyWorkdir =
|
||||
core.getInput("ignore-empty-workdir") === "true";
|
||||
export const toolBinDir = getToolBinDir();
|
||||
export const toolDir = getToolDir();
|
||||
export const githubToken = core.getInput("github-token");
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
import { Octokit as Core } from "@octokit/core";
|
||||
import type {
|
||||
Constructor,
|
||||
OctokitOptions,
|
||||
} from "@octokit/core/dist-types/types";
|
||||
import {
|
||||
paginateRest,
|
||||
type PaginateInterface,
|
||||
} from "@octokit/plugin-paginate-rest";
|
||||
import { legacyRestEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
|
||||
import { fetch as undiciFetch, ProxyAgent, type RequestInit } from "undici";
|
||||
|
||||
export type { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods";
|
||||
|
||||
const DEFAULTS = {
|
||||
baseUrl: "https://api.github.com",
|
||||
userAgent: "setup-uv",
|
||||
};
|
||||
|
||||
export function getProxyAgent() {
|
||||
const httpProxy = process.env.HTTP_PROXY || process.env.http_prox;
|
||||
if (httpProxy) {
|
||||
return new ProxyAgent(httpProxy);
|
||||
}
|
||||
|
||||
const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy;
|
||||
if (httpsProxy) {
|
||||
return new ProxyAgent(httpsProxy);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
export const customFetch = async (url: string, opts: RequestInit) =>
|
||||
await undiciFetch(url, {
|
||||
dispatcher: getProxyAgent(),
|
||||
...opts,
|
||||
});
|
||||
|
||||
export const Octokit: typeof Core &
|
||||
Constructor<
|
||||
{
|
||||
paginate: PaginateInterface;
|
||||
} & ReturnType<typeof legacyRestEndpointMethods>
|
||||
> = Core.plugin(paginateRest, legacyRestEndpointMethods).defaults(
|
||||
function buildDefaults(options: OctokitOptions): OctokitOptions {
|
||||
return {
|
||||
...DEFAULTS,
|
||||
...options,
|
||||
request: {
|
||||
fetch: customFetch,
|
||||
...options.request,
|
||||
},
|
||||
};
|
||||
},
|
||||
);
|
||||
|
||||
export type Octokit = InstanceType<typeof Octokit>;
|
||||
@@ -1,17 +1,10 @@
|
||||
import * as exec from "@actions/exec";
|
||||
import * as core from "@actions/core";
|
||||
export type Platform =
|
||||
| "unknown-linux-gnu"
|
||||
| "unknown-linux-musl"
|
||||
| "unknown-linux-musleabihf"
|
||||
| "apple-darwin"
|
||||
| "pc-windows-msvc";
|
||||
export type Architecture =
|
||||
| "i686"
|
||||
| "x86_64"
|
||||
| "aarch64"
|
||||
| "s390x"
|
||||
| "powerpc64le";
|
||||
export type Architecture = "i686" | "x86_64" | "aarch64";
|
||||
|
||||
export function getArch(): Architecture | undefined {
|
||||
const arch = process.arch;
|
||||
@@ -19,8 +12,6 @@ export function getArch(): Architecture | undefined {
|
||||
ia32: "i686",
|
||||
x64: "x86_64",
|
||||
arm64: "aarch64",
|
||||
s390x: "s390x",
|
||||
ppc64: "powerpc64le",
|
||||
};
|
||||
|
||||
if (arch in archMapping) {
|
||||
@@ -28,49 +19,15 @@ export function getArch(): Architecture | undefined {
|
||||
}
|
||||
}
|
||||
|
||||
export async function getPlatform(): Promise<Platform | undefined> {
|
||||
const processPlatform = process.platform;
|
||||
export function getPlatform(): Platform | undefined {
|
||||
const platform = process.platform;
|
||||
const platformMapping: { [key: string]: Platform } = {
|
||||
linux: "unknown-linux-gnu",
|
||||
darwin: "apple-darwin",
|
||||
win32: "pc-windows-msvc",
|
||||
};
|
||||
|
||||
if (processPlatform in platformMapping) {
|
||||
const platform = platformMapping[processPlatform];
|
||||
if (platform === "unknown-linux-gnu") {
|
||||
const isMusl = await isMuslOs();
|
||||
return isMusl ? "unknown-linux-musl" : platform;
|
||||
}
|
||||
return platform;
|
||||
}
|
||||
}
|
||||
|
||||
async function isMuslOs(): Promise<boolean> {
|
||||
let stdOutput = "";
|
||||
let errOutput = "";
|
||||
const options: exec.ExecOptions = {
|
||||
silent: !core.isDebug(),
|
||||
listeners: {
|
||||
stdout: (data: Buffer) => {
|
||||
stdOutput += data.toString();
|
||||
},
|
||||
stderr: (data: Buffer) => {
|
||||
errOutput += data.toString();
|
||||
},
|
||||
},
|
||||
ignoreReturnCode: true,
|
||||
};
|
||||
|
||||
try {
|
||||
const execArgs = ["--version"];
|
||||
await exec.exec("ldd", execArgs, options);
|
||||
return stdOutput.includes("musl") || errOutput.includes("musl");
|
||||
} catch (error) {
|
||||
const err = error as Error;
|
||||
core.warning(
|
||||
`Failed to determine glibc or musl. Falling back to glibc. Error: ${err.message}`,
|
||||
);
|
||||
return false;
|
||||
if (platform in platformMapping) {
|
||||
return platformMapping[platform];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import * as toml from "smol-toml";
|
||||
export function getUvVersionFromConfigFile(
|
||||
filePath: string,
|
||||
): string | undefined {
|
||||
core.debug(`Trying to find required-version for uv in: ${filePath}`);
|
||||
if (!fs.existsSync(filePath)) {
|
||||
core.warning(`Could not find file: ${filePath}`);
|
||||
return undefined;
|
||||
|
||||
Reference in New Issue
Block a user