Skip to content

Commit

Permalink
Update status embed workflow
Browse files Browse the repository at this point in the history
Use updated status embed workflow with various fixes and updates. This improves consistency with other repos
  • Loading branch information
wookie184 committed Jun 19, 2024
1 parent 8608bc3 commit d85f627
Showing 1 changed file with 12 additions and 26 deletions.
38 changes: 12 additions & 26 deletions .github/workflows/status-embed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,12 @@ on:
types:
- completed

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
status_embed:
# We need to send a status embed whenever the workflow
# sequence we're running terminates. There are a number
# of situations in which that happens:
#
# 1. We reach the end of the Event Validation workflow, without
# it being skipped.
#
# 2. A `pull_request` triggered a Lint & Test workflow,
# as the sequence always terminates with one run.
#
# 3. If any workflow ends in failure or was cancelled.
if: >-
(github.event.workflow_run.name == 'Event Validation' && github.event.workflow_run.conclusion != 'skipped') ||
github.event.workflow_run.event == 'pull_request' ||
github.event.workflow_run.conclusion == 'failure' ||
github.event.workflow_run.conclusion == 'cancelled'
name: Send Status Embed to Discord
runs-on: ubuntu-latest

Expand All @@ -39,13 +27,13 @@ jobs:
curl -s -H "Authorization: token $GITHUB_TOKEN" ${{ github.event.workflow_run.artifacts_url }} > artifacts.json
DOWNLOAD_URL=$(cat artifacts.json | jq -r '.artifacts[] | select(.name == "pull-request-payload") | .archive_download_url')
[ -z "$DOWNLOAD_URL" ] && exit 1
wget --quiet --header="Authorization: token $GITHUB_TOKEN" -O pull_request_payload.zip $DOWNLOAD_URL || exit 2
curl -sSL -H "Authorization: token $GITHUB_TOKEN" -o pull_request_payload.zip $DOWNLOAD_URL || exit 2
unzip -p pull_request_payload.zip > pull_request_payload.json
[ -s pull_request_payload.json ] || exit 3
echo "::set-output name=pr_author_login::$(jq -r '.user.login // empty' pull_request_payload.json)"
echo "::set-output name=pr_number::$(jq -r '.number // empty' pull_request_payload.json)"
echo "::set-output name=pr_title::$(jq -r '.title // empty' pull_request_payload.json)"
echo "::set-output name=pr_source::$(jq -r '.head.label // empty' pull_request_payload.json)"
echo "pr_author_login=$(jq -r '.user.login // empty' pull_request_payload.json)" >> $GITHUB_OUTPUT
echo "pr_number=$(jq -r '.number // empty' pull_request_payload.json)" >> $GITHUB_OUTPUT
echo "pr_title=$(jq -r '.title // empty' pull_request_payload.json)" >> $GITHUB_OUTPUT
echo "pr_source=$(jq -r '.head.label // empty' pull_request_payload.json)" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand All @@ -54,20 +42,18 @@ jobs:
# more information and we can fine tune when we actually want
# to send an embed.
- name: GitHub Actions Status Embed for Discord
uses: SebastiaanZ/github-status-embed-for-discord@v0.2.1
uses: SebastiaanZ/github-status-embed-for-discord@v0.3.0
with:
# Our GitHub Actions webhook
webhook_id: '784184528997842985'
webhook_token: ${{ secrets.GHA_WEBHOOK_TOKEN }}

# Workflow information
# We need to provide the information of the workflow that
# triggered this workflow instead of this workflow.
workflow_name: ${{ github.event.workflow_run.name }}
run_id: ${{ github.event.workflow_run.id }}
run_number: ${{ github.event.workflow_run.run_number }}
status: ${{ github.event.workflow_run.conclusion }}
actor: ${{ github.actor }}
repository: ${{ github.repository }}
ref: ${{ github.ref }}
sha: ${{ github.event.workflow_run.head_sha }}

pr_author_login: ${{ steps.pr_info.outputs.pr_author_login }}
Expand Down

0 comments on commit d85f627

Please sign in to comment.