Forgejo Actions PR pipeline (#13) #34
No reviewers
Labels
No labels
area:auth
area:ci
area:db
area:infra
area:native
area:pwa
area:service
epic
feature
foundation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
james/carol!34
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "13-ci-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #13.
Summary
Single workflow file at
.forgejo/workflows/pr.yml, triggered on PRs tomain. Five jobs run in parallel:Linteslint .Typechecktsc --noEmitBuildnext buildTest (sqlite):memory:Test (postgres)postgres:16serviceThe test job is a matrix on engine with
fail-fast: false, so a parity bug that turns one engine red still surfaces the other engine's result. The matrix env conditional setsTEST_POSTGRES_URLonly on the postgres leg; the sqlite leg gets an empty string, and the harness intests/db/_engines.tsskips its Postgres suite cleanly.Implementation notes
actions/setup-node@v4(cache: npm). Caches~/.npmrather thannode_modulesdirectly —npm cistill reinstalls, but from the cache, which dodges the well-known stale-node_modulesfailure modes.pg_isreadyhealth check so the test step doesn't start until the service is accepting connections. Avoids the flaky-first-test-fails pattern.Acceptance criteria
npm testexit code → job failure → PR check fails.Test (sqlite)andTest (postgres)are distinct job runs in the UI; the latter runs the Postgres half ofdescribePerEngine. Confirmed locally end-to-end (18/18 across engines).npm ci && npm run build && npm test— that's literally what each job runs.Runner prerequisite
This workflow requires a Forgejo Actions runner registered with
forge.wynning.tech. If no runner is configured the workflow will queue indefinitely without running.