Upgrade Hydra dev dependency #78
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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| name: Python lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| - name: Set up bootstrap Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| cache: pip | |
| - name: Install nox | |
| run: python -m pip install "nox[pbs]>=2024.10,<2026.0" | |
| - name: Run lint | |
| run: nox -s lint | |
| tests: | |
| name: ${{ matrix.name }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: Python 3.10 | |
| runner: ubuntu-latest | |
| python_version: "3.10" | |
| nox_session: compat-3.10 | |
| - name: Python 3.11 | |
| runner: ubuntu-latest | |
| python_version: "3.11" | |
| nox_session: compat-3.11 | |
| - name: Python 3.12 | |
| runner: ubuntu-latest | |
| python_version: "3.12" | |
| nox_session: compat-3.12 | |
| - name: Python 3.14 | |
| runner: ubuntu-latest | |
| python_version: "3.14" | |
| nox_session: compat-3.14 | |
| - name: Platform Linux x64 | |
| runner: ubuntu-24.04 | |
| python_version: "3.13" | |
| nox_session: unit | |
| platform_id: linux-x64 | |
| go_tests: true | |
| - name: Platform Linux arm64 | |
| runner: ubuntu-24.04-arm | |
| python_version: "3.13" | |
| nox_session: unit | |
| platform_id: linux-arm64 | |
| go_tests: true | |
| - name: Platform macOS x64 | |
| runner: macos-15-intel | |
| python_version: "3.13" | |
| nox_session: unit | |
| platform_id: macos-x64 | |
| go_tests: true | |
| - name: Platform macOS arm64 | |
| runner: macos-15 | |
| python_version: "3.13" | |
| nox_session: unit | |
| platform_id: macos-arm64 | |
| go_tests: true | |
| - name: Platform Windows x64 | |
| runner: windows-2025 | |
| python_version: "3.13" | |
| nox_session: unit | |
| platform_id: windows-x64 | |
| go_tests: true | |
| - name: Platform Windows arm64 | |
| runner: windows-11-arm | |
| python_version: "3.13" | |
| nox_session: unit | |
| platform_id: windows-arm64 | |
| go_tests: true | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python_version }} | |
| cache: pip | |
| - name: Set up Go | |
| if: ${{ matrix.go_tests == true }} | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: client/go-cli/go.mod | |
| - name: Cache Go client smoke binary | |
| if: ${{ matrix.go_tests == true }} | |
| uses: actions/cache@v4 | |
| with: | |
| path: .ci/go-client-smoke | |
| key: go-client-smoke-${{ matrix.platform_id }}-${{ hashFiles('client/go-cli/**', 'tools/build_go_client') }} | |
| - name: Install nox | |
| run: python -m pip install "nox[pbs]>=2024.10,<2026.0" | |
| - name: Set up OpenSSL for Windows arm64 Python dependencies | |
| if: ${{ matrix.platform_id == 'windows-arm64' }} | |
| shell: pwsh | |
| run: | | |
| $vcpkgRoot = Join-Path $env:RUNNER_TEMP "vcpkg" | |
| git clone https://github.com/microsoft/vcpkg $vcpkgRoot | |
| & (Join-Path $vcpkgRoot "bootstrap-vcpkg.bat") -disableMetrics | |
| & (Join-Path $vcpkgRoot "vcpkg.exe") install openssl:arm64-windows-static-md | |
| $opensslRoot = Join-Path $vcpkgRoot "installed\arm64-windows-static-md" | |
| "VCPKG_ROOT=$vcpkgRoot" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| "OPENSSL_DIR=$opensslRoot" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| - name: Run Go client tests | |
| if: ${{ matrix.go_tests == true }} | |
| working-directory: client/go-cli | |
| env: | |
| GOCACHE: ${{ runner.temp }}/go-build | |
| run: go test ./... | |
| - name: Run Python compatibility unit suite | |
| if: ${{ matrix.go_tests != true }} | |
| run: nox -s ${{ matrix.nox_session }} | |
| - name: Run platform unit test suite | |
| if: ${{ matrix.go_tests == true }} | |
| env: | |
| ARBITER_GO_CLIENT_SMOKE_OUTDIR: .ci/go-client-smoke | |
| ARBITER_GO_CLIENT_SMOKE_REUSE: "1" | |
| GOCACHE: ${{ runner.temp }}/go-build | |
| run: nox -s ${{ matrix.nox_session }} | |
| website: | |
| name: Website | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: website/package-lock.json | |
| - name: Install website dependencies | |
| working-directory: website | |
| run: npm ci | |
| - name: Build website | |
| working-directory: website | |
| run: npm run build | |
| - name: Upload Pages artifact | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: website/build | |
| deploy-website: | |
| name: Deploy website | |
| runs-on: ubuntu-latest | |
| needs: | |
| - lint | |
| - tests | |
| - website | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |