Skip to content

[codex] Document AI-assisted engineering guardrails #952

[codex] Document AI-assisted engineering guardrails

[codex] Document AI-assisted engineering guardrails #952

name: Calciforge Integration Tests
on:
push:
branches: [main, master, 'feat/**', 'fix/**']
pull_request:
branches: [main, master]
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
test:
name: Integration Tests
runs-on: ubuntu-latest
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-${{ hashFiles('**/Cargo.lock') }}
- name: Build project
run: cargo build --workspace --all-targets
- name: Run unit tests
run: cargo test --workspace --exclude loom-tests --lib --bins
- name: Run integration tests
run: cargo test --workspace --exclude loom-tests --tests -- --skip test_gateway_
env:
# Skip tests that require running services in CI
SKIP_LIVE_TESTS: 1
- name: Run artifact recipe mock E2E
run: python3 scripts/artifact-recipe-mock-e2e.py
env:
CALCIFORGE_BIN: target/debug/calciforge
docker-gateway-smoke:
name: Docker Gateway Smoke
runs-on: ubuntu-latest
needs: test
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
lint:
name: Lint and Format
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Install Rust toolchain
run: |
rustup toolchain install stable --profile minimal --component rustfmt --component clippy
rustup default stable
- name: Check formatting
run: cargo fmt -- --check
- name: Run clippy
run: cargo clippy --workspace --all-targets -- -D warnings
matrix-real-e2e:
name: Real Matrix E2E
runs-on: ubuntu-latest
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-matrix-real-${{ 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
model-gateway-synthetic-e2e:
name: Model Gateway Synthetic E2E
runs-on: ubuntu-latest
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-synthetic-gateway-${{ 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