fix: github release installer tag comparison #160
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| branches: ["**"] | |
| pull_request: | |
| branches: ["**"] | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v4 | |
| with: | |
| go-version: '1.23' | |
| - name: Test | |
| run: go test -v ./... | |
| generate: | |
| name: Build for ${{ matrix.platform }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| - platform: linux/amd64 | |
| label: linux-amd64 | |
| - platform: darwin/amd64 | |
| label: darwin-amd64 | |
| - platform: darwin/arm64 | |
| label: darwin-arm64 | |
| - platform: windows/amd64 | |
| label: windows-amd64 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Build for ${{ matrix.label }} | |
| uses: chenasraf/go-cross-build@v1 | |
| with: | |
| platforms: ${{ matrix.platform }} | |
| package: '' | |
| name: 'sofmani' | |
| compress: 'true' | |
| dest: dist | |
| - name: Upload build | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: "dist-${{ matrix.label }}" | |
| path: dist | |
| release-please: | |
| name: Release | |
| if: github.ref == 'refs/heads/master' | |
| runs-on: ubuntu-latest | |
| outputs: | |
| release_created: ${{ steps.release.outputs.release_created }} | |
| tag_name: ${{ steps.release.outputs.tag_name }} | |
| needs: | |
| - test | |
| - generate | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Download all builds | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: dist | |
| - name: Verify Release Artifacts | |
| run: | | |
| ls -la dist | |
| for i in "linux-amd64" "darwin-amd64" "windows-amd64" "darwin-arm64"; do | |
| if [[ ! -f ./dist/dist-$i/sofmani-$i.tar.gz ]]; then | |
| echo "File not found: ./dist/dist-$i/sofmani-$i.tar.gz" | |
| exit 1 | |
| fi | |
| done | |
| - name: Run Release Please | |
| uses: googleapis/release-please-action@v4 | |
| id: release | |
| with: | |
| release-type: simple | |
| - name: Upload Release Artifacts | |
| if: ${{ steps.release.outputs.release_created }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| for i in "linux-amd64" "darwin-amd64" "darwin-arm64" "windows-amd64"; do | |
| gh release upload "${{ steps.release.outputs.tag_name }}" "./dist/dist-$i/sofmani-$i.tar.gz" | |
| done | |
| release-homebrew: | |
| name: Homebrew Release | |
| needs: [release-please] | |
| if: ${{ needs.release-please.outputs.release_created }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Send dispatch to homebrew-tap | |
| env: | |
| GH_TOKEN: ${{ secrets.REPO_DISPATCH_PAT }} | |
| run: | | |
| repo="${{ github.event.repository.name }}" | |
| tag="${{ needs.release-please.outputs.tag_name }}" | |
| data="{\"event_type\":\"trigger-from-release\",\"client_payload\":{\"tag\":\"$tag\",\"repo\":\"$repo\"}}" | |
| echo "Dispatching tag $tag from $repo" | |
| echo "Data: $data" | |
| curl -X POST \ | |
| -H "Accept: application/vnd.github+json" \ | |
| -H "Authorization: Bearer $GH_TOKEN" \ | |
| https://api.github.com/repos/chenasraf/homebrew-tap/dispatches \ | |
| -d "$data" | |
| echo "Dispatched tag $tag from $repo" | |
| echo "Created job on https://github.com/chenasraf/homebrew-tap/actions" |