name: CI
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
workflow_dispatch:
env:
WALRUS_QUIET: "1"
RUST_TEST_THREADS: "16"
jobs:
unit-tests:
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build --locked
- name: Run unit tests
run: |
export RUSTFLAGS=-Awarnings
cargo test --lib --bins --test unit
integration-tests:
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build --locked
- name: Run integration tests
run: |
export RUSTFLAGS=-Awarnings
cargo test --test integration
configuration-tests:
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build --locked
- name: Run configuration tests
run: |
export RUSTFLAGS=-Awarnings
cargo test --test configuration
e2e-sustained-mixed-workload:
runs-on: self-hosted
timeout-minutes: 300
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build --locked
- name: Run sustained mixed workload test
run: |
export RUSTFLAGS=-Awarnings
cargo test --test e2e_longrunning e2e_sustained_mixed_workload -- --nocapture
e2e-realistic-application-simulation:
runs-on: self-hosted
timeout-minutes: 300
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build --locked
- name: Run realistic application simulation test
run: |
export RUSTFLAGS=-Awarnings
cargo test --test e2e_longrunning e2e_realistic_application_simulation -- --nocapture
e2e-recovery-and-persistence-marathon:
runs-on: self-hosted
timeout-minutes: 300
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build --locked
- name: Run recovery and persistence marathon test
run: |
export RUSTFLAGS=-Awarnings
cargo test --test e2e_longrunning e2e_recovery_and_persistence_marathon -- --nocapture
e2e-massive-data-throughput:
runs-on: self-hosted
timeout-minutes: 300
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build --locked
- name: Run massive data throughput test
run: |
export RUSTFLAGS=-Awarnings
cargo test --test e2e_longrunning e2e_massive_data_throughput_test -- --nocapture
e2e-system-stress-and-stability:
runs-on: self-hosted
timeout-minutes: 300
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build --locked
- name: Run system stress and stability test
run: |
export RUSTFLAGS=-Awarnings
cargo test --test e2e_longrunning e2e_system_stress_and_stability -- --nocapture