Skip to content

fix(epoch-oracle): activate validators whose epoch was skipped on sta… #8205

fix(epoch-oracle): activate validators whose epoch was skipped on sta…

fix(epoch-oracle): activate validators whose epoch was skipped on sta… #8205

Workflow file for this run

---
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 }}