Skip to content

[ci] Release workflow: build pre-compiled binaries for Linux, macOS, and Windows #331

@Gbangbolaoluwagbemiga

Description

@Gbangbolaoluwagbemiga

Context

There is no binary distribution. Users who are not Rust developers cannot install Sanctifier without cargo install, which takes 3-5 minutes and requires a full Rust toolchain.

What to build

.github/workflows/release.yml:

on:
  push:
    tags: ['v*']
jobs:
  build:
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            target: x86_64-unknown-linux-gnu
            artifact: sanctifier-linux-amd64
          - os: macos-latest
            target: x86_64-apple-darwin
            artifact: sanctifier-macos-amd64
          - os: macos-latest
            target: aarch64-apple-darwin
            artifact: sanctifier-macos-arm64
          - os: windows-latest
            target: x86_64-pc-windows-msvc
            artifact: sanctifier-windows-amd64.exe
    steps:
      - uses: actions/checkout@v4
      - run: cargo build --release --target ${{ matrix.target }}
      - uses: actions/upload-release-asset@v1
        with: ...

Acceptance criteria

  • 4 pre-compiled binaries attached to every GitHub Release
  • GitHub Release notes auto-generated from CHANGELOG.md
  • README.md installation section includes:
    • cargo install sanctifier-cli
    • Direct binary download links for each platform

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions