ci(deploy): skip prod rebuild for docs/tooling-only merges #72

Merged
gertjan merged 1 commit from ci/skip-deploy-docs-only into main 2026-06-25 15:46:36 +00:00
Owner

The deploy job ran docker compose build --no-cache && up -d on every
merge to main, restarting all prod containers even when a merge touched
only docs or tooling — wasteful and causing needless downtime.

Add a guard step that diffs the merge commit against its parent
(fetch-depth: 2) and, when every changed path matches the docs/tooling
allowlist (*.md at any depth, scripts/, docs/), short-circuits the
SSH/rsync/build steps. The default is to deploy: only an all-allowlisted
diff skips, so any new or unknown path — src/**, pyproject.toml, uv.lock,
Dockerfile, docker-compose.yml, settings.yaml, workflows — still ships.
The check job (lint/typecheck/tests/audit) is unchanged and still runs
on every PR and push.

Closes #67

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

The deploy job ran `docker compose build --no-cache && up -d` on every merge to main, restarting all prod containers even when a merge touched only docs or tooling — wasteful and causing needless downtime. Add a guard step that diffs the merge commit against its parent (fetch-depth: 2) and, when every changed path matches the docs/tooling allowlist (*.md at any depth, scripts/**, docs/**), short-circuits the SSH/rsync/build steps. The default is to deploy: only an all-allowlisted diff skips, so any new or unknown path — src/**, pyproject.toml, uv.lock, Dockerfile, docker-compose.yml, settings.yaml, workflows — still ships. The `check` job (lint/typecheck/tests/audit) is unchanged and still runs on every PR and push. Closes #67 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ci(deploy): skip prod rebuild for docs/tooling-only merges
All checks were successful
Deploy / check (pull_request) Successful in 4m23s
Deploy / deploy (pull_request) Has been skipped
b2289fe9cc
The deploy job ran `docker compose build --no-cache && up -d` on every
merge to main, restarting all prod containers even when a merge touched
only docs or tooling — wasteful and causing needless downtime.

Add a guard step that diffs the merge commit against its parent
(fetch-depth: 2) and, when every changed path matches the docs/tooling
allowlist (*.md at any depth, scripts/**, docs/**), short-circuits the
SSH/rsync/build steps. The default is to deploy: only an all-allowlisted
diff skips, so any new or unknown path — src/**, pyproject.toml, uv.lock,
Dockerfile, docker-compose.yml, settings.yaml, workflows — still ships.
The `check` job (lint/typecheck/tests/audit) is unchanged and still runs
on every PR and push.

Closes #67

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
gertjan force-pushed ci/skip-deploy-docs-only from b2289fe9cc
All checks were successful
Deploy / check (pull_request) Successful in 4m23s
Deploy / deploy (pull_request) Has been skipped
to 90c2c33b7e
All checks were successful
Deploy / check (pull_request) Successful in 4m13s
Deploy / deploy (pull_request) Has been skipped
2026-06-25 13:08:42 +00:00
Compare
gertjan deleted branch ci/skip-deploy-docs-only 2026-06-25 15:46:36 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
gertjan/bodega!72
No description provided.