Skip to content

ci: establish production-grade release and distribution pipeline - #298

Merged
szmyty merged 3 commits into
mainfrom
copilot/establish-production-release-pipeline
Jul 19, 2026
Merged

ci: establish production-grade release and distribution pipeline#298
szmyty merged 3 commits into
mainfrom
copilot/establish-production-release-pipeline

Conversation

Copilot AI commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

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

  • Split ci.yml — removed all release jobs; now triggers only on branch pushes/PRs; runs lint, build, test, PKGBUILD validation
  • New release.yml — dedicated pipeline triggered by v* tags, structured in four stages:
    [1] generate-changelog
          ├─ [2a] build-binaries (10 targets, parallel)
          │         └─ update-scoop-manifest
          │         └─ package-chocolatey
          ├─ [2b] package-deb-x86_64 / aarch64 (parallel)
          ├─ [2b] package-rpm-x86_64 / aarch64 (parallel)
          ├─ [2c] snap-package
          └─ [3]  update-homebrew-formula
                    └─ update-scoop-manifest
                         └─ update-aur-pkgbuild
                              └─ [4] verify-release
    

Atomic version bumps

  • bump-version.yml now updates all package manifests in the same commit as Cargo.toml: Homebrew formula URL, Scoop manifest, Chocolatey nuspec + install script, AUR PKGBUILD — using PLACEHOLDER_SHA256 where real checksums are populated by the release pipeline

Verification gate

  • verify-release job (final stage) fetches the GitHub Release asset list and asserts every expected binary + .sha256 file is present — fails fast if any artifact is missing

Other fixes

  • Snap: release job now injects the actual tag version into snapcraft.yaml before building (replaces version: git)
  • Chocolatey install script: replaced hardcoded v0.1.0 URL with PLACEHOLDER_VERSION

Documentation

  • CONTRIBUTING.md: replaced manual cargo-release instructions with full pipeline documentation — stage descriptions, job-ordering diagram, distribution channel table, configuration file reference
  • README.md: added Release workflow badge

Copilot AI added 2 commits July 19, 2026 04:32
- 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
Copilot AI requested a review from szmyty July 19, 2026 04:33
@szmyty
szmyty marked this pull request as ready for review July 19, 2026 04:44
Copilot AI requested a review from szmyty July 19, 2026 04:49
@szmyty
szmyty merged commit 322b88c into main Jul 19, 2026
7 of 10 checks passed
@szmyty
szmyty deleted the copilot/establish-production-release-pipeline branch July 19, 2026 04:54
@devactivity-app

Copy link
Copy Markdown

Pull Request Summary by devActivity

Metrics

Cycle Time: 30m Pickup Time: 11m Review Time: 10m

Achievements

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.

🚀 Establish production-grade release and distribution pipeline

2 participants