Skip to content

chore(release): build cross-platform binaries and update Homebrew tap #12

Description

@wax911

Background

stackctl should be distributed as compiled binaries so users and GitHub Actions consumers do not need Deno installed. Homebrew distribution will be handled through AniTrend/homebrew-tap.

Goals

  • Add release workflow for cross-platform binaries.
  • Package release artifacts using a stable naming convention.
  • Generate checksums.
  • Publish GitHub Releases.
  • Trigger or document update flow for AniTrend/homebrew-tap.

Required release targets

  • x86_64-apple-darwin
  • aarch64-apple-darwin
  • x86_64-unknown-linux-gnu
  • aarch64-unknown-linux-gnu

Required asset naming

stackctl-v<version>-x86_64-apple-darwin.tar.gz
stackctl-v<version>-aarch64-apple-darwin.tar.gz
stackctl-v<version>-x86_64-unknown-linux-gnu.tar.gz
stackctl-v<version>-aarch64-unknown-linux-gnu.tar.gz
checksums.txt

Each tarball should contain:

stackctl
README.md
LICENSE

Workflow requirements

Create .github/workflows/release.yml triggered by tags:

on:
  push:
    tags:
      - "v*"

Steps:

  • Checkout.
  • Setup Deno.
  • Run format, lint, check, tests.
  • Compile all targets.
  • Package tarballs.
  • Generate SHA256 checksums.
  • Publish GitHub release.

Homebrew integration

This repository should not store the Homebrew formula. The formula belongs in AniTrend/homebrew-tap.

This repository should either:

  1. Document the manual formula update process, or
  2. Trigger/open a PR against AniTrend/homebrew-tap after a release.

Preferred final state: automated PR to AniTrend/homebrew-tap with updated formula URLs and SHA256 values.

Acceptance criteria

  • Tagging v0.1.0 produces all four platform tarballs.
  • checksums.txt contains SHA256 for every tarball.
  • Release artifacts use the agreed naming convention.
  • AniTrend/stackctl/setup can install from the release assets.
  • Documentation explains how Homebrew tap updates are handled.

Non-goals

  • Do not maintain Homebrew formula files in this repository.
  • Do not require Homebrew for direct binary installation.
  • Do not publish npm packages.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions