chore: module-renaming workflow inverts between libevm
and geth
#601
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: Go | |
on: | |
push: | |
branches: [main, "release/**"] | |
pull_request: | |
branches: [main, "release/**"] | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
jobs: | |
# If adding a new job, add it to the `needs` list of the `go` job as this is | |
# what gates PRs. | |
go: | |
runs-on: ubuntu-latest | |
needs: [go_test_short, go_test_tooling, go_generate, go_tidy] | |
steps: | |
- run: echo "Dependencies successful" | |
go_test_short: | |
env: | |
FLAKY_REGEX: "ava-labs/libevm/(triedb/pathdb|eth|eth/tracers/js|eth/tracers/logger|accounts/abi/bind|accounts/keystore|eth/downloader|miner|ethclient|ethclient/gethclient|eth/catalyst)$" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "go.mod" | |
- name: Run flaky tests sequentially | |
run: | |
| # Upstream flakes are race conditions exacerbated by concurrent tests | |
go list ./... | grep -P "${FLAKY_REGEX}" | xargs -n 1 go test -short; | |
- name: Run non-flaky tests concurrently | |
run: | | |
go test -short $(go list ./... | grep -Pv "${FLAKY_REGEX}"); | |
go_test_tooling: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./libevm/tooling | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # everything | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "./libevm/tooling/go.mod" | |
- run: go test ./... | |
go_generate: | |
env: | |
EXCLUDE_REGEX: "ava-labs/libevm/(accounts/usbwallet/trezor)$" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "go.mod" | |
- name: Run `go generate` | |
run: go list ./... | grep -Pv "${EXCLUDE_REGEX}" | xargs go generate; | |
- name: git diff | |
run: git diff --exit-code | |
go_tidy: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
dir: ["./", "./libevm/tooling"] | |
defaults: | |
run: | |
working-directory: ${{ matrix.dir }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "${{ matrix.dir }}/go.mod" | |
- run: go mod tidy | |
- run: git diff --exit-code |