feat(loop): builder/verifier convergence controls (#680) #755
Workflow file for this run
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: 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 |