Staging Nightly #19
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: Staging Nightly | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| # Early UTC morning, after normal PR activity has usually settled. | |
| - cron: "17 7 * * *" | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: staging-nightly-${{ github.ref }} | |
| cancel-in-progress: false | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| docker-smoke: | |
| name: Docker Gateway Smoke | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Run Docker smoke stack | |
| run: bash scripts/manual-docker-test.sh | |
| env: | |
| CALCIFORGE_STAGING_ARTIFACT_DIR: staging-artifacts/docker-smoke | |
| - name: Upload Docker smoke artifacts | |
| if: always() | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 | |
| with: | |
| name: docker-smoke-artifacts | |
| path: staging-artifacts/docker-smoke | |
| if-no-files-found: ignore | |
| real-matrix-e2e: | |
| name: Real Matrix E2E | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install Rust toolchain | |
| run: | | |
| rustup toolchain install stable --profile minimal | |
| rustup default stable | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-staging-matrix-${{ hashFiles('**/Cargo.lock') }} | |
| - name: Build Calciforge with Matrix channel | |
| run: cargo build -p calciforge --features channel-matrix | |
| - name: Run real Matrix homeserver E2E | |
| run: python3 scripts/matrix-real-e2e.py | |
| synthetic-gateway-e2e: | |
| name: Synthetic Gateway E2E | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install Rust toolchain | |
| run: | | |
| rustup toolchain install stable --profile minimal | |
| rustup default stable | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-staging-synthetic-${{ hashFiles('**/Cargo.lock') }} | |
| - name: Build Calciforge | |
| run: cargo build -p calciforge | |
| - name: Run synthetic model gateway E2E | |
| run: python3 scripts/model-gateway-synthetic-e2e.py | |
| boundary-aggression-nightly: | |
| name: Boundary Aggression Nightly | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 90 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install Rust toolchain | |
| run: | | |
| rustup toolchain install stable --profile minimal | |
| rustup default stable | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-boundary-nightly-${{ hashFiles('**/Cargo.lock') }} | |
| - name: Run longer boundary aggression sweep | |
| run: bash scripts/boundary-aggression.sh nightly | |
| boundary-fuzz-nightly: | |
| name: Boundary Fuzz Nightly | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 90 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install Rust toolchain | |
| run: | | |
| rustup toolchain install stable --profile minimal | |
| rustup default stable | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| ~/.cargo/bin | |
| target | |
| fuzz/target | |
| key: ${{ runner.os }}-cargo-boundary-fuzz-${{ hashFiles('**/Cargo.lock', 'fuzz/Cargo.toml') }} | |
| - name: Run nightly byte-level boundary fuzzers | |
| run: bash scripts/boundary-fuzz.sh nightly | |
| boundary-long-exploration: | |
| name: Boundary Long Exploration | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 75 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install Rust toolchain | |
| run: | | |
| rustup toolchain install stable --profile minimal | |
| rustup default stable | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| ~/.cargo/bin | |
| target | |
| fuzz/target | |
| key: ${{ runner.os }}-cargo-boundary-long-${{ hashFiles('**/Cargo.lock', 'fuzz/Cargo.toml') }} | |
| - name: Run one-hour mixed boundary exploration | |
| run: bash scripts/boundary-explore-long.sh one-hour all | |
| - name: Upload boundary exploration artifacts | |
| if: always() | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 | |
| with: | |
| name: boundary-long-exploration-artifacts | |
| path: boundary-artifacts | |
| if-no-files-found: ignore |