mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-12-15 11:07:14 +00:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d0cc045d04 | ||
|
|
2841f9f5c1 | ||
|
|
e554b93b80 | ||
|
|
c7d85d9988 | ||
|
|
07f2cb5db9 | ||
|
|
208b0c0ee4 | ||
|
|
b75a909f75 | ||
|
|
ffff8aa2b5 | ||
|
|
95d0e233fa | ||
|
|
dc724a12b6 | ||
|
|
f67343ac2e | ||
|
|
4dd9f52a47 | ||
|
|
e1e6fe7910 | ||
|
|
b1836110f7 | ||
|
|
557e51de59 | ||
|
|
1b46e13ec8 | ||
|
|
26cf676705 | ||
|
|
4e1e303f7d |
12
.github/workflows/codeql-analysis.yml
vendored
12
.github/workflows/codeql-analysis.yml
vendored
@@ -21,6 +21,8 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
analyze:
|
analyze:
|
||||||
name: Analyze
|
name: Analyze
|
||||||
@@ -39,11 +41,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v3
|
uses: github/codeql-action/init@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
source-root: src
|
source-root: src
|
||||||
@@ -55,7 +59,7 @@ jobs:
|
|||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@v3
|
uses: github/codeql-action/autobuild@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
# 📚 https://git.io/JvXDl
|
# 📚 https://git.io/JvXDl
|
||||||
@@ -69,4 +73,4 @@ jobs:
|
|||||||
# make release
|
# make release
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v3
|
uses: github/codeql-action/analyze@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
|
||||||
|
|||||||
4
.github/workflows/release-drafter.yml
vendored
4
.github/workflows/release-drafter.yml
vendored
@@ -8,6 +8,8 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update_release_draft:
|
update_release_draft:
|
||||||
name: ✏️ Draft release
|
name: ✏️ Draft release
|
||||||
@@ -17,6 +19,6 @@ jobs:
|
|||||||
pull-requests: read
|
pull-requests: read
|
||||||
steps:
|
steps:
|
||||||
- name: 🚀 Run Release Drafter
|
- name: 🚀 Run Release Drafter
|
||||||
uses: release-drafter/release-drafter@v6.1.0
|
uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
232
.github/workflows/test.yml
vendored
232
.github/workflows/test.yml
vendored
@@ -18,11 +18,17 @@ permissions:
|
|||||||
jobs:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
security-events: write # for zizmor
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Actionlint
|
- name: Actionlint
|
||||||
uses: eifinger/actionlint-action@23c85443d840cd73bbecb9cddfc933cc21649a38 # v1.9.1
|
uses: eifinger/actionlint-action@23c85443d840cd73bbecb9cddfc933cc21649a38 # v1.9.1
|
||||||
- uses: actions/setup-node@v4
|
- name: Run zizmor
|
||||||
|
uses: zizmorcore/zizmor-action@e673c3917a1aef3c65c972347ed84ccd013ecda4 # v0.2.0
|
||||||
|
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||||
with:
|
with:
|
||||||
node-version: "20"
|
node-version: "20"
|
||||||
- run: |
|
- run: |
|
||||||
@@ -44,7 +50,9 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
|
os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
id: setup-uv
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -52,9 +60,17 @@ jobs:
|
|||||||
working-directory: __tests__/fixtures/uv-project
|
working-directory: __tests__/fixtures/uv-project
|
||||||
shell: bash
|
shell: bash
|
||||||
- name: Check uv-path is set
|
- name: Check uv-path is set
|
||||||
run: ${{ steps.setup-uv.outputs.uv-path }} --version
|
run: |
|
||||||
|
"${UV_PATH}" --version
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
UV_PATH: ${{ steps.setup-uv.outputs.uv-path }}
|
||||||
- name: Check uvx-path is set
|
- name: Check uvx-path is set
|
||||||
run: ${{ steps.setup-uv.outputs.uvx-path }} --version
|
run: |
|
||||||
|
"${UVX_PATH}" --version
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
UVX_PATH: ${{ steps.setup-uv.outputs.uvx-path }}
|
||||||
|
|
||||||
test-specific-version:
|
test-specific-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -62,7 +78,9 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
uv-version: ["0.3.0", "0.3.2", "0.3", "0.3.x", ">=0.3.0"]
|
uv-version: ["0.3.0", "0.3.2", "0.3", "0.3.x", ">=0.3.0"]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install version ${{ matrix.uv-version }}
|
- name: Install version ${{ matrix.uv-version }}
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -76,7 +94,9 @@ jobs:
|
|||||||
os: [ ubuntu-latest, selfhosted-ubuntu-arm64 ]
|
os: [ ubuntu-latest, selfhosted-ubuntu-arm64 ]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install version 0.3
|
- name: Install version 0.3
|
||||||
id: setup-uv
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -99,7 +119,9 @@ jobs:
|
|||||||
test-pep440-version:
|
test-pep440-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install version 0.4.30
|
- name: Install version 0.4.30
|
||||||
id: setup-uv
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -115,7 +137,9 @@ jobs:
|
|||||||
test-pyproject-file-version:
|
test-pyproject-file-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install version 0.5.14
|
- name: Install version 0.5.14
|
||||||
id: setup-uv
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -131,7 +155,9 @@ jobs:
|
|||||||
test-malformed-pyproject-file-fallback:
|
test-malformed-pyproject-file-fallback:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install using malformed pyproject.toml
|
- name: Install using malformed pyproject.toml
|
||||||
id: setup-uv
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -142,7 +168,9 @@ jobs:
|
|||||||
test-uv-file-version:
|
test-uv-file-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install version 0.5.15
|
- name: Install version 0.5.15
|
||||||
id: setup-uv
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -158,7 +186,9 @@ jobs:
|
|||||||
test-version-file-version:
|
test-version-file-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install from requirements file
|
- name: Install from requirements file
|
||||||
id: setup-uv
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -174,7 +204,9 @@ jobs:
|
|||||||
test-version-file-hash-version:
|
test-version-file-hash-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install from requirements file
|
- name: Install from requirements file
|
||||||
id: setup-uv
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -190,7 +222,9 @@ jobs:
|
|||||||
test-tool-versions-file-version:
|
test-tool-versions-file-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install from .tools-versions file
|
- name: Install from .tools-versions file
|
||||||
id: setup-uv
|
id: setup-uv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -213,7 +247,9 @@ jobs:
|
|||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218"
|
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Checksum matches expected
|
- name: Checksum matches expected
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -225,7 +261,9 @@ jobs:
|
|||||||
test-with-explicit-token:
|
test-with-explicit-token:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install default version
|
- name: Install default version
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -236,7 +274,9 @@ jobs:
|
|||||||
test-uvx:
|
test-uvx:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install default version
|
- name: Install default version
|
||||||
uses: ./
|
uses: ./
|
||||||
- run: uvx ruff --version
|
- run: uvx ruff --version
|
||||||
@@ -253,7 +293,9 @@ jobs:
|
|||||||
windows-latest,
|
windows-latest,
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install default version
|
- name: Install default version
|
||||||
uses: ./
|
uses: ./
|
||||||
- run: uv tool install ruff
|
- run: uv tool install ruff
|
||||||
@@ -262,7 +304,9 @@ jobs:
|
|||||||
test-tilde-expansion-tool-dirs:
|
test-tilde-expansion-tool-dirs:
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -285,7 +329,9 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -306,7 +352,9 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ ubuntu-latest, macos-latest, windows-latest ]
|
os: [ ubuntu-latest, macos-latest, windows-latest ]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -327,7 +375,9 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: alpine
|
container: alpine
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install latest version
|
- name: Install latest version
|
||||||
uses: ./
|
uses: ./
|
||||||
- run: uv sync
|
- run: uv sync
|
||||||
@@ -340,7 +390,9 @@ jobs:
|
|||||||
enable-cache: [ "true", "false", "auto" ]
|
enable-cache: [ "true", "false", "auto" ]
|
||||||
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest" ]
|
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest" ]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -357,7 +409,9 @@ jobs:
|
|||||||
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest" ]
|
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest" ]
|
||||||
needs: test-setup-cache
|
needs: test-setup-cache
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
id: restore
|
id: restore
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -389,7 +443,9 @@ jobs:
|
|||||||
test-setup-cache-requirements-txt:
|
test-setup-cache-requirements-txt:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -401,9 +457,11 @@ jobs:
|
|||||||
working-directory: __tests__/fixtures/requirements-txt-project
|
working-directory: __tests__/fixtures/requirements-txt-project
|
||||||
test-restore-cache-requirements-txt:
|
test-restore-cache-requirements-txt:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: test-setup-cache
|
needs: test-setup-cache-requirements-txt
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
id: restore
|
id: restore
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -425,7 +483,9 @@ jobs:
|
|||||||
test-setup-cache-dependency-glob:
|
test-setup-cache-dependency-glob:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -440,7 +500,9 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: test-setup-cache-dependency-glob
|
needs: test-setup-cache-dependency-glob
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Change pyproject.toml
|
- name: Change pyproject.toml
|
||||||
run: |
|
run: |
|
||||||
echo '[tool.uv]' >> __tests__/fixtures/uv-project/pyproject.toml
|
echo '[tool.uv]' >> __tests__/fixtures/uv-project/pyproject.toml
|
||||||
@@ -463,6 +525,78 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||||
|
|
||||||
|
test-setup-cache-save-cache-false:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Setup with cache
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
save-cache: false
|
||||||
|
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-save-cache-false
|
||||||
|
- run: uv sync
|
||||||
|
working-directory: __tests__/fixtures/uv-project
|
||||||
|
shell: bash
|
||||||
|
test-restore-cache-save-cache-false:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: test-setup-cache-save-cache-false
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Restore with cache
|
||||||
|
id: restore
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-save-cache-false
|
||||||
|
- 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-restore-cache-false:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Setup with cache
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-restore-cache-false
|
||||||
|
- run: uv sync
|
||||||
|
working-directory: __tests__/fixtures/uv-project
|
||||||
|
shell: bash
|
||||||
|
test-restore-cache-restore-cache-false:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: test-setup-cache-restore-cache-false
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- name: Restore with cache
|
||||||
|
id: restore
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
restore-cache: false
|
||||||
|
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-restore-cache-false
|
||||||
|
- name: Cache was not hit
|
||||||
|
run: |
|
||||||
|
if [ "$CACHE_HIT" == "true" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
env:
|
||||||
|
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||||
|
|
||||||
test-cache-local:
|
test-cache-local:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
@@ -475,7 +609,9 @@ jobs:
|
|||||||
expected-cache-dir: "/home/ubuntu/.cache/uv"
|
expected-cache-dir: "/home/ubuntu/.cache/uv"
|
||||||
runs-on: ${{ matrix.inputs.os }}
|
runs-on: ${{ matrix.inputs.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -490,7 +626,9 @@ jobs:
|
|||||||
test-setup-cache-local:
|
test-setup-cache-local:
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -503,7 +641,9 @@ jobs:
|
|||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
needs: test-setup-cache-local
|
needs: test-setup-cache-local
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Restore with cache
|
- name: Restore with cache
|
||||||
id: restore
|
id: restore
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -524,7 +664,9 @@ jobs:
|
|||||||
test-tilde-expansion-cache-local-path:
|
test-tilde-expansion-cache-local-path:
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Create cache directory
|
- name: Create cache directory
|
||||||
run: mkdir -p ~/uv-cache
|
run: mkdir -p ~/uv-cache
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -538,7 +680,9 @@ jobs:
|
|||||||
test-tilde-expansion-cache-dependency-glob:
|
test-tilde-expansion-cache-dependency-glob:
|
||||||
runs-on: selfhosted-ubuntu-arm64
|
runs-on: selfhosted-ubuntu-arm64
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Create cache directory
|
- name: Create cache directory
|
||||||
run: mkdir -p ~/uv-cache
|
run: mkdir -p ~/uv-cache
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -571,7 +715,9 @@ jobs:
|
|||||||
test-no-python-version:
|
test-no-python-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Fake pyproject.toml at root
|
- name: Fake pyproject.toml at root
|
||||||
run: cp __tests__/fixtures/old-python-constraint-project/pyproject.toml pyproject.toml
|
run: cp __tests__/fixtures/old-python-constraint-project/pyproject.toml pyproject.toml
|
||||||
- name: Setup with cache
|
- name: Setup with cache
|
||||||
@@ -584,7 +730,9 @@ jobs:
|
|||||||
test-custom-manifest-file:
|
test-custom-manifest-file:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Install from custom manifest file
|
- name: Install from custom manifest file
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -601,7 +749,9 @@ jobs:
|
|||||||
test-absolute-path:
|
test-absolute-path:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Create requirements.txt
|
- name: Create requirements.txt
|
||||||
run: echo "uv==0.6.17" > /tmp/setup-uv-requirements.txt
|
run: echo "uv==0.6.17" > /tmp/setup-uv-requirements.txt
|
||||||
- name: Install from requirements file
|
- name: Install from requirements file
|
||||||
@@ -619,7 +769,9 @@ jobs:
|
|||||||
test-relative-path:
|
test-relative-path:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: mkdir
|
- name: mkdir
|
||||||
run: mkdir -p /tmp/setup-uv-test-relative-path
|
run: mkdir -p /tmp/setup-uv-test-relative-path
|
||||||
- name: Create requirements.txt
|
- name: Create requirements.txt
|
||||||
@@ -667,6 +819,10 @@ jobs:
|
|||||||
- test-restore-cache-requirements-txt
|
- test-restore-cache-requirements-txt
|
||||||
- test-setup-cache-dependency-glob
|
- test-setup-cache-dependency-glob
|
||||||
- test-restore-cache-dependency-glob
|
- test-restore-cache-dependency-glob
|
||||||
|
- test-setup-cache-save-cache-false
|
||||||
|
- test-restore-cache-save-cache-false
|
||||||
|
- test-setup-cache-restore-cache-false
|
||||||
|
- test-restore-cache-restore-cache-false
|
||||||
- test-setup-cache-local
|
- test-setup-cache-local
|
||||||
- test-restore-cache-local
|
- test-restore-cache-local
|
||||||
- test-tilde-expansion-cache-local-path
|
- test-tilde-expansion-cache-local-path
|
||||||
|
|||||||
48
.github/workflows/update-known-versions.yml
vendored
48
.github/workflows/update-known-versions.yml
vendored
@@ -3,16 +3,21 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "0 4 * * *" # Run every day at 4am UTC
|
- cron: "0 4 * * *" # Run every day at 4am UTC
|
||||||
|
repository_dispatch:
|
||||||
|
types: [ pypi_release ]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-24.04-arm
|
runs-on: ubuntu-24.04-arm
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
pull-requests: write
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
- uses: actions/setup-node@v4
|
with:
|
||||||
|
persist-credentials: true
|
||||||
|
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||||
with:
|
with:
|
||||||
node-version: "20"
|
node-version: "20"
|
||||||
- name: Update known versions
|
- name: Update known versions
|
||||||
@@ -22,18 +27,25 @@ jobs:
|
|||||||
src/download/checksum/known-checksums.ts
|
src/download/checksum/known-checksums.ts
|
||||||
version-manifest.json
|
version-manifest.json
|
||||||
${{ secrets.GITHUB_TOKEN }}
|
${{ secrets.GITHUB_TOKEN }}
|
||||||
- run: npm install && npm run all
|
- name: Check for changes
|
||||||
- name: Create Pull Request
|
id: changes_exist
|
||||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
run: |
|
||||||
with:
|
git status --porcelain
|
||||||
commit-message: "chore: update known versions"
|
if [ -n "$(git status --porcelain)" ]; then
|
||||||
title:
|
echo "changes_exist=true" >> "$GITHUB_OUTPUT"
|
||||||
"chore: update known versions for ${{
|
else
|
||||||
steps.update-known-versions.outputs.latest-version }}"
|
echo "changes_exist=false" >> "$GITHUB_OUTPUT"
|
||||||
body:
|
fi
|
||||||
"chore: update known versions for ${{
|
- name: Compile changes
|
||||||
steps.update-known-versions.outputs.latest-version }}"
|
if: ${{ steps.changes_exist.outputs.changes_exist == 'true' }}
|
||||||
base: main
|
run: npm ci && npm run all
|
||||||
labels: "automated-pr,update-known-versions"
|
- name: Commit and push changes
|
||||||
branch: update-known-versions-pr
|
if: ${{ steps.changes_exist.outputs.changes_exist == 'true' }}
|
||||||
delete-branch: true
|
run: |
|
||||||
|
git config user.name "$GITHUB_ACTOR"
|
||||||
|
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||||
|
git add .
|
||||||
|
git commit -m "chore: update known versions for $LATEST_VERSION"
|
||||||
|
git push origin HEAD:refs/heads/main
|
||||||
|
env:
|
||||||
|
LATEST_VERSION: ${{ steps.update-known-versions.outputs.latest-version }}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ on:
|
|||||||
tags:
|
tags:
|
||||||
- "v*.*.*"
|
- "v*.*.*"
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update_major_minor_tags:
|
update_major_minor_tags:
|
||||||
name: Make sure major and minor tags are up to date on a patch release
|
name: Make sure major and minor tags are up to date on a patch release
|
||||||
@@ -15,7 +17,9 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||||
|
with:
|
||||||
|
persist-credentials: true # needed for git push below
|
||||||
- name: Update Major Minor Tags
|
- name: Update Major Minor Tags
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -x
|
||||||
|
|||||||
36
README.md
36
README.md
@@ -22,6 +22,8 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
|||||||
- [Validate checksum](#validate-checksum)
|
- [Validate checksum](#validate-checksum)
|
||||||
- [Enable Caching](#enable-caching)
|
- [Enable Caching](#enable-caching)
|
||||||
- [Cache dependency glob](#cache-dependency-glob)
|
- [Cache dependency glob](#cache-dependency-glob)
|
||||||
|
- [Restore cache](#restore-cache)
|
||||||
|
- [Save cache](#save-cache)
|
||||||
- [Local cache path](#local-cache-path)
|
- [Local cache path](#local-cache-path)
|
||||||
- [Disable cache pruning](#disable-cache-pruning)
|
- [Disable cache pruning](#disable-cache-pruning)
|
||||||
- [Ignore nothing to cache](#ignore-nothing-to-cache)
|
- [Ignore nothing to cache](#ignore-nothing-to-cache)
|
||||||
@@ -123,7 +125,7 @@ This will override any python version specifications in `pyproject.toml` and `.p
|
|||||||
- run: uv pip install --python=3.13t pip
|
- run: uv pip install --python=3.13t pip
|
||||||
```
|
```
|
||||||
|
|
||||||
You can combine this with a matrix to test multiple python versions:
|
You can combine this with a matrix to test multiple Python versions:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
jobs:
|
jobs:
|
||||||
@@ -131,9 +133,9 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
- name: Install the latest version of uv and set the python version
|
- name: Install the latest version of uv and set the python version
|
||||||
uses: astral-sh/setup-uv@v6
|
uses: astral-sh/setup-uv@v6
|
||||||
with:
|
with:
|
||||||
@@ -248,6 +250,7 @@ changes. If you use relative paths, they are relative to the repository root.
|
|||||||
> **/*constraints*.in
|
> **/*constraints*.in
|
||||||
> **/pyproject.toml
|
> **/pyproject.toml
|
||||||
> **/uv.lock
|
> **/uv.lock
|
||||||
|
> **/*.py.lock
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@@ -284,6 +287,33 @@ changes. If you use relative paths, they are relative to the repository root.
|
|||||||
cache-dependency-glob: ""
|
cache-dependency-glob: ""
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Restore cache
|
||||||
|
|
||||||
|
Restoring an existing cache can be enabled or disabled with the `restore-cache` input.
|
||||||
|
By default, the cache will be restored.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Don't restore an existing cache
|
||||||
|
uses: astral-sh/setup-uv@v6
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
restore-cache: false
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Save cache
|
||||||
|
|
||||||
|
You can also disable saving the cache after the run with the `save-cache` input.
|
||||||
|
This can be useful to save cache storage when you know you will not use the cache of the run again.
|
||||||
|
By default, the cache will be saved.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Don't save the cache after the run
|
||||||
|
uses: astral-sh/setup-uv@v6
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
save-cache: false
|
||||||
|
```
|
||||||
|
|
||||||
### Local cache path
|
### Local cache path
|
||||||
|
|
||||||
This action controls where uv stores its cache on the runner's filesystem by setting `UV_CACHE_DIR`.
|
This action controls where uv stores its cache on the runner's filesystem by setting `UV_CACHE_DIR`.
|
||||||
|
|||||||
86
__tests__/utils/inputs.test.ts
Normal file
86
__tests__/utils/inputs.test.ts
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
jest.mock("@actions/core", () => {
|
||||||
|
return {
|
||||||
|
debug: jest.fn(),
|
||||||
|
getBooleanInput: jest.fn(
|
||||||
|
(name: string) => (mockInputs[name] ?? "") === "true",
|
||||||
|
),
|
||||||
|
getInput: jest.fn((name: string) => mockInputs[name] ?? ""),
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
import {
|
||||||
|
afterEach,
|
||||||
|
beforeEach,
|
||||||
|
describe,
|
||||||
|
expect,
|
||||||
|
it,
|
||||||
|
jest,
|
||||||
|
} from "@jest/globals";
|
||||||
|
|
||||||
|
// Will be mutated per test before (re-)importing the module under test
|
||||||
|
let mockInputs: Record<string, string> = {};
|
||||||
|
const ORIGINAL_HOME = process.env.HOME;
|
||||||
|
|
||||||
|
describe("cacheDependencyGlob", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.resetModules();
|
||||||
|
mockInputs = {};
|
||||||
|
process.env.HOME = "/home/testuser";
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
process.env.HOME = ORIGINAL_HOME;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("returns empty string when input not provided", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe("");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("resolves a single relative path", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] = "requirements.txt";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe("/workspace/requirements.txt");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("strips leading ./ from relative path", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] = "./uv.lock";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe("/workspace/uv.lock");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("handles multiple lines, trimming whitespace, tilde expansion and absolute paths", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] =
|
||||||
|
" ~/.cache/file1\n ./rel/file2 \nfile3.txt";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe(
|
||||||
|
[
|
||||||
|
"/home/testuser/.cache/file1", // expanded tilde, absolute path unchanged
|
||||||
|
"/workspace/rel/file2", // ./ stripped and resolved
|
||||||
|
"/workspace/file3.txt", // relative path resolved
|
||||||
|
].join("\n"),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps absolute path unchanged in multiline input", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] = "/abs/path.lock\nrelative.lock";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe(
|
||||||
|
["/abs/path.lock", "/workspace/relative.lock"].join("\n"),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("handles exclusions in relative paths correct", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] = "!/abs/path.lock\n!relative.lock";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe(
|
||||||
|
["!/abs/path.lock", "!/workspace/relative.lock"].join("\n"),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -44,6 +44,13 @@ inputs:
|
|||||||
**/*constraints*.in
|
**/*constraints*.in
|
||||||
**/pyproject.toml
|
**/pyproject.toml
|
||||||
**/uv.lock
|
**/uv.lock
|
||||||
|
**/*.py.lock
|
||||||
|
restore-cache:
|
||||||
|
description: "Whether to restore the cache if found."
|
||||||
|
default: "true"
|
||||||
|
save-cache:
|
||||||
|
description: "Whether to save the cache after the run."
|
||||||
|
default: "true"
|
||||||
cache-suffix:
|
cache-suffix:
|
||||||
description: "Suffix for the cache key"
|
description: "Suffix for the cache key"
|
||||||
required: false
|
required: false
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://biomejs.dev/schemas/2.1.4/schema.json",
|
"$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
|
||||||
"assist": {
|
"assist": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"source": {
|
"source": {
|
||||||
|
|||||||
105
dist/save-cache/index.js
generated
vendored
105
dist/save-cache/index.js
generated
vendored
@@ -48,6 +48,7 @@ const cacheTwirpClient = __importStar(__nccwpck_require__(6819));
|
|||||||
const config_1 = __nccwpck_require__(7606);
|
const config_1 = __nccwpck_require__(7606);
|
||||||
const tar_1 = __nccwpck_require__(5321);
|
const tar_1 = __nccwpck_require__(5321);
|
||||||
const constants_1 = __nccwpck_require__(8287);
|
const constants_1 = __nccwpck_require__(8287);
|
||||||
|
const http_client_1 = __nccwpck_require__(4844);
|
||||||
class ValidationError extends Error {
|
class ValidationError extends Error {
|
||||||
constructor(message) {
|
constructor(message) {
|
||||||
super(message);
|
super(message);
|
||||||
@@ -84,7 +85,17 @@ function checkKey(key) {
|
|||||||
* @returns boolean return true if Actions cache service feature is available, otherwise false
|
* @returns boolean return true if Actions cache service feature is available, otherwise false
|
||||||
*/
|
*/
|
||||||
function isFeatureAvailable() {
|
function isFeatureAvailable() {
|
||||||
|
const cacheServiceVersion = (0, config_1.getCacheServiceVersion)();
|
||||||
|
// Check availability based on cache service version
|
||||||
|
switch (cacheServiceVersion) {
|
||||||
|
case 'v2':
|
||||||
|
// For v2, we need ACTIONS_RESULTS_URL
|
||||||
|
return !!process.env['ACTIONS_RESULTS_URL'];
|
||||||
|
case 'v1':
|
||||||
|
default:
|
||||||
|
// For v1, we only need ACTIONS_CACHE_URL
|
||||||
return !!process.env['ACTIONS_CACHE_URL'];
|
return !!process.env['ACTIONS_CACHE_URL'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
exports.isFeatureAvailable = isFeatureAvailable;
|
exports.isFeatureAvailable = isFeatureAvailable;
|
||||||
/**
|
/**
|
||||||
@@ -169,10 +180,18 @@ function restoreCacheV1(paths, primaryKey, restoreKeys, options, enableCrossOsAr
|
|||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Supress all non-validation cache related errors because caching should be optional
|
// warn on cache restore failure and continue build
|
||||||
|
// Log server errors (5xx) as errors, all other errors as warnings
|
||||||
|
if (typedError instanceof http_client_1.HttpClientError &&
|
||||||
|
typeof typedError.statusCode === 'number' &&
|
||||||
|
typedError.statusCode >= 500) {
|
||||||
|
core.error(`Failed to restore: ${error.message}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
core.warning(`Failed to restore: ${error.message}`);
|
core.warning(`Failed to restore: ${error.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
finally {
|
finally {
|
||||||
// Try to delete the archive to save space
|
// Try to delete the archive to save space
|
||||||
try {
|
try {
|
||||||
@@ -223,7 +242,13 @@ function restoreCacheV2(paths, primaryKey, restoreKeys, options, enableCrossOsAr
|
|||||||
core.debug(`Cache not found for version ${request.version} of keys: ${keys.join(', ')}`);
|
core.debug(`Cache not found for version ${request.version} of keys: ${keys.join(', ')}`);
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
core.info(`Cache hit for: ${request.key}`);
|
const isRestoreKeyMatch = request.key !== response.matchedKey;
|
||||||
|
if (isRestoreKeyMatch) {
|
||||||
|
core.info(`Cache hit for restore-key: ${response.matchedKey}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
core.info(`Cache hit for: ${response.matchedKey}`);
|
||||||
|
}
|
||||||
if (options === null || options === void 0 ? void 0 : options.lookupOnly) {
|
if (options === null || options === void 0 ? void 0 : options.lookupOnly) {
|
||||||
core.info('Lookup only - skipping download');
|
core.info('Lookup only - skipping download');
|
||||||
return response.matchedKey;
|
return response.matchedKey;
|
||||||
@@ -248,9 +273,17 @@ function restoreCacheV2(paths, primaryKey, restoreKeys, options, enableCrossOsAr
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Supress all non-validation cache related errors because caching should be optional
|
// Supress all non-validation cache related errors because caching should be optional
|
||||||
|
// Log server errors (5xx) as errors, all other errors as warnings
|
||||||
|
if (typedError instanceof http_client_1.HttpClientError &&
|
||||||
|
typeof typedError.statusCode === 'number' &&
|
||||||
|
typedError.statusCode >= 500) {
|
||||||
|
core.error(`Failed to restore: ${error.message}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
core.warning(`Failed to restore: ${error.message}`);
|
core.warning(`Failed to restore: ${error.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (archivePath) {
|
if (archivePath) {
|
||||||
@@ -350,10 +383,18 @@ function saveCacheV1(paths, key, options, enableCrossOsArchive = false) {
|
|||||||
else if (typedError.name === ReserveCacheError.name) {
|
else if (typedError.name === ReserveCacheError.name) {
|
||||||
core.info(`Failed to save: ${typedError.message}`);
|
core.info(`Failed to save: ${typedError.message}`);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
// Log server errors (5xx) as errors, all other errors as warnings
|
||||||
|
if (typedError instanceof http_client_1.HttpClientError &&
|
||||||
|
typeof typedError.statusCode === 'number' &&
|
||||||
|
typedError.statusCode >= 500) {
|
||||||
|
core.error(`Failed to save: ${typedError.message}`);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
core.warning(`Failed to save: ${typedError.message}`);
|
core.warning(`Failed to save: ${typedError.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
finally {
|
finally {
|
||||||
// Try to delete the archive to save space
|
// Try to delete the archive to save space
|
||||||
try {
|
try {
|
||||||
@@ -446,10 +487,18 @@ function saveCacheV2(paths, key, options, enableCrossOsArchive = false) {
|
|||||||
else if (typedError.name === ReserveCacheError.name) {
|
else if (typedError.name === ReserveCacheError.name) {
|
||||||
core.info(`Failed to save: ${typedError.message}`);
|
core.info(`Failed to save: ${typedError.message}`);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
// Log server errors (5xx) as errors, all other errors as warnings
|
||||||
|
if (typedError instanceof http_client_1.HttpClientError &&
|
||||||
|
typeof typedError.statusCode === 'number' &&
|
||||||
|
typedError.statusCode >= 500) {
|
||||||
|
core.error(`Failed to save: ${typedError.message}`);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
core.warning(`Failed to save: ${typedError.message}`);
|
core.warning(`Failed to save: ${typedError.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
finally {
|
finally {
|
||||||
// Try to delete the archive to save space
|
// Try to delete the archive to save space
|
||||||
try {
|
try {
|
||||||
@@ -71331,6 +71380,10 @@ class RpcOutputStreamController {
|
|||||||
cmp: [],
|
cmp: [],
|
||||||
};
|
};
|
||||||
this._closed = false;
|
this._closed = false;
|
||||||
|
// --- RpcOutputStream async iterator API
|
||||||
|
// iterator state.
|
||||||
|
// is undefined when no iterator has been acquired yet.
|
||||||
|
this._itState = { q: [] };
|
||||||
}
|
}
|
||||||
// --- RpcOutputStream callback API
|
// --- RpcOutputStream callback API
|
||||||
onNext(callback) {
|
onNext(callback) {
|
||||||
@@ -71430,10 +71483,6 @@ class RpcOutputStreamController {
|
|||||||
* messages are queued.
|
* messages are queued.
|
||||||
*/
|
*/
|
||||||
[Symbol.asyncIterator]() {
|
[Symbol.asyncIterator]() {
|
||||||
// init the iterator state, enabling pushIt()
|
|
||||||
if (!this._itState) {
|
|
||||||
this._itState = { q: [] };
|
|
||||||
}
|
|
||||||
// if we are closed, we are definitely not receiving any more messages.
|
// if we are closed, we are definitely not receiving any more messages.
|
||||||
// but we can't let the iterator get stuck. we want to either:
|
// but we can't let the iterator get stuck. we want to either:
|
||||||
// a) finish the new iterator immediately, because we are completed
|
// a) finish the new iterator immediately, because we are completed
|
||||||
@@ -71466,8 +71515,6 @@ class RpcOutputStreamController {
|
|||||||
// this either resolves a pending promise, or enqueues the result.
|
// this either resolves a pending promise, or enqueues the result.
|
||||||
pushIt(result) {
|
pushIt(result) {
|
||||||
let state = this._itState;
|
let state = this._itState;
|
||||||
if (!state)
|
|
||||||
return;
|
|
||||||
// is the consumer waiting for us?
|
// is the consumer waiting for us?
|
||||||
if (state.p) {
|
if (state.p) {
|
||||||
// yes, consumer is waiting for this promise.
|
// yes, consumer is waiting for this promise.
|
||||||
@@ -73379,6 +73426,7 @@ const reflection_equals_1 = __nccwpck_require__(4827);
|
|||||||
const binary_writer_1 = __nccwpck_require__(3957);
|
const binary_writer_1 = __nccwpck_require__(3957);
|
||||||
const binary_reader_1 = __nccwpck_require__(2889);
|
const binary_reader_1 = __nccwpck_require__(2889);
|
||||||
const baseDescriptors = Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));
|
const baseDescriptors = Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));
|
||||||
|
const messageTypeDescriptor = baseDescriptors[message_type_contract_1.MESSAGE_TYPE] = {};
|
||||||
/**
|
/**
|
||||||
* This standard message type provides reflection-based
|
* This standard message type provides reflection-based
|
||||||
* operations to work with a message.
|
* operations to work with a message.
|
||||||
@@ -73389,7 +73437,8 @@ class MessageType {
|
|||||||
this.typeName = name;
|
this.typeName = name;
|
||||||
this.fields = fields.map(reflection_info_1.normalizeFieldInfo);
|
this.fields = fields.map(reflection_info_1.normalizeFieldInfo);
|
||||||
this.options = options !== null && options !== void 0 ? options : {};
|
this.options = options !== null && options !== void 0 ? options : {};
|
||||||
this.messagePrototype = Object.create(null, Object.assign(Object.assign({}, baseDescriptors), { [message_type_contract_1.MESSAGE_TYPE]: { value: this } }));
|
messageTypeDescriptor.value = this;
|
||||||
|
this.messagePrototype = Object.create(null, baseDescriptors);
|
||||||
this.refTypeCheck = new reflection_type_check_1.ReflectionTypeCheck(this);
|
this.refTypeCheck = new reflection_type_check_1.ReflectionTypeCheck(this);
|
||||||
this.refJsonReader = new reflection_json_reader_1.ReflectionJsonReader(this);
|
this.refJsonReader = new reflection_json_reader_1.ReflectionJsonReader(this);
|
||||||
this.refJsonWriter = new reflection_json_writer_1.ReflectionJsonWriter(this);
|
this.refJsonWriter = new reflection_json_writer_1.ReflectionJsonWriter(this);
|
||||||
@@ -74906,12 +74955,16 @@ class ReflectionJsonReader {
|
|||||||
target[localName] = field.T().internalJsonRead(jsonValue, options, target[localName]);
|
target[localName] = field.T().internalJsonRead(jsonValue, options, target[localName]);
|
||||||
break;
|
break;
|
||||||
case "enum":
|
case "enum":
|
||||||
|
if (jsonValue === null)
|
||||||
|
continue;
|
||||||
let val = this.enum(field.T(), jsonValue, field.name, options.ignoreUnknownFields);
|
let val = this.enum(field.T(), jsonValue, field.name, options.ignoreUnknownFields);
|
||||||
if (val === false)
|
if (val === false)
|
||||||
continue;
|
continue;
|
||||||
target[localName] = val;
|
target[localName] = val;
|
||||||
break;
|
break;
|
||||||
case "scalar":
|
case "scalar":
|
||||||
|
if (jsonValue === null)
|
||||||
|
continue;
|
||||||
target[localName] = this.scalar(jsonValue, field.T, field.L, field.name);
|
target[localName] = this.scalar(jsonValue, field.T, field.L, field.name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -89756,6 +89809,11 @@ exports.STATE_CACHE_MATCHED_KEY = "cache-matched-key";
|
|||||||
const CACHE_VERSION = "1";
|
const CACHE_VERSION = "1";
|
||||||
async function restoreCache() {
|
async function restoreCache() {
|
||||||
const cacheKey = await computeKeys();
|
const cacheKey = await computeKeys();
|
||||||
|
core.saveState(exports.STATE_CACHE_KEY, cacheKey);
|
||||||
|
if (!inputs_1.restoreCache) {
|
||||||
|
core.info("restore-cache is false. Skipping restore cache step.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
let matchedKey;
|
let matchedKey;
|
||||||
core.info(`Trying to restore uv cache from GitHub Actions cache with key: ${cacheKey}`);
|
core.info(`Trying to restore uv cache from GitHub Actions cache with key: ${cacheKey}`);
|
||||||
try {
|
try {
|
||||||
@@ -89767,7 +89825,6 @@ async function restoreCache() {
|
|||||||
core.setOutput("cache-hit", false);
|
core.setOutput("cache-hit", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
core.saveState(exports.STATE_CACHE_KEY, cacheKey);
|
|
||||||
handleMatchResult(matchedKey, cacheKey);
|
handleMatchResult(matchedKey, cacheKey);
|
||||||
}
|
}
|
||||||
async function computeKeys() {
|
async function computeKeys() {
|
||||||
@@ -89966,7 +90023,12 @@ const inputs_1 = __nccwpck_require__(9612);
|
|||||||
async function run() {
|
async function run() {
|
||||||
try {
|
try {
|
||||||
if (inputs_1.enableCache) {
|
if (inputs_1.enableCache) {
|
||||||
|
if (inputs_1.saveCache) {
|
||||||
await saveCache();
|
await saveCache();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
core.info("save-cache is false. Skipping save cache step.");
|
||||||
|
}
|
||||||
// node will stay alive if any promises are not resolved,
|
// node will stay alive if any promises are not resolved,
|
||||||
// which is a possibility if HTTP requests are dangling
|
// which is a possibility if HTTP requests are dangling
|
||||||
// due to retries or timeouts. We know that if we got here
|
// due to retries or timeouts. We know that if we got here
|
||||||
@@ -90015,7 +90077,7 @@ async function saveCache() {
|
|||||||
}
|
}
|
||||||
async function pruneCache() {
|
async function pruneCache() {
|
||||||
const options = {
|
const options = {
|
||||||
silent: !core.isDebug(),
|
silent: false,
|
||||||
};
|
};
|
||||||
const execArgs = ["cache", "prune", "--ci"];
|
const execArgs = ["cache", "prune", "--ci"];
|
||||||
core.info("Pruning cache...");
|
core.info("Pruning cache...");
|
||||||
@@ -90068,7 +90130,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.serverUrl = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = void 0;
|
exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.serverUrl = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.saveCache = exports.restoreCache = exports.enableCache = exports.checkSum = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = void 0;
|
||||||
const node_path_1 = __importDefault(__nccwpck_require__(6760));
|
const node_path_1 = __importDefault(__nccwpck_require__(6760));
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
exports.workingDirectory = core.getInput("working-directory");
|
exports.workingDirectory = core.getInput("working-directory");
|
||||||
@@ -90078,6 +90140,8 @@ exports.pythonVersion = core.getInput("python-version");
|
|||||||
exports.activateEnvironment = core.getBooleanInput("activate-environment");
|
exports.activateEnvironment = core.getBooleanInput("activate-environment");
|
||||||
exports.checkSum = core.getInput("checksum");
|
exports.checkSum = core.getInput("checksum");
|
||||||
exports.enableCache = getEnableCache();
|
exports.enableCache = getEnableCache();
|
||||||
|
exports.restoreCache = core.getInput("restore-cache") === "true";
|
||||||
|
exports.saveCache = core.getInput("save-cache") === "true";
|
||||||
exports.cacheSuffix = core.getInput("cache-suffix") || "";
|
exports.cacheSuffix = core.getInput("cache-suffix") || "";
|
||||||
exports.cacheLocalPath = getCacheLocalPath();
|
exports.cacheLocalPath = getCacheLocalPath();
|
||||||
exports.cacheDependencyGlob = getCacheDependencyGlob();
|
exports.cacheDependencyGlob = getCacheDependencyGlob();
|
||||||
@@ -90169,16 +90233,11 @@ function expandTilde(input) {
|
|||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
function resolveRelativePath(inputPath) {
|
function resolveRelativePath(inputPath) {
|
||||||
if (node_path_1.default.isAbsolute(inputPath)) {
|
const hasNegation = inputPath.startsWith("!");
|
||||||
return inputPath;
|
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
||||||
}
|
const resolvedPath = node_path_1.default.resolve(exports.workingDirectory, pathWithoutNegation);
|
||||||
let absolutePath = inputPath;
|
core.debug(`Resolving relative path ${inputPath} to ${hasNegation ? "!" : ""}${resolvedPath}`);
|
||||||
if (absolutePath.startsWith("./")) {
|
return hasNegation ? `!${resolvedPath}` : resolvedPath;
|
||||||
absolutePath = absolutePath.substring(2);
|
|
||||||
}
|
|
||||||
absolutePath = `${exports.workingDirectory}${node_path_1.default.sep}${absolutePath}`;
|
|
||||||
core.debug(`Resolving relative path ${inputPath} to ${absolutePath}`);
|
|
||||||
return absolutePath;
|
|
||||||
}
|
}
|
||||||
function getManifestFile() {
|
function getManifestFile() {
|
||||||
const manifestFileInput = core.getInput("manifest-file");
|
const manifestFileInput = core.getInput("manifest-file");
|
||||||
@@ -92202,7 +92261,7 @@ module.exports = parseParams
|
|||||||
/***/ ((module) => {
|
/***/ ((module) => {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/cache","version":"4.0.3","preview":true,"description":"Actions cache lib","keywords":["github","actions","cache"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/cache","license":"MIT","main":"lib/cache.js","types":"lib/cache.d.ts","directories":{"lib":"lib","test":"__tests__"},"files":["lib","!.DS_Store"],"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/actions/toolkit.git","directory":"packages/cache"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"echo \\"Error: run tests from root\\" && exit 1","tsc":"tsc"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^1.11.1","@actions/exec":"^1.0.1","@actions/glob":"^0.1.0","@actions/http-client":"^2.1.1","@actions/io":"^1.0.1","@azure/abort-controller":"^1.1.0","@azure/ms-rest-js":"^2.6.0","@azure/storage-blob":"^12.13.0","@protobuf-ts/plugin":"^2.9.4","semver":"^6.3.1"},"devDependencies":{"@types/node":"^22.13.9","@types/semver":"^6.0.0","typescript":"^5.2.2"}}');
|
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/cache","version":"4.0.5","preview":true,"description":"Actions cache lib","keywords":["github","actions","cache"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/cache","license":"MIT","main":"lib/cache.js","types":"lib/cache.d.ts","directories":{"lib":"lib","test":"__tests__"},"files":["lib","!.DS_Store"],"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/actions/toolkit.git","directory":"packages/cache"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"echo \\"Error: run tests from root\\" && exit 1","tsc":"tsc"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^1.11.1","@actions/exec":"^1.0.1","@actions/glob":"^0.1.0","@protobuf-ts/runtime-rpc":"^2.11.1","@actions/http-client":"^2.1.1","@actions/io":"^1.0.1","@azure/abort-controller":"^1.1.0","@azure/ms-rest-js":"^2.6.0","@azure/storage-blob":"^12.13.0","semver":"^6.3.1"},"devDependencies":{"@types/node":"^22.13.9","@types/semver":"^6.0.0","@protobuf-ts/plugin":"^2.9.4","typescript":"^5.2.2"}}');
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
|
|||||||
3139
dist/setup/index.js
generated
vendored
3139
dist/setup/index.js
generated
vendored
File diff suppressed because one or more lines are too long
3041
dist/update-known-versions/index.js
generated
vendored
3041
dist/update-known-versions/index.js
generated
vendored
File diff suppressed because one or more lines are too long
1349
package-lock.json
generated
1349
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
12
package.json
12
package.json
@@ -21,7 +21,7 @@
|
|||||||
"author": "@eifinger",
|
"author": "@eifinger",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/cache": "^4.0.3",
|
"@actions/cache": "^4.0.5",
|
||||||
"@actions/core": "^1.11.1",
|
"@actions/core": "^1.11.1",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/glob": "^0.5.0",
|
"@actions/glob": "^0.5.0",
|
||||||
@@ -32,15 +32,15 @@
|
|||||||
"@octokit/plugin-rest-endpoint-methods": "^16.0.0",
|
"@octokit/plugin-rest-endpoint-methods": "^16.0.0",
|
||||||
"@renovatebot/pep440": "^4.2.0",
|
"@renovatebot/pep440": "^4.2.0",
|
||||||
"smol-toml": "^1.4.2",
|
"smol-toml": "^1.4.2",
|
||||||
"undici": "^7.14.0"
|
"undici": "^7.16.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.1.4",
|
"@biomejs/biome": "2.2.4",
|
||||||
"@types/js-yaml": "^4.0.9",
|
"@types/js-yaml": "^4.0.9",
|
||||||
"@types/node": "^24.3.0",
|
"@types/node": "^24.3.1",
|
||||||
"@types/semver": "^7.7.0",
|
"@types/semver": "^7.7.1",
|
||||||
"@vercel/ncc": "^0.38.3",
|
"@vercel/ncc": "^0.38.3",
|
||||||
"jest": "^30.0.5",
|
"jest": "^30.1.3",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"ts-jest": "^29.4.1",
|
"ts-jest": "^29.4.1",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.2"
|
||||||
|
|||||||
9
src/cache/restore-cache.ts
vendored
9
src/cache/restore-cache.ts
vendored
@@ -8,6 +8,7 @@ import {
|
|||||||
cacheSuffix,
|
cacheSuffix,
|
||||||
pruneCache,
|
pruneCache,
|
||||||
pythonVersion as pythonVersionInput,
|
pythonVersion as pythonVersionInput,
|
||||||
|
restoreCache as shouldRestoreCache,
|
||||||
workingDirectory,
|
workingDirectory,
|
||||||
} from "../utils/inputs";
|
} from "../utils/inputs";
|
||||||
import { getArch, getPlatform } from "../utils/platforms";
|
import { getArch, getPlatform } from "../utils/platforms";
|
||||||
@@ -18,6 +19,12 @@ const CACHE_VERSION = "1";
|
|||||||
|
|
||||||
export async function restoreCache(): Promise<void> {
|
export async function restoreCache(): Promise<void> {
|
||||||
const cacheKey = await computeKeys();
|
const cacheKey = await computeKeys();
|
||||||
|
core.saveState(STATE_CACHE_KEY, cacheKey);
|
||||||
|
|
||||||
|
if (!shouldRestoreCache) {
|
||||||
|
core.info("restore-cache is false. Skipping restore cache step.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let matchedKey: string | undefined;
|
let matchedKey: string | undefined;
|
||||||
core.info(
|
core.info(
|
||||||
@@ -32,8 +39,6 @@ export async function restoreCache(): Promise<void> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
core.saveState(STATE_CACHE_KEY, cacheKey);
|
|
||||||
|
|
||||||
handleMatchResult(matchedKey, cacheKey);
|
handleMatchResult(matchedKey, cacheKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,297 @@
|
|||||||
// AUTOGENERATED_DO_NOT_EDIT
|
// AUTOGENERATED_DO_NOT_EDIT
|
||||||
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||||
|
"aarch64-apple-darwin-0.8.20":
|
||||||
|
"a87008d013efd78d94102e5268a24990c409bfb39b80df4de32d1c97f093e7ef",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.20":
|
||||||
|
"ac33f921e0d48d14a106a6cc84b146da7a1f4a3c329c7fb0e1a8e6ff4cf541e6",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.20":
|
||||||
|
"b434851cd94e9e2083bc9a5851f1d13748771726bd2ac30027f820fc134b2104",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.20":
|
||||||
|
"60ad9b7fb846c2051e0113077b1e9510b4b1a73b9a1816a03e82406deedff08d",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.20":
|
||||||
|
"72fa919115f5a7c4557c1adb55ac77154f3fb0272b95ff0270d4eaf98bc814c2",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.20":
|
||||||
|
"87a993df182a2abb5581421d6c76b0cbccb311cfca625d8c827f2cfcf1c78fed",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.20":
|
||||||
|
"3a3c1b2370824f3129c89bf3def5b2b703813152cf0be0ec3c04dead21077cd0",
|
||||||
|
"i686-pc-windows-msvc-0.8.20":
|
||||||
|
"62fd821f330f469cce6e02eded6f63ba51a9461acc9e0e16794e05da08fe16be",
|
||||||
|
"i686-unknown-linux-gnu-0.8.20":
|
||||||
|
"a7bfa2c07183f2fd44ef4d6c910971796a980ebb3c52e9620e6b741cc6fe45c0",
|
||||||
|
"i686-unknown-linux-musl-0.8.20":
|
||||||
|
"67eec91d7ca5a8dc8d95149be52bcf459efb4caeacbacf8586f371f8192a0ec7",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.20":
|
||||||
|
"b96d6a4907ab4c26d7061e43f6993aa47c76a01af6f3cb871d9c48b7b250fbca",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.20":
|
||||||
|
"1c13fbcd13214e93300749cb14cb5c1425d6a4095f2e406a80b34ab10d269b5b",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.20":
|
||||||
|
"a14f8297bae6dc3993a9367e0fcf6061281f5f3f0da7c46a6a2a5fd47467f56c",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.20":
|
||||||
|
"8e59db8d1cb791897237982e369fea0217a12ffe3527cf6f1d30fea32d20a509",
|
||||||
|
"x86_64-apple-darwin-0.8.20":
|
||||||
|
"ec47686e5e1499b9ea53aa61181fa3f08d4113bc7628105dc299c092d4debf44",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.20":
|
||||||
|
"e2aa89b78f0a0fa7cbf9d42508c7a962bda803425d8ec3e9cf7a69fb00cf6791",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.20":
|
||||||
|
"dc67aa1a5b6b16a8cc4a5fdf5697f354fbf9e45f77a3da6d9e71db6ec213c082",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.20":
|
||||||
|
"a29e1854ee3ce1ccc5ba1d27783c4f34e99605e16c886a71446a90bad40a38c9",
|
||||||
|
"aarch64-apple-darwin-0.8.19":
|
||||||
|
"bb63d43c40a301d889a985223ee8ce540be199e98b3f27ed8477823869a0a605",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.19":
|
||||||
|
"3bfe2db4bccf95e05d2685bcbfad7e49e7cd2177a20aebe81a5e5348cbdfc0a3",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.19":
|
||||||
|
"ffd29feed13cdd30b27def8e80e64223325fbe4f7cfc4d4c906ec2531f746bde",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.19":
|
||||||
|
"87925376fa1e59de23582e1cbd81d6aabd16611e871ad085e09be2c2fa12689d",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.19":
|
||||||
|
"00d4835ba20e2e4a3bfed6fe4f6fbf4982c5a0e6a3105c7bde93fb9377e61dea",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.19":
|
||||||
|
"7a58efdb9c6e3f320759f9f074306e34f03ccfb535b306cbace92e9ad414efd5",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.19":
|
||||||
|
"c8f8a244009f3ad01b23772c936c5c5a95871a87b0add90b85a55d3913d1fae0",
|
||||||
|
"i686-pc-windows-msvc-0.8.19":
|
||||||
|
"32c7176e49f5fa1c7480b32e325a631431212904b1020427e62afef46fddddb9",
|
||||||
|
"i686-unknown-linux-gnu-0.8.19":
|
||||||
|
"94a5f944d1cba4db2e7fc6831bf9c78c291c5c1e5e079b4095e9fcdcbc15bc71",
|
||||||
|
"i686-unknown-linux-musl-0.8.19":
|
||||||
|
"491b282b50e078fac4ced99e69359ac6cecc3f43f585f812d52515e6b081261a",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.19":
|
||||||
|
"3c7c7ecb8d5b61acee3914984f1025af1707a987a51285aba44d968420139f2c",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.19":
|
||||||
|
"711e39050b528b0860d868c98057eebbd181befbe6a6f24e0f6fd571eab5520f",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.19":
|
||||||
|
"5dd8e1ec8bf8722e08d9853953ed0ef12318d0f5e82d06a8dd98815666f99186",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.19":
|
||||||
|
"5b3af341a39364f147d7286e40f55dd92ac8a142110e29ff1b4825afb96e1b27",
|
||||||
|
"x86_64-apple-darwin-0.8.19":
|
||||||
|
"b5f91770e55761b32c9618757ef23ded6671bb9ca0ddf5737eea60dddd493fe9",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.19":
|
||||||
|
"945b07182de7de279ba5ae5c746785dfd55cf9b17481d3535b0b03efd6e64567",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.19":
|
||||||
|
"cfc674e9b83d1becfca4d70386e5f7ace4c1fa8c47c518abeebb8ef2b30da4b8",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.19":
|
||||||
|
"6a37f712ae90c7b8cf364fe751144d7acc2479d6b336378111e74cc7fb14fa7b",
|
||||||
|
"aarch64-apple-darwin-0.8.18":
|
||||||
|
"ce660d5cdf0ed83d1a045bbe9792b93d06725b8c9e9b88960a503d42192be445",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.18":
|
||||||
|
"f49a25f1a89c76d750e2179f40f9302310504f40c89283ca4522b13363c7bdc9",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.18":
|
||||||
|
"164363f88618f4e8e175faf9fcf5172321c221fce93d64cec8e9ab3339511dad",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.18":
|
||||||
|
"1d7e3bfc3b5ec9d747bc3f42a6a3362249f30560966512b172e8967b11046144",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.18":
|
||||||
|
"3c356156c074eb21f731116501992aa6ad6079231f37c75ea7a15c22d1c41cf6",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.18":
|
||||||
|
"15e12cfba5fb7b20b4eb45887b78fe157d29bd28b38bbc03a19224ad6766a641",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.18":
|
||||||
|
"008cd8225fd8b6b4bb3293d1d7520023f8e432141f256320c034dc5a1a15c7ab",
|
||||||
|
"i686-pc-windows-msvc-0.8.18":
|
||||||
|
"55f0d91f766ca141e166fe74b8a81da667b5d703ca1b5f2671677f0b2bfdd901",
|
||||||
|
"i686-unknown-linux-gnu-0.8.18":
|
||||||
|
"3b42e3b58650cde6fa0d03dfdb8528573cf679ac9809191b3976913cdec13b6f",
|
||||||
|
"i686-unknown-linux-musl-0.8.18":
|
||||||
|
"e2dae897955f666eb2f83af12d9a566bc42c26c17413d1480124cef6b30dc0fd",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.18":
|
||||||
|
"88cd4ad593e6dd915c69dee02b56cbf1b6d16cb7c8129a5ad1fa8ac02bd755ab",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.18":
|
||||||
|
"50b418096f4d82df5d22cb23e650754ca92bca7be657113dcd53631f0e0cec77",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.18":
|
||||||
|
"b696be9a2ef0808f230227477b8e23acedba0b90933978c760ea2a748e8c30fa",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.18":
|
||||||
|
"3b106572a8574f58e3df591cdaef915bdb38fdff11e5de0ec53bfe1b857267e8",
|
||||||
|
"x86_64-apple-darwin-0.8.18":
|
||||||
|
"a08c3a6c50f49e68216ac133bd0aaae952db2cd8d19a3cd5be782f8f4becf135",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.18":
|
||||||
|
"3e42d63c8323839d50b11959ec558ad3954a2c16aab1ad52c0521bd055442a3f",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.18":
|
||||||
|
"59ad1a1809fa47019b86cf339fff161cb7b00ad3d8d42354eea57d0d91aeb44c",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.18":
|
||||||
|
"3a93bc3597ab73c9c31d8ad709b4d0b788961cbb508c5a4dcf21636fd7e3e8ce",
|
||||||
|
"aarch64-apple-darwin-0.8.17":
|
||||||
|
"e4d4859d7726298daa4c12e114f269ff282b2cfc2b415dc0b2ca44ae2dbd358e",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.17":
|
||||||
|
"2396749de576e45a40efa35fe94b3f953c3224c21f75c05772593e085d78e77d",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.17":
|
||||||
|
"9a20d65b110770bbaa2ee89ed76eb963d8c6a480b9ebef584ea9df2ae85b4f0f",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.17":
|
||||||
|
"bd141b7e263935d14f5725f2a5c1c942fd89642e37683cb904f1984ce7e365f4",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.17":
|
||||||
|
"9d4ffb6751d65a52f8daf3fd88e331ab989d490a6e336d6a96cac668fce17a65",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.17":
|
||||||
|
"014afffa5621986aefbe8a6d71597eb45b8cd3d4e94f825f34ec49ba4cd0c382",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.17":
|
||||||
|
"fb976e7482c4550f38c51c5c23b9dae0322c3173f56436bf9a81252e4b74fcfb",
|
||||||
|
"i686-pc-windows-msvc-0.8.17":
|
||||||
|
"f528893452ca512b555b63267292977d237bd6fbdd967c9be6941a65ebf256f4",
|
||||||
|
"i686-unknown-linux-gnu-0.8.17":
|
||||||
|
"d52438a1588ea7c2332dc4aa8c93eedae344fc435c95491037237c7b4b36eae4",
|
||||||
|
"i686-unknown-linux-musl-0.8.17":
|
||||||
|
"9e10f4c57034e6e98dea48b0f4250a7eff983f1b2947d99ed6605a4eb0ec8d22",
|
||||||
|
"loongarch64-unknown-linux-gnu-0.8.17":
|
||||||
|
"1d02e45dbbcbbaa867afe59fd62b294cba47abf1a76e151e19db03b5dbf1c9c8",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.17":
|
||||||
|
"6f448735dfd72e2d5c3e3bb541b388c58cdfcf3a562128d5ac1a5f2be47f95d6",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.17":
|
||||||
|
"e4b28cab21eb990e2bea768bc9f43b61e4fd554552cea8868c855027decef69d",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.17":
|
||||||
|
"f653caa34479d405d290b825a2fe782bb26c55a7bfaa870911b4e18792312d45",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.17":
|
||||||
|
"8fae8182704b4b11316c87d897c3e64f2d3f55ac8c58c482d9bbef9ad611f90c",
|
||||||
|
"x86_64-apple-darwin-0.8.17":
|
||||||
|
"31ed353cfd8e6c962e7c60617bd8a9d6b97b704c1ecb5b5eceaff8c6121b54ac",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.17":
|
||||||
|
"0d051779fbcb173b183efeae1c3e96148764fd82709bbbf0966df3efe48b67c5",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.17":
|
||||||
|
"920cbcaad514cc185634f6f0dcd71df5e8f4ee4456d440a22e0f8c0f142a8203",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.17":
|
||||||
|
"4057052999a210fe78d93599d2165da9e24c8bbb23370cdd26b66a98ab479203",
|
||||||
|
"aarch64-apple-darwin-0.8.16":
|
||||||
|
"87e4b51b735e8445f6c445c7b4c0398273e40d34cd192bad8158736653600cd6",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.16":
|
||||||
|
"392acca957d8d7cccafbb68ce6c4ba29b2ff00c8b0d4744a2136918d3a7bf765",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.16":
|
||||||
|
"22a3cbaf87776b73c2657ba5d63f8565c1235b65eaf57dffda66061f7a09913b",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.16":
|
||||||
|
"6bd6a11c384f07353c3c7eec9bde094f89b92a12dc09caea9df40c424afebea5",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.16":
|
||||||
|
"53c31a6559dc4fb22ce8c56640b00a8404b7e4d55f68b6bb3aa188864e2c3084",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.16":
|
||||||
|
"ada6f393d5e5d9cba5445832ba61e8222859e915e5d77a37f5dd35979f3f18e4",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.16":
|
||||||
|
"55690f70f9c61963c0069558e205acda9ff0604a44028226b9a0ec3b847c9125",
|
||||||
|
"i686-pc-windows-msvc-0.8.16":
|
||||||
|
"1e727b8af6c0781bc6eb9a2c34e7ee704070b7a2f122544443418e8be13019ee",
|
||||||
|
"i686-unknown-linux-gnu-0.8.16":
|
||||||
|
"4eaf39134663ef184f684be6f6aa83e971fb36ef7d1c67a5f2196268b61c0579",
|
||||||
|
"i686-unknown-linux-musl-0.8.16":
|
||||||
|
"a179ceba9f2fcca7b46a86b12715e28fb3429ff8193ae839700d534e35e95a45",
|
||||||
|
"loongarch64-unknown-linux-gnu-0.8.16":
|
||||||
|
"600a8be6d2621d654b6665d9a8df9370f4af9c0b6ceb851d1ae0d4b895e8e546",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.16":
|
||||||
|
"c86008ef8a3e3730b0e58a168542331960c90a3b043e3853c1941457748595f3",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.16":
|
||||||
|
"91645092447a14c23b47d0f434a787a9555b29e061607d9e60d2d556b831f5aa",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.16":
|
||||||
|
"dbaeff3f0baad73c264c35abd937a231fb6b9d1201b6763d82e39e7516358115",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.16":
|
||||||
|
"e29c330a8956c13acb0f2af7aa650dd5d9ebba6aefdceaea77f689953d140780",
|
||||||
|
"x86_64-apple-darwin-0.8.16":
|
||||||
|
"07491a998fd741090501df9bbfe538f85568901a3a66c9e0368636509158727a",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.16":
|
||||||
|
"97fb93678eca3b4f731ea3879ae2e78787976e03f38c9c6fb744ab28bc3aec1b",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.16":
|
||||||
|
"fc94e50e8ef93a97d723b83faa42888e7710c4443a5b8a1af3aac2cda5390f3a",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.16":
|
||||||
|
"ee220f112b91b23f641d169ba7a3652c6ab7104e7c666d26104ebd6a2f76be43",
|
||||||
|
"aarch64-apple-darwin-0.8.15":
|
||||||
|
"103367962c5cb00bf7370d84cbaa3fec5a9807be9cc833ea9d8eea400c119fa2",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.15":
|
||||||
|
"16d92f21508c5dbd3374466c2cdad2909959a6d3bd06672b9db023f2a5d7a014",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.15":
|
||||||
|
"6ede0fefa7db7be3d5d9eda8784a8e43b1cf5410720eb3da60ab1d2f66678e82",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.15":
|
||||||
|
"23ea21a05c62c4c307ce691f29bff2f15c94c4f07f2b83d9b356f0664bc8b3a2",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.15":
|
||||||
|
"deeac755224244b535c9f654b29aad8a165c94840a520d41e5c697235edd0576",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.15":
|
||||||
|
"07ad33bc28ed276944d069eb714322b24167bfe106b4bded01e272fe245934ba",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.15":
|
||||||
|
"0b4f73e084a04828f2431c887c2e3eea590ff06a1dc279e473dd1d94cdc8f25d",
|
||||||
|
"i686-pc-windows-msvc-0.8.15":
|
||||||
|
"34425e7dc7323b98fc844d9223596e9a1d2347e6f85a512221428a455dcbea78",
|
||||||
|
"i686-unknown-linux-gnu-0.8.15":
|
||||||
|
"16230e9b785fccb628e920d0fa1ca59b50b0515b838b2bb80f997bcb7a35f2bb",
|
||||||
|
"i686-unknown-linux-musl-0.8.15":
|
||||||
|
"43d554953beac56a8d8ba23aeb2b0e0e5c43020b074071c15df5d492e46a81f3",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.15":
|
||||||
|
"71465b1d08e0a4cb3fcfe02e127104400a85ed00c30ec5f53f8705e71567fb6a",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.15":
|
||||||
|
"54157ee5e01b02b8c89131391d62228787750b556bbdb7d3428a3cdfd1698102",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.15":
|
||||||
|
"faa4a470a26ad0db0dbefc510fac91fa0da4d9cd06ca4f229933f7aac21e46b2",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.15":
|
||||||
|
"0bb022274375745352a748b8332bb170941fe01915a1670c2c6d06d182783437",
|
||||||
|
"x86_64-apple-darwin-0.8.15":
|
||||||
|
"2bbef70982e97dfc36454de173f35ec1a5e83ae11e3885df6a50db3fd76171cb",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.15":
|
||||||
|
"459d95892a5cc5c21779532f4f41b9238594b79e312a5142da2148ecfa10e705",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.15":
|
||||||
|
"be9878e9d08ebcb621a683aba52e7fb8bbf92b2532e0d759026ffcc067673042",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.15":
|
||||||
|
"d0fec58f3124e05e0a1af0f6541abfce4333253cdaf23c7b6bb2e6128bf138ea",
|
||||||
|
"aarch64-apple-darwin-0.8.14":
|
||||||
|
"281ea18a5778099f7edeee0a7b20671d14918782de153604c939486f2b8a2791",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.14":
|
||||||
|
"d7fef1d1d0b0f8e0aa94391376fe5fb95f0e213ef7ee1c498c287fe0ea76f886",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.14":
|
||||||
|
"69616218470b2ad053617efb9e7027b1518ea38918d933c2791e113d99cec507",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.14":
|
||||||
|
"d492d433d8ea87a4051c3f071ed04f13f8f001aa782e2e8192eaa5143e9a6f39",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.14":
|
||||||
|
"ef6a51cc1808de75969e2719420464d494bb5932d18ebf3ac07df7a5ab27b16a",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.14":
|
||||||
|
"75c77b40c39dd526f88f5119d686e44d95c10cece436e4306f0db32b94d91716",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.14":
|
||||||
|
"33a15d40d407323a516edabdc4eb33bbefc04e17d40769a04bfc15605d2eee1e",
|
||||||
|
"i686-pc-windows-msvc-0.8.14":
|
||||||
|
"b43c5703cdfb15c019b04cad2ef19034a91e8a0872ae2d674d366dfc0a755124",
|
||||||
|
"i686-unknown-linux-gnu-0.8.14":
|
||||||
|
"d49a796d569b010d43eeb8d9259f1a12fa910176b076c04c13609648973f428e",
|
||||||
|
"i686-unknown-linux-musl-0.8.14":
|
||||||
|
"cee58d8fe55f59a0869039f83875ee44a4a12b3b3f1f1f5a2bdc68968e449f54",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.14":
|
||||||
|
"f118e642a7e360384a0277980986cea4857cc2d90364d58865d941c6b8abfcd1",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.14":
|
||||||
|
"c411e63edd125283641420bb4be830872be269451756de2095aebc3ca8b0277a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.14":
|
||||||
|
"1bb13f9d1a3e55dcea09f3b99b35ec0fbd3428276311b068268b07cd07c5b067",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.14":
|
||||||
|
"8643d6ab3513ab4adc3ffb56c39813651725d047ee6af5de3ae1fd0e4975c364",
|
||||||
|
"x86_64-apple-darwin-0.8.14":
|
||||||
|
"567d98b0c541a68df8aaa2c3214242c4070068b2edaea1be376a4c0fa348bdf1",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.14":
|
||||||
|
"3f68ab95d2856e6b238e0e3f4255a723ccdc2cf1d4b8e53f5a4f5a47b645dc72",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.14":
|
||||||
|
"954add045f29f93191523175e4aea066996840e86c1b6339dee25f48b15b5ddb",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.14":
|
||||||
|
"e018287fb321c3c633df2b622c2cf53042caa5c4c43a4ca6431bcb38e0685fa4",
|
||||||
|
"aarch64-apple-darwin-0.8.13":
|
||||||
|
"c3eddc0e314abb8588f1cdf312f0b060d79e1906eff8f43b64a05ff5e2727872",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.13":
|
||||||
|
"5b3a80d385d26fb9f63579a0712d020ec413ada38a6900e88fdfd41b58795b7e",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.13":
|
||||||
|
"3bb77b764618f65a969da063d1c4a507d8de5360ca2858f771cab109fa879a4d",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.13":
|
||||||
|
"40ba6e62de35820e8460eacee2b5b8f4add70a834d3859f7a60cdfc6b19ab599",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.13":
|
||||||
|
"f108a49a17b0700d7121b0215575f96c46a203774ed80ef40544005d7af74a67",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.13":
|
||||||
|
"730d8ef57f221ecc572d47b227ecbd8261be08157efb351311f7bc1f6c1c944a",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.13":
|
||||||
|
"b78dacab7c2fb352301d8997c0c705c3959a4e44d7b3afe670aee2397a2c9ab3",
|
||||||
|
"i686-pc-windows-msvc-0.8.13":
|
||||||
|
"08482edef8b077e12e73f76e6b4bb0300c054b8009cfac5cc354297f47d24623",
|
||||||
|
"i686-unknown-linux-gnu-0.8.13":
|
||||||
|
"0ce384911d4af9007576ceba2557c5d474a953ced34602ee4e09bd888cee13c0",
|
||||||
|
"i686-unknown-linux-musl-0.8.13":
|
||||||
|
"b6462dc8190c7a1eafa74287d8ff213764baa49e098aeeb522fa479d29e1c0bf",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.13":
|
||||||
|
"9a8e8a8927df9fa39af79214ab1acfc227dba9d9e690a424cef1dc17296161a8",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.13":
|
||||||
|
"4880a8e2ba5086e7ed4bd3aecfdae5e353da569ddaac02cd3db598b4c8e77193",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.13":
|
||||||
|
"0cd68055cedbc5b1194e7e7ab2b35ac7aa1d835c586fb3778c7acb0e8a8ac822",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.13":
|
||||||
|
"8cc2e70bee35c9e437c2308f130b79acc0d7c43e710296990ed76e702e220912",
|
||||||
|
"x86_64-apple-darwin-0.8.13":
|
||||||
|
"b799253441726351bc60c2e91254a821001e5e2e22a0e2b077d8983f583e8139",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.13":
|
||||||
|
"60870fa18d438737088e533ed06617549e42531c522cc9a8fe4455d8e745dc29",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.13":
|
||||||
|
"8ca3db7b2a3199171cfc0870be1f819cb853ddcec29a5fa28dae30278922b7ba",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.13":
|
||||||
|
"38ade73396b48fce89d9d1cb8a7e8f02b6e18a2d87467525ee8fb7e09899f70d",
|
||||||
"aarch64-apple-darwin-0.8.12":
|
"aarch64-apple-darwin-0.8.12":
|
||||||
"a3f78d20465c6d18f7072f118ce1c61b164b98698fdc37357e72958c7d1b68fd",
|
"a3f78d20465c6d18f7072f118ce1c61b164b98698fdc37357e72958c7d1b68fd",
|
||||||
"aarch64-pc-windows-msvc-0.8.12":
|
"aarch64-pc-windows-msvc-0.8.12":
|
||||||
|
|||||||
@@ -11,12 +11,17 @@ import {
|
|||||||
enableCache,
|
enableCache,
|
||||||
ignoreNothingToCache,
|
ignoreNothingToCache,
|
||||||
pruneCache as shouldPruneCache,
|
pruneCache as shouldPruneCache,
|
||||||
|
saveCache as shouldSaveCache,
|
||||||
} from "./utils/inputs";
|
} from "./utils/inputs";
|
||||||
|
|
||||||
export async function run(): Promise<void> {
|
export async function run(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
if (enableCache) {
|
if (enableCache) {
|
||||||
|
if (shouldSaveCache) {
|
||||||
await saveCache();
|
await saveCache();
|
||||||
|
} else {
|
||||||
|
core.info("save-cache is false. Skipping save cache step.");
|
||||||
|
}
|
||||||
// node will stay alive if any promises are not resolved,
|
// node will stay alive if any promises are not resolved,
|
||||||
// which is a possibility if HTTP requests are dangling
|
// which is a possibility if HTTP requests are dangling
|
||||||
// due to retries or timeouts. We know that if we got here
|
// due to retries or timeouts. We know that if we got here
|
||||||
@@ -73,7 +78,7 @@ async function saveCache(): Promise<void> {
|
|||||||
|
|
||||||
async function pruneCache(): Promise<void> {
|
async function pruneCache(): Promise<void> {
|
||||||
const options: exec.ExecOptions = {
|
const options: exec.ExecOptions = {
|
||||||
silent: !core.isDebug(),
|
silent: false,
|
||||||
};
|
};
|
||||||
const execArgs = ["cache", "prune", "--ci"];
|
const execArgs = ["cache", "prune", "--ci"];
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ export const pythonVersion = core.getInput("python-version");
|
|||||||
export const activateEnvironment = core.getBooleanInput("activate-environment");
|
export const activateEnvironment = core.getBooleanInput("activate-environment");
|
||||||
export const checkSum = core.getInput("checksum");
|
export const checkSum = core.getInput("checksum");
|
||||||
export const enableCache = getEnableCache();
|
export const enableCache = getEnableCache();
|
||||||
|
export const restoreCache = core.getInput("restore-cache") === "true";
|
||||||
|
export const saveCache = core.getInput("save-cache") === "true";
|
||||||
export const cacheSuffix = core.getInput("cache-suffix") || "";
|
export const cacheSuffix = core.getInput("cache-suffix") || "";
|
||||||
export const cacheLocalPath = getCacheLocalPath();
|
export const cacheLocalPath = getCacheLocalPath();
|
||||||
export const cacheDependencyGlob = getCacheDependencyGlob();
|
export const cacheDependencyGlob = getCacheDependencyGlob();
|
||||||
@@ -116,16 +118,15 @@ function expandTilde(input: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function resolveRelativePath(inputPath: string): string {
|
function resolveRelativePath(inputPath: string): string {
|
||||||
if (path.isAbsolute(inputPath)) {
|
const hasNegation = inputPath.startsWith("!");
|
||||||
return inputPath;
|
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
||||||
}
|
|
||||||
let absolutePath = inputPath;
|
const resolvedPath = path.resolve(workingDirectory, pathWithoutNegation);
|
||||||
if (absolutePath.startsWith("./")) {
|
|
||||||
absolutePath = absolutePath.substring(2);
|
core.debug(
|
||||||
}
|
`Resolving relative path ${inputPath} to ${hasNegation ? "!" : ""}${resolvedPath}`,
|
||||||
absolutePath = `${workingDirectory}${path.sep}${absolutePath}`;
|
);
|
||||||
core.debug(`Resolving relative path ${inputPath} to ${absolutePath}`);
|
return hasNegation ? `!${resolvedPath}` : resolvedPath;
|
||||||
return absolutePath;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getManifestFile(): string | undefined {
|
function getManifestFile(): string | undefined {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user