From 62e56740a5a908cd608c6550f6692bfd6923aa06 Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Mon, 24 Aug 2026 21:49:41 +1200 Subject: [PATCH] Describe the CI this repo now actually has MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous text promised an opt-in `validate.yml` calling the superproject's reusable `_validate-shapes.yml`. That was untrue when written — #415 flagged it as reading like an assurance — and it is still untrue now, just differently: what landed is a Fallout-driven `build.yml` running this repo's own `./build.sh`, which is the pattern SmartHome moved to. Documents the three targets, the fact that local and CI run the identical one, and that SCHEMA_RO_PAT's org visibility already covers this repo — confirmed rather than assumed, by the first green run. Adds two things a reader will otherwise discover the hard way: the portable validator is linux-x64 only, so `./build.sh` fails on macOS at RestoreValidator with a message telling you to skip it; and `BundlePaths()` is hand-maintained, so an unlisted asset directory is silently left out of the bundle instead of failing the build. Refs #415. --- CLAUDE.md | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index d955945..ef18735 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -52,9 +52,29 @@ dotnet run --project Infrastructure/engine -- converge stacks/DevOps # dotnet run --project Infrastructure/engine -- converge stacks/DevOps --apply ``` -Shapes validate against the superproject's `Infrastructure/schema/shape.schema.json`. This repo -also runs an opt-in `validate.yml` calling the superproject's reusable `_validate-shapes.yml`; it -needs the `SCHEMA_RO_PAT` Actions secret in scope for this repo. +Shapes validate against the superproject's `Infrastructure/schema/shape.schema.json`. + +This repo also has its **own** build, so its PRs are checked here rather than only in the +superproject: + +```bash +./build.sh # validate shapes against the pinned portable validator +./build.sh Bundle # + produce dist/ (devops-.tar.gz + MANIFEST.md) +./build.sh Release # + cut the GitHub Release a deploy consumes by tag +``` + +`.github/workflows/build.yml` runs the same `./build.sh` target on every PR, so local and CI +cannot diverge. It needs the `SCHEMA_RO_PAT` Actions secret — it downloads the validator from +the private superproject's `schema-v1` release — and that secret's org visibility already +covers this repo (confirmed by the first green run). + +> The validator is **linux-x64 only**. On macOS `./build.sh` fails at `RestoreValidator` with a +> message saying so; use `--skip ValidateShapes` locally and let CI do the validating, or run +> the superproject's `./build.sh ValidateShapes`, which is the full-fidelity gate. + +⚠ `BundlePaths()` in `build/Build.cs` is **hand-maintained**. A new asset directory that is not +listed there is silently omitted from the bundle rather than failing the build — cross-check it +against the `assets:` keys in the shapes whenever a member is added. ## Gotchas specific to this stack