Skip to content

Add CI and release pipeline#12

Merged
bluestreak01 merged 6 commits intomasterfrom
vi_ci
Apr 6, 2026
Merged

Add CI and release pipeline#12
bluestreak01 merged 6 commits intomasterfrom
vi_ci

Conversation

@bluestreak01
Copy link
Copy Markdown
Member

@bluestreak01 bluestreak01 commented Apr 5, 2026

Summary

  • CI workflow (ci.yml): runs cargo fmt --check, cargo clippy -- -D warnings, and cargo test on both ubuntu-latest and macos-latest for all PRs and pushes to master
  • Release workflow (release.yml): triggered by v*.*.* tags or manual workflow_dispatch, builds static release binaries for 4 targets, packages .deb/.rpm, creates a GitHub Release with all artifacts + SHA256 checksums, and opens a PR against questdb/homebrew-tap with the updated formula
  • Homebrew formula template (dist/homebrew/middle-manager.rb.template): supports macOS arm64 and intel with platform-specific download URLs and checksums
  • Cargo.toml metadata for cargo-deb and cargo-generate-rpm packaging

Build targets

Target Runner Method
aarch64-apple-darwin macos-latest native cargo
x86_64-apple-darwin macos-latest cargo cross-compile
x86_64-unknown-linux-musl ubuntu-latest cross (Docker)
aarch64-unknown-linux-musl ubuntu-latest cross (Docker)

Setup required before first release

  1. Create questdb/homebrew-tap repo (public) with a Formula/ directory
  2. Create a GitHub PAT with repo scope on that repo
  3. Add it as secret HOMEBREW_TAP_TOKEN in this repo's settings

Test plan

  • CI jobs (fmt, clippy, test) pass on this PR
  • Trigger release manually via Actions > Release > Run workflow with tag v0.1.0
  • All 4 build matrix entries complete successfully
  • GitHub Release is created with tarballs, .deb, .rpm, and SHA256SUMS
  • Homebrew tap PR is opened with correct checksums (after tap repo + secret are set up)

🤖 Generated with Claude Code

bluestreak01 and others added 6 commits April 4, 2026 18:58
- CI workflow: fmt, clippy, and test on ubuntu + macOS for PRs and master pushes
- Release workflow: triggered by version tags or manual dispatch, builds
  static binaries for 4 targets (aarch64/x86_64 macOS, aarch64/x86_64 musl Linux),
  packages .deb and .rpm, creates GitHub Release, and opens a PR against
  questdb/homebrew-tap with updated formula checksums
- Homebrew formula template for macOS arm64/intel distribution
- Cargo.toml metadata for cargo-deb and cargo-generate-rpm

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Enables `brew install questdb/middle-manager/mm` without a separate
`brew tap` step. The binary is installed as `mm`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Detects arch (x86_64/aarch64), downloads the latest musl binary
from GitHub Releases, and installs to /usr/local/bin.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
cargo-deb replaces target/release with the actual target path
automatically when --target is used.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bluestreak01 bluestreak01 merged commit 65ceddd into master Apr 6, 2026
4 checks passed
@bluestreak01 bluestreak01 deleted the vi_ci branch April 6, 2026 02:37
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