Skip to content

Deploy from CI — fly.toml was a file that did nothing - #2

Merged
Sbussiso merged 1 commit into
masterfrom
add-deploy-workflow
Sep 9, 2026
Merged

Deploy from CI — fly.toml was a file that did nothing#2
Sbussiso merged 1 commit into
masterfrom
add-deploy-workflow

Conversation

@Sbussiso

@Sbussiso Sbussiso commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Deploy automation was deferred so a human could watch the first-ever deploy of new infrastructure. That rationale expired once the service went live, and leaving it deferred turned out worse than what it avoided.

It failed silently on 2026-09-09. A scale-to-zero change merged with CI fully green and never reached Fly — the app kept running always-on, and it looked applied because the commit was on master. Only caught by checking machine state directly.

Config that silently doesn't apply is more dangerous than no config, because it reads as done.

This repo had no secrets at all, so a deploy job would have failed on its first run. FLY_API_TOKEN is now set, scoped to sentinel-sync only.

--ha=false because Fly provisions two machines by default — it did exactly that on this service's manual deploy and the extra had to be scaled away by hand.

No --strategy override: this app has no volume, so the default rolling strategy is fine. The sibling License service needs immediate because it mounts one.

🤖 Generated with Claude Code

Deploy automation was deferred so a human could watch the first-ever
deploy of new infrastructure, including this family's first Postgres
instance. That rationale expired once the service went live, and leaving
it deferred turned out worse than what it avoided: fly.toml only took
effect if someone remembered to run `fly deploy` by hand.

That failed silently on 2026-09-09. A scale-to-zero change merged with
CI fully green and never reached Fly — the app kept running always-on,
and the config looked applied because the commit was on master. It was
only caught by checking the machine state directly. Config that silently
doesn't apply is more dangerous than no config, because it reads as done.

Deploy runs on push to master only, after the tests pass.

--ha=false because Fly provisions TWO machines by default. It did
exactly that on this service's manual deploy and the extra machine had
to be scaled away by hand.

No --strategy override: this app has no volume, so the default rolling
strategy is fine. The sibling License service needs `immediate` because
it mounts one.

Needed a repo secret that did not exist — this repo had NO secrets at
all, so a deploy job would have failed on its first run. FLY_API_TOKEN
is now set, scoped to sentinel-sync only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Sbussiso
Sbussiso merged commit 9a00dc6 into master Sep 9, 2026
2 checks passed
@Sbussiso
Sbussiso deleted the add-deploy-workflow branch September 9, 2026 21:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant