name: goreleaser on: push: tags: - "*" # Allows manual triggering of the workflow workflow_dispatch: inputs: tag: description: "Tag version to release (e.g. v144)" required: true permissions: contents: write jobs: goreleaser: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 6.0.2 with: fetch-depth: 0 ref: ${{ github.event.inputs.tag || github.ref }} - name: Set up Go uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c #6.4.0 with: go-version-file: go.mod - name: Set up Node.js uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # 6.4.0 with: node-version: "24" - name: Build UI run: | make ui - name: Run GoReleaser uses: goreleaser/goreleaser-action@1a80836c5c9d9e5755a25cb59ec6f45a3b5f41a8 #7.2.1 with: # either 'goreleaser' (default) or 'goreleaser-pro' distribution: goreleaser # 'latest', 'nightly', or a semver version: "~> v2" args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} trigger-tap-update: runs-on: ubuntu-latest needs: goreleaser steps: - name: "Resolve tag to dispatch" id: tag run: | if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then echo "tag=${{ github.event.inputs.tag }}" >> "$GITHUB_OUTPUT" else echo "tag=${{ github.ref_name }}" >> "$GITHUB_OUTPUT" fi - name: "Trigger tap repository update" uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 #4.0.1 with: token: ${{ secrets.TAP_REPO_PAT }} repository: mostlygeek/homebrew-llama-swap event-type: new-release client-payload: | { "release": { "tag_name": "${{ steps.tag.outputs.tag }}" } }