diff options
Diffstat (limited to 'PLAN.md')
| -rw-r--r-- | PLAN.md | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -747,3 +747,31 @@ numbers orange, booleans/null magenta, punctuation gray, confirmed against the raw captured ANSI codes, not just eyeballed - and the request tab (never JSON, never pretty-printed) rendered as plain unstyled text, unaffected. + +## CI and release automation + +`.github/workflows/ci.yml`: `make test` (build/vet/gofmt/test) on +every push/PR, Linux only - matches the README's own honest claim that +Linux is the only platform actually run and verified, rather than +pretending untested platforms are behaviorally covered by CI. A +separate `make release` job cross-compiles every platform in the +Makefile's matrix on the same Linux runner (`CGO_ENABLED=0` + pure-Go +SQLite means this needs no macOS/Windows runner at all) as a build-only +check - catches a platform-specific compile break without paying for +real hardware to do it. + +`.github/workflows/release.yml`: fires on a `v*` tag push, runs `make +release`, packages each platform's directory into a single archive +(`.tar.gz` Unix, `.zip` Windows - whatever each platform's own tools +already handle, no extra install required to unpack one) alongside a +`SHA256SUMS` file, and attaches them to a GitHub Release created from +the tag. Uses the `gh` CLI (preinstalled and pre-authenticated via the +runner's own `GITHUB_TOKEN` on every GitHub-hosted runner) rather than +a third-party Marketplace action for the actual release creation - +matches this project's own general preference for minimizing external +dependencies (see e.g. pure-Go SQLite over CGO). Verified locally: ran +the exact packaging shell logic (not the YAML itself, which needs a +real Actions run to execute) against a real `make release` output - +confirmed all 6 platform archives (2 macOS, 2 Linux, 1 Windows, 1 +FreeBSD) build with correct internal structure, `zip` selected only +for the Windows target, and `SHA256SUMS` covers all of them. |