--- # This action is a candidate to centrally manage in https://github.com//.github/ # If more Homebrew applications are developed, consider moving this action to the organization's .github repository, # using the `homebrew-pkg` repository label to identify repositories that should trigger this workflow. # Update Homebrew on release events. name: Update Homebrew release on: release: types: [released] concurrency: group: "${{ github.workflow }}-${{ github.event.release.tag_name }}" cancel-in-progress: true jobs: update-homebrew-release: if: >- github.repository_owner == 'LizardByte' runs-on: ubuntu-latest steps: - name: Check if Homebrew repo env: TOPIC: homebrew-pkg id: check-label uses: actions/github-script@v7 with: script: | const topic = process.env.TOPIC; console.log(`Checking if repo has topic: ${topic}`); const repoTopics = await github.rest.repos.getAllTopics({ owner: context.repo.owner, repo: context.repo.repo }); console.log(`Repo topics: ${repoTopics.data.names}`); const hasTopic = repoTopics.data.names.includes(topic); console.log(`Has topic: ${hasTopic}`); core.setOutput('hasTopic', hasTopic); - name: Download release asset id: download if: >- steps.check-label.outputs.hasTopic == 'true' uses: robinraju/release-downloader@v1.11 with: repository: "${{ github.repository }}" tag: "${{ github.event.release.tag_name }}" fileName: "*.rb" tarBall: false zipBall: false out-file-path: "release_downloads" extract: false - name: Publish Homebrew Formula if: >- steps.check-label.outputs.hasTopic == 'true' && fromJson(steps.download.outputs.downloaded_files)[0] uses: LizardByte/homebrew-release-action@v2024.919.145818 with: formula_file: ${{ fromJson(steps.download.outputs.downloaded_files)[0] }} git_email: ${{ secrets.GH_BOT_EMAIL }} git_username: ${{ secrets.GH_BOT_NAME }} publish: true token: ${{ secrets.GH_BOT_TOKEN }} validate: false