Skip to content
Merged
Show file tree
Hide file tree
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
29 changes: 17 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ name: CI
# The clean-repo guard is the important one for a public repo: it fails
# the build if mature/explicit prose or locally-generated model guides
# ever leak into tracked source (see scripts/verify_clean_repo.py).
#
# GitHub Actions are pinned to commit SHAs (immutable). Version comments
# are documentation only; do not use moving tags such as @v4 or @latest.
on:
push:
branches: [main, dev]
Expand All @@ -14,11 +17,11 @@ on:
jobs:
guard:
name: Clean-repo guard + Python checks
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.10"
- name: Clean-repo boundary guard
Expand Down Expand Up @@ -76,13 +79,14 @@ jobs:

ui-check:
name: UI tests + lint + type-check + build
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: "20"
node-version: "24.18.0"
check-latest: false
cache: npm
cache-dependency-path: ui/package-lock.json
- name: Install UI deps
Expand All @@ -102,15 +106,16 @@ jobs:

ui-e2e:
name: UI E2E boot (Chromium + simulated API)
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 20
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: "20"
node-version: "24.18.0"
check-latest: false
cache: npm
cache-dependency-path: ui/package-lock.json
- name: Install UI deps
Expand All @@ -124,7 +129,7 @@ jobs:
run: npm run test:e2e
- name: Upload Playwright artifacts
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: ui-e2e-artifacts
path: |
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/pr-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ name: PR Review
# Heuristic review posted on every PR. No LLM and no Cursor usage-based
# billing — this is the in-repo stand-in for a Cursor Automation / Bugbot
# pass when those require a payment method.
#
# Actions are pinned to commit SHAs. Do not use moving tags such as @v4 or @latest.
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
Expand All @@ -16,13 +18,13 @@ permissions:
jobs:
review:
name: Analyze pull request
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with:
fetch-depth: 0

- uses: actions/setup-python@v5
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.10"

Expand Down