From 58d248d7a2b0dc10bafd56c3fd294c56aa33ea0a Mon Sep 17 00:00:00 2001 From: Dinakar Sarbada Date: Thu, 30 Apr 2026 15:13:58 -0700 Subject: [PATCH] ci: update Homebrew tap on release via central updater --- .github/workflows/release.yml | 51 +++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5e841c6..0670263 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,3 +29,54 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + update-homebrew-tap: + runs-on: ubuntu-latest + needs: goreleaser + steps: + - name: Dispatch tap formula update + env: + GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }} + run: | + if [ -z "$GH_TOKEN" ]; then + echo "::error::Set HOMEBREW_TAP_TOKEN with workflow access to steipete/homebrew-tap" + exit 1 + fi + + RELEASE_TAG="${{ github.ref_name }}" + request_id="blucli-${RELEASE_TAG}-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" + expected_title="Update blucli for ${RELEASE_TAG} (${request_id})" + + gh workflow run update-formula.yml \ + --repo steipete/homebrew-tap \ + --ref main \ + -f formula=blucli \ + -f tag="$RELEASE_TAG" \ + -f repository=steipete/blucli \ + -f macos_artifact="blucli-macos-arm64.tar.gz" \ + -f request_id="$request_id" + + run_id="" + for _ in {1..30}; do + run_id=$(gh run list \ + --repo steipete/homebrew-tap \ + --workflow update-formula.yml \ + --branch main \ + --event workflow_dispatch \ + --limit 20 \ + --json databaseId,displayTitle \ + --jq ".[] | select(.displayTitle == \"$expected_title\") | .databaseId" | head -n1) + if [ -n "$run_id" ]; then + break + fi + sleep 5 + done + + if [ -z "$run_id" ]; then + echo "::error::Could not find tap workflow run with title: $expected_title" + exit 1 + fi + + gh run watch "$run_id" \ + --repo steipete/homebrew-tap \ + --exit-status \ + --interval 10