Skip to content

feat(loop): builder/verifier convergence controls (#680) #755

feat(loop): builder/verifier convergence controls (#680)

feat(loop): builder/verifier convergence controls (#680) #755

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: 22
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: docs/hackathon/requirements.txt
- name: Setup pnpm
run: |
corepack enable
corepack prepare pnpm@11.8.0 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install hackathon document dependencies
run: python3 -m pip install --requirement docs/hackathon/requirements.txt
- name: Verify hackathon submission document
run: python3 scripts/generate-hackathon-submission-docx.py --check
- name: Lint
run: pnpm run lint
- name: Typecheck
run: pnpm typecheck
- name: Test
run: pnpm test
- name: PR safety efficacy eval
run: pnpm eval:pr-safety -- --run-id ci-pr-safety-eval
- name: Build
run: pnpm build
- name: Verify Judge Lab cached evidence
run: pnpm judge-lab:evidence:check
- name: Package dry-run
run: pnpm --filter @submuxhq/codedecay pack --dry-run
- name: Child repository end-to-end acceptance
run: node scripts/child-repo-e2e.mjs --run-id ci
- name: Upload child repository end-to-end evidence
if: always()
# Node 24 actions require self-hosted runner 2.327.1 or newer.
uses: actions/upload-artifact@v7
with:
name: codedecay-child-repo-e2e
if-no-files-found: ignore
retention-days: 7
archive: true
path: |
.codedecay/local/child-repo-e2e/ci/run.json
.codedecay/local/child-repo-e2e/ci/summary.md
.codedecay/local/child-repo-e2e/ci/logs
.codedecay/local/child-repo-e2e/ci/end-user-demo
.codedecay/local/child-repo-e2e/ci/child-repo/.codedecay/local
judge-lab:
runs-on: ubuntu-latest
defaults:
run:
working-directory: judge-lab
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
cache-dependency-path: judge-lab/package-lock.json
- name: Setup pnpm
run: |
corepack enable
corepack prepare pnpm@11.8.0 --activate
- name: Install monorepo dependencies
working-directory: .
run: pnpm install --frozen-lockfile --ignore-scripts
- name: Build Judge Lab workspace dependency
working-directory: .
run: pnpm --filter @submuxhq/codedecay-core build
- name: Install Judge Lab dependencies
run: npm ci --ignore-scripts
- name: Audit dependencies
run: npm audit --audit-level=high
- name: Lint
run: npm run lint
- name: Typecheck
run: npm run typecheck
- name: Build and API-test
env:
CODEDECAY_SOURCE_COMMIT: ${{ github.sha }}
run: npm test
- name: Install browser
run: npx playwright install --with-deps chromium
- name: Browser acceptance
run: npm run test:e2e