Skip to content

Commit

Permalink
ci: Add watchdog (#807)
Browse files Browse the repository at this point in the history
A daemon that reacts to PR comments and fires the presubmit CI.

Signed-off-by: Oliver Koenig <[email protected]>
  • Loading branch information
ko3n1g committed May 15, 2024
1 parent 5be557e commit fe7e193
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions .github/workflows/_watchdog.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: watchdog

on:
issue_comment:
types: [created]

jobs:
woof:
runs-on: ubuntu-22.04
if: >
github.event_name == 'issue_comment' &&
github.event.issue.pull_request &&
startsWith(github.event.comment.body, '/ci') &&
contains('ko3n1g,nouiz,joker-eph,yhtang,terrykong,hemildesai,chaserileyroberts,CliveUnger,DwarKapex,mingxu1067,kocchop,SahilJain314,ashors1,maanug-nv,hmonishN,gspschmid', format('{0},', github.actor))
steps:
- name: Get PR number
shell: bash
id: get-pr-num
run: |
PR_URL="${{ github.event.issue.pull_request.url }}"
PR_NUM=${PR_URL##*/}
echo "pr_number=$PR_NUM" >> $GITHUB_OUTPUT
- name: Get Pull Request Information
uses: actions/github-script@v6
id: get-pr-branch
with:
result-encoding: string
script: |
const pr = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: ${{ steps.get-pr-num.outputs.pr_number }}
});
console.log('Pull Request Information:', pr.data);
return pr.data.head.ref;
- name: Trigger `CI` workflow on subset of tests
uses: aurelien-baudet/[email protected]
id: trigger
with:
workflow: "CI"
token: ${{ secrets.GITHUB_TOKEN }}
wait-for-completion: false
ref: ${{ steps.get-pr-branch.outputs.result }}

- name: Update `GITHUB_STEP_SUMMARY`
shell: bash
run: echo "Click [here](${{ steps.trigger.outputs.workflow-url }}) to navigate to the workflow run." >> $GITHUB_STEP_SUMMARY

- name: Update PR issue comment
shell: bash
run: |
message="${{ github.event.comment.body}}
---
Watchdog 🤖: presubmit CI was automatically triggered. Click [here](${{ steps.trigger.outputs.workflow-url }}) to navigate to the workflow run.
"
message="${message//$'\n'/<br>}"
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/${{ github.repository }}/issues/comments/${{ github.event.comment.id }} \
-d '{"body":"'"$message"'"}'

0 comments on commit fe7e193

Please sign in to comment.