name: Release on: push: tags: - 'V*' permissions: contents: write jobs: release: name: Build & Release runs-on: macos-latest steps: - name: Checkout code uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4 - name: Set up Go uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v5 with: go-version: "1.24.6" - name: Build Binaries run: | make release ls -l bin/ - name: Create Release uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2 if: startsWith(github.ref, 'refs/tags/') with: files: | bin/analyze-darwin-amd64 bin/analyze-darwin-arm64 bin/status-darwin-amd64 bin/status-darwin-arm64 generate_release_notes: true draft: false prerelease: false update-formula: runs-on: ubuntu-latest needs: release steps: - name: Extract version from tag id: tag_version run: | TAG=${GITHUB_REF#refs/tags/} VERSION=${TAG#V} echo "tag=$TAG" >> $GITHUB_OUTPUT echo "version=$VERSION" >> $GITHUB_OUTPUT echo "Releasing version: $VERSION (tag: $TAG)" - name: Update Homebrew formula uses: mislav/bump-homebrew-formula-action@56a283fa15557e9abaa4bdb63b8212abc68e655c # v3.6 with: formula-name: mole formula-path: Formula/mole.rb homebrew-tap: tw93/homebrew-tap tag-name: ${{ steps.tag_version.outputs.tag }} commit-message: | mole ${{ steps.tag_version.outputs.version }} Automated release via GitHub Actions env: COMMITTER_TOKEN: ${{ secrets.PAT_TOKEN }} - name: Verify formula update if: success() run: | echo "✓ Homebrew formula updated successfully" echo " Version: ${{ steps.tag_version.outputs.version }}" echo " Tag: ${{ steps.tag_version.outputs.tag }}"