feat: Add solc-based contract compilation and Go binding generation (Phase 1) #2628
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: | |
| - master | |
| tags: | |
| - "*" | |
| pull_request: | |
| merge_group: | |
| types: [checks_requested] | |
| jobs: | |
| lint_test: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: "go.mod" | |
| - name: Run all lint checks | |
| run: ./scripts/run_task.sh lint-all-ci | |
| - name: Check go.mod and go.sum are up-to-date | |
| run: ./scripts/run_task.sh check-go-mod-tidy | |
| - name: Ensure consistent avalanchego version | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: ./scripts/run_task.sh check-avalanchego-version | |
| unit_test: | |
| name: Golang Unit Tests (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, ubuntu-22.04, ubuntu-latest] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: "go.mod" | |
| - run: go mod download | |
| - name: Check generated codec files are up to date | |
| run: ./scripts/run_task.sh check-generate-codec | |
| - name: Check generated mocks are up to date | |
| run: ./scripts/run_task.sh check-generate-mocks | |
| - run: ./scripts/run_task.sh build | |
| - run: ./scripts/run_task.sh build-test | |
| env: | |
| TIMEOUT: ${{ env.TIMEOUT }} | |
| - run: ./scripts/run_task.sh coverage | |
| e2e_precompile: | |
| name: e2e precompile tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: "go.mod" | |
| - name: Set up solc | |
| uses: ARR4N/[email protected] | |
| with: | |
| versions: '0.8.30' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.13" | |
| - name: Setup Contracts | |
| run: ./scripts/run_task.sh setup-contracts | |
| - name: Run E2E Precompile Tests | |
| run: ./scripts/run_task.sh test-e2e-precompile-ci | |
| - name: Upload Artifact | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: subnet-evm-e2e-logs-precompile | |
| path: /tmp/e2e-test/precompile-data | |
| retention-days: 5 | |
| e2e_warp: | |
| name: e2e warp tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Set up solc | |
| uses: ARR4N/[email protected] | |
| with: | |
| versions: '0.8.30' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.13" | |
| - name: Setup Contracts | |
| run: ./scripts/run_task.sh setup-contracts | |
| - name: Run Warp E2E Tests | |
| uses: ava-labs/avalanchego/.github/actions/run-monitored-tmpnet-cmd@edff59906ed4d6334d9e591dcb9c85a144520600 | |
| with: | |
| run: ./scripts/run_task.sh test-e2e-warp-ci | |
| artifact_prefix: warp | |
| prometheus_url: ${{ secrets.PROMETHEUS_URL || '' }} | |
| prometheus_push_url: ${{ secrets.PROMETHEUS_PUSH_URL || '' }} | |
| prometheus_username: ${{ secrets.PROMETHEUS_ID || '' }} | |
| prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }} | |
| loki_url: ${{ secrets.LOKI_URL || '' }} | |
| loki_push_url: ${{ secrets.LOKI_PUSH_URL || '' }} | |
| loki_username: ${{ secrets.LOKI_ID || '' }} | |
| loki_password: ${{ secrets.LOKI_PASSWORD || '' }} | |
| e2e_load: | |
| name: e2e load tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Git checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Run E2E Load Tests | |
| uses: ava-labs/avalanchego/.github/actions/run-monitored-tmpnet-cmd@edff59906ed4d6334d9e591dcb9c85a144520600 | |
| with: | |
| run: ./scripts/run_task.sh test-e2e-load-ci | |
| artifact_prefix: load | |
| prometheus_url: ${{ secrets.PROMETHEUS_URL || '' }} | |
| prometheus_push_url: ${{ secrets.PROMETHEUS_PUSH_URL || '' }} | |
| prometheus_username: ${{ secrets.PROMETHEUS_ID || '' }} | |
| prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }} | |
| loki_url: ${{ secrets.LOKI_URL || '' }} | |
| loki_push_url: ${{ secrets.LOKI_PUSH_URL || '' }} | |
| loki_username: ${{ secrets.LOKI_ID || '' }} | |
| loki_password: ${{ secrets.LOKI_PASSWORD || '' }} | |
| test_build_image: | |
| name: Image build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install qemu (required for cross-platform builds) | |
| run: | | |
| sudo apt update | |
| sudo apt -y install qemu-system qemu-user-static | |
| - name: Check image build | |
| run: ./scripts/run_task.sh test-build-image | |
| test_build_antithesis_images: | |
| name: Build Antithesis images | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: "go.mod" | |
| - name: Check antithesis image build | |
| run: ./scripts/run_task.sh test-build-antithesis-images-ci |