Production data-plane gate #25
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: Production data-plane gate | |
| on: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: production-data-plane-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| short-fault-gate: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 30 | |
| env: | |
| TIMELESS_EXT_PATH: ${{ github.workspace }}/target/release/libtimeless_ext.so | |
| TIMELESS_EXT_TEST_PATH: ${{ github.workspace }}/target/release/libtimeless_ext.so | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: | | |
| . -> target | |
| servers -> servers/target | |
| - name: Build the real extension and release servers | |
| env: | |
| TIMELESS_BUILD_COMMIT: ${{ github.sha }} | |
| run: | | |
| cargo build -p timeless-ext --release --locked | |
| cargo build --manifest-path servers/Cargo.toml --workspace --release --locked | |
| - name: Unit, contract, and lint gates | |
| run: | | |
| cargo test --workspace --locked | |
| cargo test --manifest-path servers/Cargo.toml --workspace --all-targets --locked | |
| cargo clippy --manifest-path servers/Cargo.toml --workspace --all-targets --locked -- -D warnings | |
| - name: Exact real-extension storage contracts | |
| run: | | |
| cargo test --manifest-path servers/Cargo.toml -p timeless-metrics-api --test storage_contract -- --ignored | |
| cargo test --manifest-path servers/Cargo.toml -p timeless-logs-api --test api_e2e -- --ignored | |
| - name: Two-minute mixed fault gate | |
| run: >- | |
| cargo run --release --manifest-path tools/query-harness/Cargo.toml --locked -- production | |
| --mode short | |
| --duration-seconds 120 | |
| --output production-gate-short.json | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: production-gate-short-${{ github.sha }} | |
| path: production-gate-short.json | |
| if-no-files-found: warn |