ci: establish production-grade release and distribution pipeline - #298
Merged
Conversation
9 tasks
- Split monolithic ci.yml into ci.yml (CI only) and release.yml (release pipeline) - ci.yml now triggers only on branch pushes and PRs - release.yml triggers on v* tags with proper staged job ordering: generate-changelog → build-binaries + packages (parallel) → manifest updates (sequential) → verify-release - Add verify-release job that checks all expected release assets exist - Inject actual release version into Snap before building - Fix hardcoded v0.1.0 URL in chocolateyinstall.ps1 → use PLACEHOLDER_VERSION - Update bump-version.yml to atomically update all package manifests on version bump - Update CONTRIBUTING.md with full release pipeline documentation - Add Release workflow badge to README.md
Copilot
AI
changed the title
[WIP] Refactor release and distribution pipeline for production-grade experience
ci: establish production-grade release and distribution pipeline
Jul 19, 2026
szmyty
approved these changes
Jul 19, 2026
Pull Request Summary by devActivityMetricsAchievements
|
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.
The release infrastructure existed as isolated, disconnected pieces inside a monolithic CI file — no cohesive pipeline, no automated manifest updates, no end-to-end verification. A single version bump should produce a fully reproducible public release across all distribution channels without manual intervention.
Changes
Workflow restructure
ci.yml— removed all release jobs; now triggers only on branch pushes/PRs; runs lint, build, test, PKGBUILD validationrelease.yml— dedicated pipeline triggered byv*tags, structured in four stages:Atomic version bumps
bump-version.ymlnow updates all package manifests in the same commit asCargo.toml: Homebrew formula URL, Scoop manifest, Chocolatey nuspec + install script, AUR PKGBUILD — usingPLACEHOLDER_SHA256where real checksums are populated by the release pipelineVerification gate
verify-releasejob (final stage) fetches the GitHub Release asset list and asserts every expected binary +.sha256file is present — fails fast if any artifact is missingOther fixes
snapcraft.yamlbefore building (replacesversion: git)v0.1.0URL withPLACEHOLDER_VERSIONDocumentation
CONTRIBUTING.md: replaced manualcargo-releaseinstructions with full pipeline documentation — stage descriptions, job-ordering diagram, distribution channel table, configuration file referenceREADME.md: added Release workflow badge