ci: consolidate frontend gates into one job
Build (Dev) / build (push) Successful in 11s
CI / quality (push) Successful in 11s
CI / quality (pull_request) Successful in 11s

The 3-job ci.yaml re-cloned actions/checkout from github.com per job, and
those clones intermittently fail with connection resets (build job died
there even though lint/typecheck/test passed). Collapse to a single job:
one checkout, then lint -> typecheck -> test -> build. Fewer github.com
clones, faster, less flaky.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Joshua King
2026-06-05 10:24:33 -04:00
parent 53ed73ff6c
commit 4ba11cc945
+4 -20
View File
@@ -1,8 +1,9 @@
name: CI
# Frontend quality gates (lint, typecheck, test, build-check).
# Actual build + deploy of the hub is handled by build-dev.yaml
# (pull-based release → Pi self-update).
# One job on purpose: the runner fetches each action from github.com,
# which is flaky (connection resets), so we check out once instead of
# re-cloning per job. The real hub build + deploy is build-dev.yaml.
on:
push:
@@ -11,29 +12,12 @@ on:
branches: [dev, main]
jobs:
lint-and-typecheck:
quality:
runs-on: go-react
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm run lint
- run: npx tsc --noEmit
test:
needs: lint-and-typecheck
runs-on: go-react
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm test
# Verify the frontend compiles. No artifact upload — Gitea Actions
# doesn't support upload-artifact@v4, and build-dev.yaml produces the
# real, deployed artifact anyway.
build:
needs: test
runs-on: go-react
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm run build