Skip to content

feat: compare final state after relaying a block #298

feat: compare final state after relaying a block

feat: compare final state after relaying a block #298

Workflow file for this run

name: E2E Consensus
on:
pull_request:
branches:
- '*'
paths-ignore:
- '.github/workflows/deploy.yml'
- '.github/workflows/docs-release.yml'
- '.github/workflows/outdated.yml'
- '.github/workflows/comment-tag-report.yml'
- '.github/workflows/pr-agent.yml'
- '.github/workflows/build-binary.yml'
- '.github/CODEOWNERS'
- 'config/**'
- 'README.md'
- 'LICENSE'
- 'CONTRIBUTING.md'
- 'utils/slack-notifiers/**'
workflow_dispatch:
push: # Rebuild cache policy
branches:
- 'main'
paths:
- 'Cargo.lock'
- 'Cargo.toml'
jobs:
e2e_leader_election:
strategy:
fail-fast: false
matrix:
include:
- leader-restart: true
instances: 2
iterations: 4
- leader-restart: true
instances: 3
iterations: 4
- leader-restart: false
instances: 2
iterations: 12
- leader-restart: false
instances: 3
iterations: 12
name: E2E Leader Election with ${{ matrix.instances }} instance(s) and leader restart ${{ matrix.leader-restart }}
runs-on: ubuntu-latest
timeout-minutes: 45
concurrency:
group: ${{ github.workflow }}-${{ matrix.leader-restart }}-${{ matrix.instances }}-${{ matrix.iterations }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Rust
run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
- name: Rust Cache
uses: Swatinem/rust-cache@v2
id: cache-cargo
with:
prefix-key: ${{ runner.os }}-v3-cargo
shared-key: stable-release
key: ${{ hashFiles('Cargo.lock', 'Cargo.toml') }}
cache-provider: "github"
cache-directories: "~/.cargo/bin/"
- name: Install protoc
run: sudo apt-get install -y protobuf-compiler
- name: Install jq
run: sudo apt-get install jq -y
- name: Install grpcurl
run: |
GRPCURL_VERSION="1.9.1"
curl -sSL https://github.com/fullstorydev/grpcurl/releases/download/v${GRPCURL_VERSION}/grpcurl_${GRPCURL_VERSION}_linux_x86_64.tar.gz | sudo tar -C /usr/local/bin -xz grpcurl
- name: Set up Just
uses: extractions/setup-just@v2
- name: Set up dependencies
if: ${{ steps.cache-cargo.outputs.cache-hit != 'true' }}
run: |
cargo install killport || true
cargo install wait-service || true
- name: Run e2e tests
run: just run-chaos-experiment stratus ${{ matrix.instances }} ${{ matrix.iterations }} ${{ matrix.leader-restart }} leader-election
env:
CARGO_PROFILE_RELEASE_DEBUG: 0
RUST_LOG: off
RELEASE: 1