feat: add flow-binary input for testing unreleased builds - #2
Merged
Conversation
Lets a caller run its executables with a flow binary it just built, instead of one installed from a release or from main. Without this, a repository whose CI runs flow tasks is always testing a flow that predates the code under review. That is a silent gap in general, and a hard block when a task depends on a flow feature that has not shipped: flow's own CI cannot exercise a new capability from a .execs target, because the action clones and builds main and discards the branch entirely. flow-binary takes precedence over flow-version, and skips the download cache since there is nothing to restore. A missing path fails loudly rather than falling back to a download, so a typo cannot silently reintroduce the gap it exists to close. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R328pa3FUUfga4gYah1iQi
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.
Blocks flowexec/flow#446, which needs this to run its CI tasks with the flow binary under review.
Summary
Adds a
flow-binaryinput so a caller can run its executables with a flow binary it just built, instead of one installed from a release or built frommain.Why
Without it, a repository whose CI runs flow tasks is always testing a flow that predates the code under review. That is a silent gap in general, and a hard block when a task depends on a flow feature that has not shipped yet.
It surfaced concretely in flowexec/flow#439, which adds Python execution. A
.execstarget running a.pyscript failed CI on every platform:flow-version: mainclones flow from GitHub and buildsmain, so the branch adding.pysupport was discarded and the released flow parsed the Python file as shell. No change to that PR could have made the job pass — the capability has to be onmainbefore CI can use it, which is circular.Notable Changes
flow-binarytakes precedence overflow-version.$HOME/bin/flow.exe) alongside the Unix one, matching the existingmain-build branch.Testing
The action has no CI workflows to add a case to. Verified:
action.yamlparses as valid YAML;bash -n scripts/install-flow.shis clean.latest/main/ pinned-version paths are untouched whenflow-binaryis empty.v1tag before that PR goes green.🤖 Generated with Claude Code
https://claude.ai/code/session_01R328pa3FUUfga4gYah1iQi