Skip to content

ci: automate releases (release-please + DMG + Homebrew cask)#2

Merged
mulhamna merged 6 commits into
mainfrom
ci/release-automation
Jul 8, 2026
Merged

ci: automate releases (release-please + DMG + Homebrew cask)#2
mulhamna merged 6 commits into
mainfrom
ci/release-automation

Conversation

@mulhamna

@mulhamna mulhamna commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Summary

Changes

  • fix(installer): create the mount point before hdiutil attach — the curl one-liner was dying at the mount step.
  • ci: add release-please-config.json + .release-please-manifest.json (baseline 2.1.0).
  • ci: release-please.yml — on merge, maintain a release PR; when a release is cut, build the Release config with the tag injected as MARKETING_VERSION, package PortBar-X.Y.Z.dmg, attach it to the release, and push version + sha256 to mulhamna/homebrew-tap.
  • docs: replace manual bump/DMG/cask instructions with the automated flow.
  • chore: empty Release-As: 3.0.0 commit so the first automated release is 3.0.0.

Prerequisite

  • Repo secret TAP_TOKEN (PAT with repo scope on mulhamna/homebrew-tap) — required for the cask push.

Test plan

  • Merge this PR → release-please opens a "release 3.0.0" PR.
  • Merge that PR → workflow builds and attaches PortBar-3.0.0.dmg to release v3.0.0.
  • Tap cask bumped to 3.0.0 + new sha256.
  • curl -fsSL .../scripts/install.sh | bash installs 3.0.0; brew upgrade --cask portbar works.

mulhamna added 6 commits July 8, 2026 20:40
hdiutil attach -mountpoint failed because the directory was never created,
so the curl one-liner died at the mount step. mkdir -p it first.
Adopt release-please (simple release type) to own versioning: it maintains
version.txt + CHANGELOG.md, tags as vX.Y.Z, and cuts GitHub releases from
conventional commits. Baseline set to 2.1.0.
When release-please cuts a release, build the Release config with the
release version injected, package a DMG, attach it to the GitHub release, and
push the new version + sha256 to the mulhamna/homebrew-tap cask.

Build runs in the same workflow (gated on releases_created) because a
GITHUB_TOKEN-created release does not trigger a separate on:release workflow.
Requires a TAP_TOKEN secret with repo scope on the tap.
Replace the manual bump/DMG/cask instructions with the automated
release-please flow (semver, injected MARKETING_VERSION, auto DMG + cask).
Release-As: 3.0.0
@mulhamna mulhamna merged commit 7524c9c into main Jul 8, 2026
1 check passed
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