Skip to content

ci: optimize and validate release workflow - #1774

Open
khanra17 wants to merge 2 commits into
jlcodes99:mainfrom
khanra17-org:ci/optimize-release-workflow
Open

khanra17 wants to merge 2 commits into
jlcodes99:mainfrom
khanra17-org:ci/optimize-release-workflow

Conversation

@khanra17

@khanra17 khanra17 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a non-publishing workflow_dispatch validation mode that packages and verifies every release target without mutating GitHub Releases
  • build and cache the production frontend and CGO-free sidecars once, in parallel, then share those verified inputs with native jobs
  • add isolated Rust and Tauri caches while preserving the production Cargo profile, signing, updater artifacts, manifests, checksums, and Homebrew publication
  • model native macOS builds as a matrix and produce Universal artifacts from the two already-built native executables instead of compiling both architectures again
  • add platform-specific validation artifacts, normalized checksums, complete updater-manifest validation, concise job names, and job summaries
  • cancel only superseded non-publishing manual validations; tag and explicit publishing runs remain non-cancellable

Workflow graph

Screenshot 2026-07-28 222313

The graph shows frontend and sidecar preparation running concurrently, native macOS architectures grouped as a matrix, Linux architectures grouped as a matrix, and Universal packaging consuming the completed native macOS outputs.

Runtime comparison

Baseline: latest successful upstream release, v1.3.14.

Optimized: successful full non-publishing package validation, 30379835778.

Stage Upstream Optimized Reduction
End-to-end workflow 48m 39s 15m 39s 67.8%
Windows x64 job 25m 13s 14m 10s 43.8%
macOS arm64 job 19m 31s 12m 26s 36.3%
macOS x64 job 18m 52s 6m 37s 64.9%
Ubuntu x64 job 18m 19s 11m 56s 34.8%
Ubuntu arm64 job 17m 22s 11m 33s 33.5%
macOS Universal job 27m 36s 1m 12s 95.7%

This is directional rather than a controlled benchmark: the upstream run is a real tag publication and the optimized run is non-publishing validation; runner load, dependency state, and cache warmth may differ. The optimized run still compiled, signed, packaged, staged, uploaded as validation artifacts, and verified Windows, both Linux architectures, both native macOS architectures, and macOS Universal. Upstream-only publication steps after packaging account for roughly one minute of its total runtime, so the main difference is the build critical path.

Production behavior

  • tag pushes retain publishing behavior and require a matching v* tag
  • workflow_dispatch defaults to publish=false; explicit publishing still requires a matching release tag
  • release signing remains enabled and updater signatures remain mandatory
  • Windows still produces MSI and NSIS artifacts
  • Linux still produces AppImage, DEB, and RPM artifacts for x64 and arm64
  • macOS still produces native updater archives plus the Universal DMG
  • the complete legacy latest.json, target manifests, SHA256SUMS.txt, and Homebrew cask flow remain in the publishing path

Verification

@khanra17
khanra17 force-pushed the ci/optimize-release-workflow branch 3 times, most recently from 4a3987e to bdf98a6 Compare August 3, 2026 11:14
@khanra17
khanra17 force-pushed the ci/optimize-release-workflow branch 3 times, most recently from d10e259 to 43292ca Compare August 16, 2026 08:08
@khanra17
khanra17 force-pushed the ci/optimize-release-workflow branch 2 times, most recently from f6ec0ba to 20efa30 Compare August 31, 2026 09:04
@khanra17
khanra17 force-pushed the ci/optimize-release-workflow branch 4 times, most recently from c18281e to e974491 Compare September 9, 2026 15:18
@khanra17
khanra17 force-pushed the ci/optimize-release-workflow branch 5 times, most recently from 2b9b90b to 0935ec6 Compare September 14, 2026 07:06
@khanra17
khanra17 force-pushed the ci/optimize-release-workflow branch from 0935ec6 to 94bd789 Compare September 14, 2026 10:47
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.

1 participant