Repository navigation
ci: preview builds for the team to install and test - #80
Merged
Merged
Conversation
The "Staging build" workflow builds a branch with `--features staging` for macOS and Linux, as `source-coop-staging`, and replaces the binaries on one rolling "staging" pre-release, never marked latest. A one-line install script installs or updates it beside the production CLI. CONTRIBUTING.md says how to run it and install it. The Docs workflow now skips releases whose tag isn't a version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Docs preview: https://source-cooperative.github.io/source-coop-cli/pr-preview/pr-80/ Built from 1177526. It goes live a minute or two after the Docs deploy run, and is removed when the PR closes. |
|
Claude finished @alukach's task in 25s —— View job ✅ No blocking issues — safe to merge. I read Nothing here needs fixing before merge. Non-blocking points:
Simplify (ponytail)
💰 Estimated review cost: $0.15 · 0m25s · 4 turns |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the review of #80: - A resolve job pins the ref to one commit; every build and the release use it, even if the branch moves during the run. - The installer comes from the workflow's own commit, not the built one. - Only the publish job can write; builds get read access. - Publishes queue one at a time; a PR's builds have their own group. - The release is replaced without hiding errors, and created on the commit with --target instead of force-pushing a tag. - Builds use the stable toolchain, as CI does. - install.sh downloads to a file before extracting, and renames the new binary into place instead of writing over a running one. - CONTRIBUTING.md warns not to load source-coop-staging's completions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
"Staging build" becomes "Preview build", with two more inputs: `name` (default "staging"), the pre-release's tag and the command it installs, source-coop-NAME; and `features`, a choice of the Cargo features to build with (staging or production, default staging). Previews with different names publish independently and install side by side. The name is checked before anything is built, and can't look like a version. preview/install.sh is the same script for every preview: publishing sets its name in that preview's copy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Team members can now install a build of any branch without building it. Run the workflow with the branch, an optional name, and the features to build with, then install with one line:
How it behaves
gh workflow run):ref: the branch, tag or commit. A first job pins it to one commit, so every build and the release are of that commit even if the branch moves during the run.name(defaultstaging): the preview's pre-release tag and the command it installs,source-coop-NAME. Up to 40 lowercase letters, digits and hyphens, not starting with a digit or withvand a digit, so it can never be taken for a version. It's checked before anything is built.features: a dropdown of the Cargo features,staging(the default: staging's sign-in, proxy and API) orproduction(the release's defaults).cargo build --release --locked --features FEATURESforaarch64-apple-darwin,x86_64-apple-darwin,x86_64-unknown-linux-gnuandaarch64-unknown-linux-gnu, on the stable toolchain as CI uses.preview/install.shis one script for every preview: publishing sets its name in that preview's copy. It downloads the platform's build to a file and renames it into~/.local/bin(orSOURCE_COOP_PREVIEW_DIR) assource-coop-NAME, so previews with different names sit side by side, and a running copy is never written over.CONTRIBUTING.mddocuments it for the team, including how to remove a preview (gh release delete NAME --cleanup-tag).AGENTS.mdpoints there.Not in this PR
--versionstill says the version inCargo.toml. The pre-release's title and notes name the commit instead.Testing
source-coop-search-uias the workflow does, and served from a local folder. The installer, with its name set the way publishing sets it, installed it assource-coop-search-ui, whose help uses that name. A missing build fails with curl's 404. shellcheck passes. The name rule acceptsstaging,search-ui,pr-80andvector-tiles, and refusesv1.2.3,v2-test,1xandBad_Name.🤖 Generated with Claude Code