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-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 }} 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: python-version: ["3.12", "3.13t"] steps: - uses: actions/checkout@v4 - name: Install latest version uses: ./ with: python-version: ${{ matrix.python-version }} - name: Verify UV_PYTHON is set to correct version run: | if [ "$UV_PYTHON" != "${{ matrix.python-version }}" ]; then exit 1 fi - run: uv sync working-directory: __tests__/fixtures/uv-project