tools: add a backport queue cron action #67
This file contains 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
on: | |
push: | |
branches: | |
- main | |
name: Notify on Push | |
permissions: | |
contents: read | |
jobs: | |
notifyOnForcePush: | |
name: Notify on Force Push on `main` | |
if: github.repository == 'nodejs/node' && github.event.forced | |
runs-on: ubuntu-latest | |
steps: | |
- name: Slack Notification | |
uses: rtCamp/action-slack-notify@c33737706dea87cd7784c687dadc9adf1be59990 # 2.3.2 | |
env: | |
SLACK_COLOR: '#DE512A' | |
SLACK_ICON: https://github.com/nodejs.png?size=48 | |
SLACK_TITLE: ${{ github.actor }} force-pushed to ${{ github.ref }} | |
SLACK_MESSAGE: | | |
<!here> A commit was force-pushed to <https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}|${{ github.repository }}@${{ github.ref_name }}> by <https://github.com/${{ github.actor }}|${{ github.actor }}> | |
Before: <https://github.com/${{ github.repository }}/commit/${{ github.event.before }}|${{ github.event.before }}> | |
After: <https://github.com/${{ github.repository }}/commit/${{ github.event.after }}|${{ github.event.after }}> | |
SLACK_USERNAME: nodejs-bot | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | |
notifyOnMissingMetadata: | |
name: Notify on Push on `main` that lacks metadata | |
if: github.repository == 'nodejs/node' | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: write | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
persist-credentials: false | |
- name: Check commit message | |
run: npx -q core-validate-commit ${{ github.event.after }} || echo "INVALID_COMMIT_MESSAGE=1" >> $GITHUB_ENV | |
- name: Retrieve PR number if possible | |
if: env.INVALID_COMMIT_MESSAGE | |
run: | | |
COMMIT_TITLE=$(git --no-pager log --oneline -1 --no-color) node <<'EOF' >> $GITHUB_ENV || true | |
const invalidCommitMessageMatch = /\s\(\#(\d+)\)$/.exec(process.env.COMMIT_TITLE); | |
if (invalidCommitMessageMatch == null) process.exit(1) | |
console.log(`PR_ID=${invalidCommitMessageMatch[1]}`) | |
EOF | |
- name: Comment on the Pull Request | |
if: ${{ env.PR_ID }} | |
run: | | |
gh pr comment ${{ env.PR_ID }} --repo "${{ github.repository }}" \ | |
--body "A commit referencing this Pull Request was pushed to `${{ github.ref_name }}` by @${{ github.actor }} with an invalid commit message." | |
env: | |
GH_TOKEN: ${{ github.token }} | |
- name: Slack Notification | |
if: ${{ env.INVALID_COMMIT_MESSAGE }} | |
uses: rtCamp/action-slack-notify@c33737706dea87cd7784c687dadc9adf1be59990 # 2.3.2 | |
env: | |
SLACK_COLOR: '#DE512A' | |
SLACK_ICON: https://github.com/nodejs.png?size=48 | |
SLACK_TITLE: Invalid commit was pushed to ${{ github.ref }} | |
SLACK_MESSAGE: | | |
<!here> A commit with an invalid message was pushed to <https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}|${{ github.repository }}@${{ github.ref_name }}> by <https://github.com/${{ github.actor }}|${{ github.actor }}>. | |
Before: <https://github.com/${{ github.repository }}/commit/${{ github.event.before }}|${{ github.event.before }}> | |
After: <https://github.com/${{ github.repository }}/commit/${{ github.event.after }}|${{ github.event.after }}> | |
SLACK_USERNAME: nodejs-bot | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} |