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@v4 with: fetch-depth: 0 ref: ${{ github.event.inputs.tag || github.ref }} - name: Set up Go uses: actions/setup-go@v5 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '23' - name: Install dependencies and build UI run: | cd ui npm ci npm run build - name: Run GoReleaser uses: goreleaser/goreleaser-action@v6 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@v2 with: token: ${{ secrets.TAP_REPO_PAT }} repository: mostlygeek/homebrew-llama-swap event-type: new-release client-payload: | { "release": { "tag_name": "${{ steps.tag.outputs.tag }}" } }