Manage go tools via tools.go #1115
Workflow file for this run
This file contains 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: | |
push: | |
branches: | |
- main | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
matrix-setup: | |
runs-on: ubuntu-latest | |
outputs: | |
os-matrix: ${{ steps.set-matrix.outputs.os-matrix }} | |
steps: | |
- id: set-matrix | |
run: | | |
echo 'os-matrix=["ubuntu-latest", "macos-latest"]' >> $GITHUB_OUTPUT | |
devrequirements: | |
needs: matrix-setup | |
strategy: | |
matrix: | |
os: ${{ fromJson(needs.matrix-setup.outputs.os-matrix) }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- run: make install-buf | |
verify-generated-code: | |
needs: matrix-setup | |
strategy: | |
matrix: | |
os: ${{ fromJson(needs.matrix-setup.outputs.os-matrix) }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- run: make install-buf | |
- run: make gen-proto | |
- name: Check for changes | |
run: | | |
if [[ -n $(git status --porcelain) ]]; then | |
echo "Generated code is not up to date. Please run 'make gen-proto' locally and commit the changes." | |
git status | |
git diff | |
exit 1 | |
fi | |
coverage: | |
runs-on: ubuntu-latest # action go-test-coverage not available on macos | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- run: make cover.out | |
- uses: vladopajic/go-test-coverage@v2 | |
with: | |
config: .testcoverage.yml | |
short: | |
needs: matrix-setup | |
strategy: | |
matrix: | |
os: ${{ fromJson(needs.matrix-setup.outputs.os-matrix) }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- run: make test | |
e2e: | |
needs: matrix-setup | |
strategy: | |
matrix: | |
os: ${{ fromJson(needs.matrix-setup.outputs.os-matrix) }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: "recursive" | |
- uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- uses: foundry-rs/foundry-toolchain@v1 | |
- run: make setup-e2e | |
- run: make e2e | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: e2e-logs-${{ matrix.os }} | |
path: e2e/artifacts/ |