Skip to content

Let Publish Images be started by hand - #198

Merged
ssavutu merged 1 commit into
mainfrom
chore/publish-workflow-dispatch
Aug 6, 2026
Merged

Let Publish Images be started by hand#198
ssavutu merged 1 commit into
mainfrom
chore/publish-workflow-dispatch

Conversation

@ssavutu

@ssavutu ssavutu commented Aug 6, 2026

Copy link
Copy Markdown
Member

Why

The automatic chain is CI → Publish Images → Deploy Delta, linked by workflow_run. During today's Actions incident GitHub throttled webhook delivery, so no workflow_run event fired: CI never chained to Publish, no image was ever built, and Deploy Delta — which does accept a workflow_dispatch — had nothing to deploy. main has been sitting undeployed since 16:16 UTC with no way to force it through.

workflow_dispatch is served by the REST API rather than the webhook pipeline, so it stays available when that path is throttled. Scalene's production deploy is already reachable this way and shipped fine this afternoon, while this repo could not.

What

Adds a workflow_dispatch trigger to publish.yml with an optional sha input, defaulting to the tip of main.

Publishing is still restricted to main

Two guards, because an image published here is what Deploy Delta releases to production:

  • The dispatch is pinned to the main ref in the job's if.
  • An explicitly supplied sha — the only input not already constrained by that — is checked for ancestry on main via the compare API before anything is built. identical (it's the tip) and behind (an earlier commit on main) pass; anything else means the commit lives on another branch and the run fails.

Testing

YAML parses and the trigger/input/concurrency keys resolve as intended. The dispatch path itself gets exercised immediately after merge — deploying the backlog from #195 is the reason this is going in today.

🤖 Generated with Claude Code

The automatic chain is CI -> Publish Images -> Deploy Delta, linked by
workflow_run. When GitHub throttles webhook delivery during an Actions
incident, no workflow_run event fires: CI never chains to Publish, so no
image exists, so Deploy Delta -- which does take a workflow_dispatch --
has nothing to deploy. main sits undeployed with no way to force it, which
is what happened today.

workflow_dispatch is served by the REST API rather than the webhook
pipeline, so it survives that failure mode. Scalene's deploy is already
reachable this way and shipped fine this afternoon while this repo could
not.

Publishing stays restricted to main. The dispatch is pinned to the main
ref, and an explicitly supplied SHA -- the one input not already
constrained -- is checked for ancestry on main before anything is built,
so no dispatch can produce an image Deploy Delta would release from a
commit that never landed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ssavutu
ssavutu merged commit eea1847 into main Aug 6, 2026
@ssavutu
ssavutu deleted the chore/publish-workflow-dispatch branch August 7, 2026 04:34
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