From 683bc64c126924670ee7d53a26777724669e01fe Mon Sep 17 00:00:00 2001 From: "Marcel S. Henselin" Date: Wed, 25 Mar 2026 12:14:54 +0100 Subject: [PATCH] chore: add notification action [skip ci] --- .github/actions/acc_test/action.yaml | 11 -------- .github/actions/notify/action.yaml | 41 ++++++++++++++++++---------- .github/workflows/notify_pr.yaml | 21 ++++++++------ .github/workflows/tf-acc-test.yaml | 6 ++-- 4 files changed, 43 insertions(+), 36 deletions(-) diff --git a/.github/actions/acc_test/action.yaml b/.github/actions/acc_test/action.yaml index 857f3e35..23bcd84e 100644 --- a/.github/actions/acc_test/action.yaml +++ b/.github/actions/acc_test/action.yaml @@ -65,20 +65,9 @@ inputs: description: "testfile to run" default: '' - -#outputs: -# random-number: -# description: "Random number" -# value: ${{ steps.random-number-generator.outputs.random-number }} - runs: using: "composite" steps: -# - name: Random Number Generator -# id: random-number-generator -# run: echo "random-number=$(echo $RANDOM)" >> $GITHUB_OUTPUT -# shell: bash - - name: Install needed tools shell: bash run: | diff --git a/.github/actions/notify/action.yaml b/.github/actions/notify/action.yaml index ece86e61..c4da2bef 100644 --- a/.github/actions/notify/action.yaml +++ b/.github/actions/notify/action.yaml @@ -1,8 +1,11 @@ -name: Send pull request notification to Google Chat -description: | - Sends a notification to a Google Chat room when a pull request is opened. +name: Send notification via Google Chat +description: "Sends a notification to a Google Chat room when a pull request is opened." inputs: + webhook_url: + description: "The URL of the Google Chat webhook." + required: true + title: description: "The title of the notification." required: true @@ -32,28 +35,35 @@ inputs: required: true default: 'none' - runs: using: "composite" steps: - name: Install prerequisites shell: bash - run: apt update && apt install -y curl jq + run: | + echo "::group::apt install" + set -e + apt update + apt install -y curl jq + echo "::endgroup::" - - name: Send PR notification to Google Chat + - name: Notify via Google Chat Webhook shell: bash + env: + WEBHOOK: ${{ inputs.webhook_url }} run: | set -e PAYLOAD=$(jq -n \ - --arg repo "${{ github.repository }}" \ - --arg title "${{ inputs.event_title }}" \ - --arg body "${{ inputs.event_body }}" \ - --arg author "${{ inputs.event_author }}" \ - --arg url "${{ inputs.event_url }}" \ + --arg header_title "${{ inputs.title }}" \ + --arg repo "${{ github.repository || '' }}" \ + --arg title "${{ inputs.event_title || 'no event title given' }}" \ + --arg body "${{ inputs.event_body || 'no event body given' }}" \ + --arg author "${{ inputs.event_author || 'no event author given' }}" \ + --arg url "${{ inputs.event_url || 'no event url given' }}" \ '{ "header": { - "title": "${{ inputs.title }}", + "title": "$header_title", "subtitle": "Repo: \($repo)", "imageUrl": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/git.png", "imageType": "SQUARE" @@ -101,6 +111,9 @@ runs: ] }') - curl --fail-with-body -X POST -H 'Content-Type: application/json' \ - "${{ secrets.GOOGLE_WEBHOOK_URL }}&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD&threadKey=${REPO}/pr/${PR_NUMBER}" \ + curl \ + --fail-with-body \ + -X POST \ + -H 'Content-Type: application/json' \ + "${{ inputs.webhook_url }}&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD&threadKey=${{ github.repository }}/pr/${{ inputs.event_number }}" \ -d "$(jq -n --argjson card "$PAYLOAD" '{ "cardsV2": [ { "cardId": "new-pr", "card": $card } ] }')" diff --git a/.github/workflows/notify_pr.yaml b/.github/workflows/notify_pr.yaml index 888523da..fd84a220 100644 --- a/.github/workflows/notify_pr.yaml +++ b/.github/workflows/notify_pr.yaml @@ -1,4 +1,4 @@ -name: Notify Google Chat on new PR +name: Notify on new PR on: pull_request: @@ -6,15 +6,20 @@ on: - opened jobs: - notify-pr-google-chat: + notify: + name: Notify via Google Chat runs-on: stackit-docker steps: + - name: Checkout + uses: actions/checkout@v6 + - name: Notify uses: ./.github/actions/notify with: - title: New Pull Request - event_title: ${{ github.event.pull_request.title }} - event_author: ${{ github.event.pull_request.user.login }} - event_body: ${{ github.event.pull_request.body || 'No description provided.' }} - event_number: ${{ github.event.pull_request.number }} - event_url: ${{ github.event.pull_request.html_url }} + webhook_url: ${{ secrets.GOOGLE_WEBHOOK_URL }} + title: "New Pull Request" + event_title: "${{ github.event.pull_request.title }}" + event_author: "${{ github.event.pull_request.user.login }}" + event_body: "${{ github.event.pull_request.body || 'No description provided.' }}" + event_number: "${{ github.event.pull_request.number }}" + event_url: "${{ github.event.pull_request.html_url }}" diff --git a/.github/workflows/tf-acc-test.yaml b/.github/workflows/tf-acc-test.yaml index b38997cb..5d90284d 100644 --- a/.github/workflows/tf-acc-test.yaml +++ b/.github/workflows/tf-acc-test.yaml @@ -27,6 +27,9 @@ jobs: name: Acceptance Tests runs-on: stackit-docker steps: + - name: Checkout + uses: actions/checkout@v6 + - name: Notify uses: ./.github/actions/notify with: @@ -37,9 +40,6 @@ jobs: event_number: ${{ github.event.id }} event_url: "${{ github.repositoryUrl }}" - - name: Checkout - uses: actions/checkout@v6 - - name: Run Test (workflow dispatch) if: ${{ github.event_name == 'workflow_dispatch' }} uses: ./.github/actions/acc_test