fix(epoch-oracle): activate validators whose epoch was skipped on sta… #8205
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': | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - development | |
| - main | |
| - ci-* | |
| pull_request: | |
| types: | |
| - opened | |
| - reopened | |
| - synchronize | |
| merge_group: | |
| concurrency: | |
| # https://docs.github.com/en/actions/examples/using-concurrency-expressions-and-a-test-matrix | |
| group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' | |
| cancel-in-progress: ${{ !startsWith(github.ref, 'refs/tags/v') || github.ref != 'refs/heads/development' }} | |
| env: | |
| nightly_toolchain: nightly-2025-06-25 | |
| stable_toolchain: stable | |
| CARGO_HTTP_MULTIPLEXING: false | |
| CARGO_TERM_COLOR: always | |
| CARGO_INCREMENTAL: 0 | |
| TARI_TARGET_NETWORK: localnet | |
| TARI_NETWORK: localnet | |
| # https://github.com/rust-lang/rustup/issues/2949#issuecomment-2584968659 | |
| RUSTUP_PERMIT_COPY_RENAME: true | |
| PROTOC: protoc | |
| TERM: unknown | |
| jobs: | |
| fmt: | |
| name: fmt | |
| runs-on: [ ubuntu-latest ] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v6 | |
| - name: toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| toolchain: ${{ env.nightly_toolchain }} | |
| components: rustfmt | |
| - name: cargo format | |
| run: cargo +${{ env.nightly_toolchain }} fmt --all -- --check | |
| prettier: | |
| name: prettier | |
| runs-on: [ ubuntu-latest ] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v6 | |
| - name: install | |
| run: | | |
| npm install -g prettier@3.2.4 | |
| - name: prettier | |
| run: | | |
| prettier --check "./applications/{tari_validator_node/web_ui,tari_indexer/web_ui,tari_ootle_walletd/web_ui}/src/*.{ts,tsx,json}" | |
| clippy: | |
| name: clippy | |
| runs-on: [ ubuntu-latest ] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v6 | |
| - name: toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: ${{ env.stable_toolchain }} | |
| components: clippy | |
| - uses: ./.github/actions/rust-cache | |
| - name: ubuntu dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo bash scripts/install_ubuntu_dependencies.sh | |
| - uses: rui314/setup-mold@v1 | |
| - name: wasm target install | |
| run: rustup target add wasm32-unknown-unknown | |
| - name: Install cargo-lints | |
| run: cargo install cargo-lints | |
| - name: Clippy check (with lints) | |
| run: cargo lints clippy --all-targets --all-features | |
| - name: target dir size | |
| if: always() | |
| run: du -sh target/ 2>/dev/null || true | |
| machete: | |
| # Checks for unused dependencies. | |
| name: machete | |
| runs-on: [ ubuntu-latest ] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v6 | |
| - name: toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: ${{ env.stable_toolchain }} | |
| components: clippy, rustfmt | |
| - uses: ./.github/actions/rust-cache | |
| - name: ubuntu dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo bash scripts/install_ubuntu_dependencies.sh | |
| - name: cargo machete | |
| run: | | |
| cargo install cargo-machete | |
| cargo machete | |
| - name: target dir size | |
| if: always() | |
| run: du -sh target/ 2>/dev/null || true | |
| licenses: | |
| name: file licenses | |
| runs-on: [ ubuntu-latest ] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v6 | |
| - name: install ripgrep | |
| # https://github.com/BurntSushi/ripgrep/releases | |
| env: | |
| ripgrep_version: 14.1.0 | |
| run: | | |
| #wget https://github.com/BurntSushi/ripgrep/releases/download/14.1.0/ripgrep_14.1.0-1_amd64.deb.sha256 | |
| wget https://github.com/BurntSushi/ripgrep/releases/download/${{ env.ripgrep_version }}/ripgrep_${{ env.ripgrep_version }}-1_amd64.deb | |
| sudo dpkg -i ripgrep_${{ env.ripgrep_version }}-1_amd64.deb | |
| rg --version || exit 1 | |
| - name: run the license check | |
| run: ./scripts/file_license_check.sh | |
| test-shards: | |
| name: test (${{ matrix.partition }}) | |
| runs-on: [ ubuntu-latest ] | |
| strategy: | |
| matrix: | |
| partition: ["1/3", "2/3", "3/3"] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v6 | |
| - name: toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: ${{ env.stable_toolchain }} | |
| - uses: ./.github/actions/rust-cache | |
| with: | |
| save-if: ${{ matrix.partition == '1/3' }} | |
| - name: ubuntu dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo bash scripts/install_ubuntu_dependencies.sh | |
| - uses: rui314/setup-mold@v1 | |
| - name: wasm target install | |
| run: rustup target add wasm32-unknown-unknown | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@v2 | |
| with: | |
| tool: cargo-nextest | |
| - name: cargo test | |
| run: cargo nextest run --all-features --cargo-profile ci-build --profile ci --partition hash:${{ matrix.partition }} | |
| - name: target dir size | |
| if: always() | |
| run: du -sh target/ 2>/dev/null || true | |
| - name: upload artifact | |
| uses: actions/upload-artifact@v7 # upload test results as artifact | |
| if: success() || failure() | |
| with: | |
| name: test-results-${{ strategy.job-index }} | |
| path: ${{ github.workspace }}/target/nextest/ci/junit.xml | |
| # Required status check aggregator — satisfies the branch protection rule named "test" | |
| # without requiring branch protection rule changes. | |
| test: | |
| name: test | |
| if: always() | |
| needs: [ test-shards ] | |
| runs-on: [ ubuntu-latest ] | |
| steps: | |
| - name: check shard results | |
| run: | | |
| if [[ "${{ needs.test-shards.result }}" != "success" ]]; then | |
| echo "One or more test shards failed or were cancelled" | |
| exit 1 | |
| fi | |
| # Required status check placeholder — satisfies the "check stable" branch protection | |
| # rule. The full workspace is already compiled by the test shards on stable. | |
| check-stable: | |
| name: check stable | |
| if: always() | |
| needs: [ test-shards ] | |
| runs-on: [ ubuntu-latest ] | |
| steps: | |
| - name: check shard results | |
| run: | | |
| if [[ "${{ needs.test-shards.result }}" != "success" ]]; then | |
| echo "Compilation check failed (test shards did not pass)" | |
| exit 1 | |
| fi | |
| integration-test: | |
| name: integration test | |
| runs-on: [ ubuntu-latest ] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@v6 | |
| - name: toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: ${{ env.stable_toolchain }} | |
| - uses: ./.github/actions/rust-cache | |
| - name: ubuntu dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo bash scripts/install_ubuntu_dependencies.sh | |
| - uses: rui314/setup-mold@v1 | |
| - name: wasm target install | |
| run: rustup target add wasm32-unknown-unknown | |
| - name: cargo test cucumber | |
| run: cargo test --profile ci-build --package integration_tests --test cucumber | |
| - name: target dir size | |
| if: always() | |
| run: du -sh target/ 2>/dev/null || true | |
| - name: upload test result artifact | |
| uses: actions/upload-artifact@v7 # upload test results as artifact | |
| if: success() || failure() | |
| with: | |
| name: cucumber-test-results | |
| path: ${{ github.workspace }}/integration_tests/cucumber-output-junit.xml | |
| - name: Upload cucumber log artifacts | |
| uses: actions/upload-artifact@v7 | |
| if: success() || failure() | |
| with: | |
| name: cucumber-log-artifacts | |
| path: ${{ github.workspace }}/integration_tests/tests/temp/cucumber_*/*.log | |
| # needed for test results | |
| event_file: | |
| runs-on: [ ubuntu-latest ] | |
| steps: | |
| - name: Upload | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: Event File | |
| path: ${{ github.event_path }} |