feat: S1 — contracts, configuration, and Compose foundation - #280
Draft
acburdine wants to merge 2 commits into
Draft
feat: S1 — contracts, configuration, and Compose foundation#280acburdine wants to merge 2 commits into
acburdine wants to merge 2 commits into
Conversation
ref https://linear.app/ghost/issue/PLA-413/phase-1-initial-scripts-library-testing-infrastructure - add intitial scripts library + entrypoints - split env into compose-level and ghost-level configuration - switch to next ghost variant by default - add node tests for e2e testing in ci - add docs for ghost-cli replacement, configuration, and bundle format
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
Both surfaced by CI on Linux (the helpers were only run on macOS before).
- fs.sh: `stat -f '%Lp'` is BSD/macOS format syntax. On Linux `-f` is
`--file-system`, which prints filesystem status for the file and *succeeds*,
so the `|| stat -c` GNU fallback never ran and the filesystem blob became the
chmod mode ("chmod: invalid mode"). Try GNU `-c` first (macOS rejects it
cleanly and falls through to `-f`), fixing fs_stat_mode and _gd_stat_owner.
This aborted every test that writes a config file through fs_atomic_write.
- scripts/config.sh, scripts/caddy.sh: `(($#)) && shift || true` trips SC2015
on shellcheck 0.9 (Ubuntu's version); use `if (($#)); then shift; fi`.
- scripts/lib/caddy.sh: drop a useless `cat` (SC2002), redirect instead.
Verified with shellcheck 0.9.0 (CI's version) via koalaman/shellcheck:v0.9.0,
and the stat fix reproduced against ubuntu:24.04.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Implements S1 from
docs/ghost-cli-replacement.md(§2.1–2.4): the configuration/Compose foundation the rest of the stack builds on..envvsghost.env), safe dotenv serialization that never sources a file, atomic private writes.local/productionmodes viaCOMPOSE_PROFILES; per-siteanalytics/activitypub.docs/bundle-v1.md); exporter (S3) and legacy-install migration (S6) left to their steps.The
.ghost-docker.jsonreader/writer was deliberately deferred to S2 (#281), its first writer.Base of the stack. Verified by the helper/mode-matrix suites and shellcheck.
🤖 Generated with Claude Code