nightly-tests #46
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
| # CI tests the latest fork (heze) on every push. This nightly workflow | |
| # covers all prior forks to catch regressions introduced by fork-specific changes. | |
| name: nightly-tests | |
| on: | |
| schedule: | |
| # Run at 8:30 AM UTC every day | |
| - cron: '30 8 * * *' | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| RUSTFLAGS: "-D warnings -C debuginfo=0" | |
| CARGO_INCREMENTAL: 0 | |
| jobs: | |
| setup-matrix: | |
| name: setup-matrix | |
| runs-on: ubuntu-latest | |
| outputs: | |
| forks: ${{ steps.set-matrix.outputs.forks }} | |
| steps: | |
| - name: Set matrix | |
| id: set-matrix | |
| run: | | |
| # All forks except heze (which is tested on every push via ci.yml). | |
| echo 'forks=["phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu", "gloas"]' >> $GITHUB_OUTPUT | |
| beacon-chain-tests: | |
| name: beacon-chain-tests (${{ matrix.fork }}) | |
| needs: setup-matrix | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| strategy: | |
| matrix: | |
| fork: ${{ fromJson(needs.setup-matrix.outputs.forks) }} | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-nextest@0.9.132 | |
| - name: Run beacon_chain tests for ${{ matrix.fork }} | |
| # Gloas/Heze-specific integration tests are tested on every push via | |
| # ci.yml with FORK_NAME=heze. Exclude them from all nightly prior-fork | |
| # runs to avoid timeout. Also exclude block_verification:: tests which | |
| # build a 320-block chain via get_chain_segment() — under fulu with | |
| # PeerDAS data columns, each test takes 20+ minutes causing job timeouts. | |
| run: > | |
| env FORK_NAME=${{ matrix.fork }} cargo nextest run --release | |
| --features "fork_from_env,slasher/lmdb" | |
| -p beacon_chain | |
| -E 'not test(/gloas::|gloas_verification::|heze::|heze_verification::|block_verification::/)' | |
| timeout-minutes: 90 | |
| op-pool-tests: | |
| name: op-pool-tests (${{ matrix.fork }}) | |
| needs: setup-matrix | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| strategy: | |
| matrix: | |
| fork: ${{ fromJson(needs.setup-matrix.outputs.forks) }} | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-nextest@0.9.132 | |
| - name: Run operation_pool tests for ${{ matrix.fork }} | |
| run: make test-op-pool-${{ matrix.fork }} | |
| timeout-minutes: 60 | |
| network-tests: | |
| name: network-tests (${{ matrix.fork }}) | |
| needs: setup-matrix | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| strategy: | |
| matrix: | |
| fork: ${{ fromJson(needs.setup-matrix.outputs.forks) }} | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-nextest@0.9.132 | |
| - name: Run network tests for ${{ matrix.fork }} | |
| run: make test-network-${{ matrix.fork }} | |
| timeout-minutes: 60 | |
| http-api-tests: | |
| name: http-api-tests (${{ matrix.fork }}) | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| strategy: | |
| matrix: | |
| # CI tests heze on every push. Cover the other recent forks here. | |
| fork: ["electra", "fulu", "gloas"] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-nextest@0.9.132 | |
| - name: Run http_api tests for ${{ matrix.fork }} | |
| run: make test-http-api-${{ matrix.fork }} | |
| timeout-minutes: 60 | |
| slasher-tests: | |
| name: slasher-tests | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-nextest@0.9.132 | |
| - name: Run slasher tests (all backends) | |
| run: make test-slasher | |
| timeout-minutes: 30 | |
| state-transition-vectors: | |
| name: state-transition-vectors | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-nextest@0.9.132 | |
| - name: Run state transition vector tests | |
| run: cargo nextest run --release -p state_transition_vectors | |
| timeout-minutes: 30 |