ci: deploy docs as part of a dispatched release - #452
Merged
Conversation
The published JSON schemas have been stale since 2026-05-02, so editors have been validating flowfiles against a schema that predates the container feature (#407, merged 2026-07-22) despite two releases shipping since. release-docs.yaml only listens on push:tags. Releases stopped arriving that way: v2.1.0 and v2.1.1 were both cut by dispatching release.yaml, which creates and pushes the tag itself using GITHUB_TOKEN. GitHub does not start workflows from events that token creates, so the tag push was invisible and the docs never deployed. The last successful run was a manual dispatch. release-docs.yaml becomes callable and release.yaml calls it after the binary publishes, so the site is updated by the same run that cuts the release. The call is limited to dispatched releases; a tag pushed by a human still triggers release-docs.yaml directly, and calling it in both paths would deploy twice. The environment now reads from `inputs`, which is populated for both a call and a dispatch, rather than from github.event.inputs, which is only set for a dispatch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R328pa3FUUfga4gYah1iQi
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Summary
The published JSON schemas at
flowexec.iohave been stale since 2026-05-02. Editors validate flowfiles against that URL, so anyone authoring acontainer:block today gets an "unknown property" warning — for a feature that merged 2026-07-22 (#407), with two releases shipping since.Root cause
release-docs.yamlonly listens onpush: tags. Releases stopped arriving that way:A dispatched release creates the tag inside the workflow:
GitHub does not start workflow runs from events created with
GITHUB_TOKEN— an anti-recursion rule. So the tag push is invisible torelease-docs.yaml, and it simply never ran. Its last successful run was a manual dispatch on 2026-05-02, which is exactly where the published schema froze.Nothing failed. There was no run at all, which is why this went unnoticed.
Fix
release-docs.yamlgainsworkflow_call, andrelease.yamlcalls it after the binary publishes — so the site is updated by the same run that cuts the release.if: github.event_name == 'workflow_dispatch'). A tag pushed by a human still triggersrelease-docs.yamldirectly, and calling it in both paths would deploy twice, concurrently.environmentnow reads frominputs, which is populated for both a call and a dispatch, rather thangithub.event.inputs, which is only set for a dispatch. A tag push has neither, so the'production'default still applies.I chose this over pushing the tag with a PAT: that would make tag pushes trigger everything downstream, but costs a long-lived secret with write scope, and widens what any future workflow change can set off.
Publishing the current schema
This fixes it going forward. It does not publish the schema that is already stale — that needs one manual
workflow_dispatchof the Docs workflow (or the next release, which will now carry it). Worth doing sooner: #439 adds aninterpreterfield that will otherwise land in the same invisible state.🤖 Generated with Claude Code
https://claude.ai/code/session_01R328pa3FUUfga4gYah1iQi