ci: gate pull requests into main on server and client checks #1
Reference in New Issue
Block a user
No description provided.
Delete Branch "ci/add-pr-checks"
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?
The repo's first PR, and the last piece of its Phase 0 bootstrap (
website/MODULE_SYSTEM.md§2.7). The initial commit was pushed straight tomainbecause an empty repo cannot take a pull request; everything after it goes through one, starting here.What it does
Mirrors
website'spr-checks.yml. This module is two npm packages shaped like that repo'sserver/andclient/, and it is loaded into that repo's process, so it is checked the same way: Node 20,npm ci(notinstall— it also proves the lockfile is in sync), tests, and the client build, with the same concurrency-cancel and the samePR Checks / *status pattern.The package guard
There is no module code here yet — Phase 1 settles the API contract and Phase 3 is what extracts the UO half of
website/into this repo — so each half's gates are conditional on itspackage.jsonexisting. Before the code lands the jobs report green with a notice saying exactly why; the moment apackage.jsonappears they arm themselves with no edit to this file.That is the same guard the installer repo ran through its own planning phase, and it beats both alternatives: leaving the repo ungated for however long Phases 1–2 take, or landing a workflow that red-Xes every governance and docs PR until there is code to check.
Landing it now also gets the status contexts to report once, which is what makes them selectable when the
mainbranch-protection rule is configured. Running is not enforcing — that rule is a separate, one-time step in the Gitea UI, and the header comment records it.Not here yet, deliberately
Three workflows have nothing to act on until Phase 3, so each lands with the code it checks:
module-uo-<version>.tar.gzand itssha256manifest;Testing
Not runnable locally — a Gitea Actions workflow only proves itself by running. The guard logic is a plain
[ -f … ]test, and bothrun:blocks are free of${{ }}tokens, which is the thing that has silently skipped steps in this org's workflows before.🤖 Generated with Claude Code
https://claude.ai/code/session_018ocYxQWk3EhZe5gWRJXFU8