mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-01-19 00:08:17 +08:00
215 lines
6.0 KiB
YAML
215 lines
6.0 KiB
YAML
name: "test"
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: |
|
|
npm install
|
|
- run: |
|
|
npm run all
|
|
- name: Make sure no changes from linters are detected
|
|
run: |
|
|
git diff --exit-code
|
|
test-default-version:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, macos-14]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install latest version
|
|
uses: ./
|
|
- run: uv sync
|
|
working-directory: __tests__/fixtures/uv-project
|
|
test-specific-version:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
uv-version: ["0.3.0", "0.3.2", "0.3", "0.3.x", ">=0.3.0"]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install version ${{ matrix.uv-version }}
|
|
uses: ./
|
|
with:
|
|
version: ${{ matrix.uv-version }}
|
|
- run: uv sync
|
|
working-directory: __tests__/fixtures/uv-project
|
|
test-semver-range:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install version 0.3
|
|
id: setup-uv
|
|
uses: ./
|
|
with:
|
|
version: "0.3"
|
|
- name: Correct version gets installed
|
|
run: |
|
|
if [ "$UV_VERSION" != "0.3.5" ]; then
|
|
exit 1
|
|
fi
|
|
env:
|
|
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
|
test-pyproject-file-version:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install version 0.5.14
|
|
id: setup-uv
|
|
uses: ./
|
|
with:
|
|
pyproject-file: "__tests__/fixtures/pyproject-toml-project/pyproject.toml"
|
|
- name: Correct version gets installed
|
|
run: |
|
|
if [ "$UV_VERSION" != "0.5.14" ]; then
|
|
exit 1
|
|
fi
|
|
env:
|
|
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
|
test-uv-file-version:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install version 0.5.15
|
|
id: setup-uv
|
|
uses: ./
|
|
with:
|
|
pyproject-file: "__tests__/fixtures/uv-toml-project/pyproject.toml"
|
|
uv-file: "__tests__/fixtures/uv-toml-project/uv.toml"
|
|
- name: Correct version gets installed
|
|
run: |
|
|
if [ "$UV_VERSION" != "0.5.15" ]; then
|
|
exit 1
|
|
fi
|
|
env:
|
|
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
|
test-checksum:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
checksum:
|
|
["4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"]
|
|
exclude:
|
|
- os: macos-latest
|
|
checksum: "4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"
|
|
include:
|
|
- os: macos-latest
|
|
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Checksum matches expected
|
|
uses: ./
|
|
with:
|
|
version: "0.3.2"
|
|
checksum: ${{ matrix.checksum }}
|
|
- run: uv sync
|
|
working-directory: __tests__/fixtures/uv-project
|
|
test-with-explicit-token:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- 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@v4
|
|
- 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@v4
|
|
- 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@v4
|
|
- 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: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- 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
|
|
- name: Verify packages can be installed
|
|
run: uv pip install --python=3.13.1t 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-malformed-pyproject-file-fallback:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install using malformed pyproject.toml
|
|
id: setup-uv
|
|
uses: ./
|
|
with:
|
|
pyproject-file: "__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml"
|
|
- run: uv sync
|
|
working-directory: __tests__/fixtures/uv-project
|