Add internal release workflow for multi-platform builds #3
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: Congratsbot | |
| on: | |
| push: | |
| branches: [main] | |
| jobs: | |
| check-author: | |
| if: ${{ github.repository_owner == 'zed-industries' }} | |
| runs-on: namespace-profile-2x4-ubuntu-2404 | |
| outputs: | |
| should_congratulate: ${{ steps.check.outputs.should_congratulate }} | |
| steps: | |
| - name: Get PR info and check if author is external | |
| id: check | |
| uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7 | |
| with: | |
| github-token: ${{ secrets.CONGRATSBOT_GITHUB_TOKEN }} | |
| script: | | |
| const { data: prs } = await github.rest.repos.listPullRequestsAssociatedWithCommit({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| commit_sha: context.sha | |
| }); | |
| if (prs.length === 0) { | |
| core.setOutput('should_congratulate', 'false'); | |
| return; | |
| } | |
| const mergedPR = prs.find(pr => pr.merged_at !== null) || prs[0]; | |
| if (mergedPR.user.type === "Bot") { | |
| // They are a good bot, but not good enough to be congratulated | |
| core.setOutput('should_congratulate', 'false'); | |
| return; | |
| } | |
| const prAuthor = mergedPR.user.login; | |
| try { | |
| await github.rest.teams.getMembershipForUserInOrg({ | |
| org: 'zed-industries', | |
| team_slug: 'staff', | |
| username: prAuthor | |
| }); | |
| core.setOutput('should_congratulate', 'false'); | |
| } catch (error) { | |
| if (error.status === 404) { | |
| core.setOutput('should_congratulate', 'true'); | |
| } else { | |
| console.error(`Error checking team membership: ${error.message}`); | |
| core.setOutput('should_congratulate', 'false'); | |
| } | |
| } | |
| congrats: | |
| needs: check-author | |
| if: needs.check-author.outputs.should_congratulate == 'true' | |
| uses: withastro/automation/.github/workflows/congratsbot.yml@a5bd0c5748c4d56e687cdd558064f9ee8adfb1f2 # main | |
| with: | |
| EMOJIS: 🎉,🎊,🧑🚀,🥳,🙌,🚀,🦀,🔥,🚢 | |
| secrets: | |
| DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_CONGRATS }} |