| --- |
| name: Test |
| on: |
| pull_request: |
| push: |
| branches: |
| - main |
| - "release-*" |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.job }}-${{ (github.event.pull_request && github.event.pull_request.number) || github.ref || github.run_id }} |
| cancel-in-progress: true |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| supported_versions: |
| name: Fetch supported Go versions |
| runs-on: ubuntu-latest |
| outputs: |
| matrix: ${{ steps.versions.outputs.matrix }} |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| with: |
| persist-credentials: false |
| - name: Get supported Go versions JSON |
| id: versions |
| run: | |
| echo "matrix=$(cat supported_go_versions.json | jq -c .)" >> "$GITHUB_OUTPUT" |
| |
| test-linux: |
| name: Linux (${{ matrix.label }}) |
| runs-on: ubuntu-latest |
| needs: supported_versions |
| strategy: |
| fail-fast: false |
| matrix: |
| include: ${{ fromJSON(needs.supported_versions.outputs.matrix).versions }} |
| concurrency: |
| group: ${{ github.workflow }}-test-linux-${{ matrix.label }}-${{ (github.event.pull_request && github.event.pull_request.number) || github.ref || github.run_id }} |
| cancel-in-progress: true |
| |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| with: |
| persist-credentials: false |
| |
| - name: Set up Go ${{ matrix.version }} |
| uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 |
| with: |
| go-version: ${{ matrix.version }} |
| check-latest: true |
| cache-dependency-path: go.sum |
| |
| - name: Run tests |
| run: make test |
| env: |
| CI: true |
| |
| test-linux-arm64: |
| name: Linux arm64 (${{ matrix.label }}) |
| runs-on: ubuntu-24.04-arm |
| needs: supported_versions |
| strategy: |
| fail-fast: false |
| matrix: |
| include: ${{ fromJSON(needs.supported_versions.outputs.matrix).versions }} |
| concurrency: |
| group: ${{ github.workflow }}-test-linux-arm64-${{ matrix.label }}-${{ (github.event.pull_request && github.event.pull_request.number) || github.ref || github.run_id }} |
| cancel-in-progress: true |
| |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| with: |
| persist-credentials: false |
| |
| - name: Set up Go ${{ matrix.version }} |
| uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 |
| with: |
| go-version: ${{ matrix.version }} |
| check-latest: true |
| cache-dependency-path: go.sum |
| |
| - name: Run tests |
| run: make test |
| env: |
| CI: true |
| |
| test-macos: |
| name: macOS (${{ matrix.label }}) |
| runs-on: macos-latest |
| needs: supported_versions |
| strategy: |
| fail-fast: false |
| matrix: |
| include: ${{ fromJSON(needs.supported_versions.outputs.matrix).versions }} |
| concurrency: |
| group: ${{ github.workflow }}-test-macos-${{ matrix.label }}-${{ (github.event.pull_request && github.event.pull_request.number) || github.ref || github.run_id }} |
| cancel-in-progress: true |
| |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| with: |
| persist-credentials: false |
| |
| - name: Set up Go ${{ matrix.version }} |
| uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 |
| with: |
| go-version: ${{ matrix.version }} |
| check-latest: true |
| cache-dependency-path: go.sum |
| |
| - name: Run tests |
| run: make test |
| env: |
| CI: true |
| |
| test-windows: |
| name: Windows (${{ matrix.label }}) |
| runs-on: windows-latest |
| needs: supported_versions |
| strategy: |
| fail-fast: false |
| matrix: |
| include: ${{ fromJSON(needs.supported_versions.outputs.matrix).versions }} |
| concurrency: |
| group: ${{ github.workflow }}-test-windows-${{ matrix.label }}-${{ (github.event.pull_request && github.event.pull_request.number) || github.ref || github.run_id }} |
| cancel-in-progress: true |
| |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| with: |
| persist-credentials: false |
| |
| - name: Set up Go ${{ matrix.version }} |
| uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 |
| with: |
| go-version: ${{ matrix.version }} |
| check-latest: true |
| cache-dependency-path: go.sum |
| |
| - name: Run tests |
| shell: bash |
| run: go test -race ./... |
| |
| - name: Run tests (exp module) |
| shell: bash |
| run: cd exp && go test -race ./... |