Move atomic sync #3033
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: CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
avalanchegoRepo: | |
description: "avalanchego github repository" | |
required: true | |
default: "ava-labs/avalanchego" | |
avalanchegoBranch: | |
description: "avalanchego branch" | |
required: true | |
default: "master" | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: check out ${{ github.event.inputs.avalanchegoRepo }} ${{ github.event.inputs.avalanchegoBranch }} | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ github.event.inputs.avalanchegoRepo }} | |
ref: ${{ github.event.inputs.avalanchegoBranch }} | |
path: avalanchego | |
token: ${{ secrets.AVALANCHE_PAT }} | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "~1.22.8" | |
- name: change avalanchego dep | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
go mod edit -replace github.com/ava-labs/avalanchego=./avalanchego | |
go mod tidy | |
go clean -modcache # avoid conflicts with the golangci-lint-action cache | |
- run: ./scripts/lint_allowed_geth_imports.sh | |
shell: bash | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@v3 | |
with: | |
version: v1.56 | |
working-directory: . | |
args: --timeout 3m | |
skip-pkg-cache: true | |
- name: Run shellcheck | |
shell: bash | |
run: scripts/shellcheck.sh | |
- name: Run actionlint | |
shell: bash | |
run: scripts/actionlint.sh | |
test: | |
name: Golang Unit Tests (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-20.04, ubuntu-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: check out ${{ github.event.inputs.avalanchegoRepo }} ${{ github.event.inputs.avalanchegoBranch }} | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ github.event.inputs.avalanchegoRepo }} | |
ref: ${{ github.event.inputs.avalanchegoBranch }} | |
path: avalanchego | |
token: ${{ secrets.AVALANCHE_PAT }} | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "~1.22.8" | |
- name: change avalanchego dep | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
go mod edit -replace github.com/ava-labs/avalanchego=./avalanchego | |
go mod tidy | |
- name: Set timeout on Windows # Windows UT run slower and need a longer timeout | |
shell: bash | |
if: matrix.os == 'windows-latest' | |
run: echo "TIMEOUT=1200s" >> "$GITHUB_ENV" | |
- run: go mod download | |
shell: bash | |
- name: go mod tidy | |
run: | | |
go mod tidy | |
git diff --exit-code | |
- name: Mocks are up to date | |
shell: bash | |
run: | | |
grep -lr -E '^// Code generated by MockGen\. DO NOT EDIT\.$' . | xargs -r rm | |
go generate -run "go.uber.org/mock/mockgen" ./... | |
git add --intent-to-add --all | |
git diff --exit-code | |
- run: ./scripts/build.sh evm | |
shell: bash | |
- run: ./scripts/build_test.sh | |
shell: bash | |
env: | |
TIMEOUT: ${{ env.TIMEOUT }} | |
- run: ./scripts/coverage.sh | |
shell: bash | |
avalanchego_e2e: | |
name: AvalancheGo E2E Tests (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: check out ${{ github.event.inputs.avalanchegoRepo }} ${{ github.event.inputs.avalanchegoBranch }} | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ github.event.inputs.avalanchegoRepo }} | |
ref: ${{ github.event.inputs.avalanchegoBranch }} | |
path: avalanchego | |
token: ${{ secrets.AVALANCHE_PAT }} | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "~1.22.8" | |
- name: Run e2e tests | |
run: E2E_SERIAL=1 ./scripts/tests.e2e.sh | |
shell: bash | |
- name: Upload tmpnet network dir | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: tmpnet-data | |
path: ~/.tmpnet/networks/1000 |