Skip to content

[FEATURE] Automate Homebrew formula updates in CI/CD release pipeline #108

@raphaelsamy-quantumlends

Description

Is your feature request related to a problem?

The Homebrew tap (datadog-labs/pack) is currently several versions behind the latest release. As of today, brew install datadog-labs/pack/pup installs v0.19.1, while the latest GitHub release is v0.22.0 (released today). This means users relying on Homebrew — arguably the most convenient installation method on macOS — are missing 3 releases worth of features and fixes.

The root cause appears to be that the homebrew-pack formula is updated manually, so it falls behind whenever a new release is cut.

Describe the solution you'd like

Integrate automatic Homebrew formula updates into the existing release CI/CD pipeline (.github/workflows/release.yml).

GoReleaser (already used in the release workflow) natively supports this via the brews section in .goreleaser.yaml. Adding something like this would automatically push an updated formula to the datadog-labs/homebrew-pack tap on every release:

brews:
  - repository:
      owner: datadog-labs
      name: homebrew-pack
    directory: Formula
    homepage: "https://github.com/datadog-labs/pup"
    description: "CLI companion for AI agents with 200+ commands across 33+ Datadog products"
    license: "Apache-2.0"
    install: |
      bin.install "pup"

This would require a HOMEBREW_TAP_GITHUB_TOKEN secret (or a PAT with repo scope) to push to the homebrew-pack repository from the release workflow.

Describe alternatives you've considered

  • GitHub Actions bot: A separate workflow in homebrew-pack that watches for new releases in datadog-labs/pup and updates the formula automatically (e.g., using repository_dispatch or a scheduled check).
  • Manual process with reminders: A release checklist that includes updating the Homebrew formula — but this is error-prone and clearly the current approach that led to the version lag.

Additional context

  • Current release workflow: .github/workflows/release.yml — uses GoReleaser with cosign signing and SBOM generation
  • Homebrew tap repo: datadog-labs/homebrew-pack
  • Current formula version: 0.19.1 (pinned in Formula/pup.rb)
  • Latest GitHub release: 0.22.0
  • GoReleaser already supports the brews configuration natively, so this should be a minimal addition to the existing .goreleaser.yaml

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedduplicateThis issue or pull request already exists

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions