feat: add Homebrew, Nix, and CI workflows for release automation#45
feat: add Homebrew, Nix, and CI workflows for release automation#45Gutem wants to merge 1 commit into
Conversation
| @@ -0,0 +1,64 @@ | |||
| name: Test Release Build | |||
There was a problem hiding this comment.
Not a CI expert here but this would only check if the binaries run and emit the version number, right? I think it is safe to assume they will run if compilation was successful, isn't it? I mean, maybe we'll using computational resources for tests that'd never fail. What do you think?
There was a problem hiding this comment.
Did it to test the compiling on ARM and RISC-V archs.
But, as you said, we can take it off
| @@ -0,0 +1,59 @@ | |||
| name: Update Homebrew Formula | |||
There was a problem hiding this comment.
This is nice. I haven't thought of hosting the formula myself. But just curious, do you think it's too difficult to get the formula accepted at the offical Homebrew repo? If you have time/interest, could you try to do it?
There was a problem hiding this comment.
Already did some brew contribs in the past, but not entire hosted the repos per se.
Can assume it from now on
There was a problem hiding this comment.
Related to ARM and RISC-v building. Can skip
|
Thanks for your PR! I have a few questions/comments. :) |
Summary
Add Homebrew formula, Nix flake, and automated CI workflows for multi-platform releases.
Features
🍺 Homebrew Support
Formula/dz6.rb— Supports macOS (Intel/ARM) and Linux x64Installation (after merge):
❄️ NixOS Support
flake.nix— Build from source with Rust 2024 editionUsage:
🔄 CI Workflows
test-release.yml— Tests builds on every PR across macOS, Linux, Windowsupdate-homebrew.yml— Auto-updates formula SHA256 checksums on releasepublish-nix.yml— Auto-updates flake version on releaseTesting
All workflows tested and verified on fork (Gutem/dz6):
What the Repo Owner Needs to Do
After Merge
Create a release by tagging the version already in Cargo.toml:
This will automatically:
For Future Releases
Just tag and push:
git tag v0.8.0 && git push origin v0.8.0Everything else is automated.
Closes #18