Skip to content
This repository was archived by the owner on Apr 7, 2026. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 7 additions & 80 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,94 +1,21 @@
# Per-repo CI workflow — self-hosted clean-room runners for sovereignty (§2.1.1)
# Spec: docs/specifications/unified-ci-pipeline.md
#
# Calls the unified reusable gate workflow in paiml/.github.
# Branch protection requires "unified / gate" to pass before merge.

# Sovereign CI — calls reusable workflow from paiml/.github
# Change once in paiml/.github → applies to all repos
name: CI

on:
pull_request_target:
branches: [main, master]
push:
branches: [main, master]
workflow_dispatch: # manual trigger for testing
pull_request:
branches: [main, master]
workflow_dispatch:

# One CI run per branch/PR; cancel stale runs on same branch
concurrency:
group: ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
unified:
uses: paiml/.github/.github/workflows/unified-gate.yml@main
ci:
uses: paiml/.github/.github/workflows/sovereign-ci.yml@main
with:
repo: ${{ github.event.repository.name }}
pr_sha: ${{ github.event.pull_request.head.sha || github.sha }}
secrets: inherit

test:
runs-on: [self-hosted, clean-room]
steps:
- uses: actions/checkout@v4
with:
path: simular
- name: Checkout presentar
uses: actions/checkout@v4
with:
repository: paiml/presentar
path: presentar
- uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
simular/target
key: ${{ runner.os }}-cargo-${{ hashFiles('simular/**/Cargo.lock') }}
- run: cd simular && cargo test --lib

coverage:
runs-on: [self-hosted, clean-room]
steps:
- uses: actions/checkout@v4
with:
path: simular
- name: Checkout presentar
uses: actions/checkout@v4
with:
repository: paiml/presentar
path: presentar
- uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
simular/target
key: ${{ runner.os }}-cargo-cov-${{ hashFiles('simular/**/Cargo.lock') }}
- run: cargo install cargo-llvm-cov --locked || true
- run: cd simular && cargo llvm-cov test --lib --lcov --output-path lcov.info
- uses: codecov/codecov-action@v4
with:
files: simular/lcov.info
continue-on-error: true

security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo install cargo-audit --locked || true
- run: cargo audit

gate:
name: gate
runs-on: [self-hosted, clean-room]
if: always()
needs: [test, coverage, security]
steps:
- name: Check all jobs
run: |
if [ "${{ needs.test.result }}" = "failure" ] || [ "${{ needs.coverage.result }}" = "failure" ]; then
exit 1
fi
Loading