Give the DevOps stack its own build, so its PRs are actually checked - #21
Merged
Conversation
Closes the gap in #415: this repo had no `.github` directory at all, so a PR against it merged with zero checks. Its shapes were only ever validated because someone happened to run the superproject's build by hand from a working tree that had the submodule checked out. A malformed shape merged clean and surfaced one repo away from the change that caused it. Ported from SmartHome, which is the current reference — note that #415's table is out of date. It describes an opt-in `validate.yml` calling the superproject's reusable `_validate-shapes.yml`; SmartHome has since replaced that with a Fallout-driven `build.yml` that runs the same portable validator through this repo's own build, so `./build.sh` locally and CI run the identical target. It also proves the release bundle builds on every PR rather than at release time. `.config`, `.husky`, `CLAUDE.md` and `README.md` were already here and already identical to SmartHome's, so this is the missing half rather than a fresh start. RUNNING IT CAUGHT WHAT READING IT DID NOT. A case-sensitive grep for "SmartHome" missed four lowercase references, so the first bundle came out as `smarthome-0.1.0.tar.gz` from a repo called DevOps — wrong archive name, wrong release asset, wrong CI artifact. Fixed and re-run; the bundle is now `devops-0.1.0.tar.gz` with all six members and the right repo in its manifest. BundlePaths stays hand-maintained, ported as-is rather than made clever, but it now carries a warning: a new asset directory that is not listed there is silently left out of the bundle instead of failing the build. It is the one part of this harness that rots, and `shell-assets` is currently the only entry that matters. ⚠ Unverified: whether this repo is inside the `SCHEMA_RO_PAT` org secret's visibility scope. Reading that needs admin:org, which I do not have — so the first CI run is the test. If `build` fails at the validator download, the fix is in the superproject's CLAUDE.md: grant the secret to this repo. Refs #415.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the gap in Homelab #415. This repo had no
.githubdirectory at all, so a PR against it merged with zero checks — its shapes were only ever validated because someone happened to run the superproject's build by hand from a working tree with the submodule checked out. A malformed shape would merge clean and surface one repo away from the change that caused it.That's not hypothetical: the Forgejo OIDC shape (#20) merged yesterday with
no checks reported.#415's table is out of date
It describes an opt-in
validate.ymlcalling the superproject's reusable_validate-shapes.yml. SmartHome has since replaced that with a Fallout-drivenbuild.ymlthat runs the same portable validator through the repo's own build — so./build.shlocally and CI run the identical target, and the release bundle is proven on every PR rather than at release time. This ports the newer pattern..config,.husky,CLAUDE.mdandREADME.mdwere already here and byte-identical to SmartHome's, so this is the missing half rather than a fresh start.Running it caught what reading it didn't
A case-sensitive grep for
SmartHomemissed four lowercase references, so the first bundle came out as:Wrong archive name, wrong release asset, wrong CI artifact name. Fixed and re-run:
One thing I left deliberately imperfect
BundlePaths()stays hand-maintained, ported as-is rather than made clever. It now carries a warning, because a new asset directory not listed there is silently left out of the bundle rather than failing the build. It's the one part of this harness that rots;shell-assetsis currently the only entry that matters.⚠ One thing I could not verify
Whether this repo is inside the
SCHEMA_RO_PATorg secret's visibility scope. Reading that needsadmin:org, which I don't have, and there's no repo-level secret here.So this PR's own CI run is the test. If
buildfails at the validator download step, the fix is the command in the superproject's CLAUDE.md — grant the secret to this repo. Flagging rather than discovering it silently.Note on ordering
Per #415's warning: this repo hosts
github-runner, which the superproject's CI depends on. Nothing here touches the runner or its shape — this only adds a build that runs onubuntu-latest, so a failure here cannot take the fleet's CI with it.