summaryrefslogtreecommitdiff
path: root/.github/workflows/discord.yml
blob: 0e2d29a3420e63ca55b9b859823bd52718fbd704 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
name: Discord notifications

on: [push, pull_request_target]

jobs:
  notify_discord:
    runs-on: ubuntu-20.04
    if: always() && github.repository == 'SerenityOS/serenity' && (github.event_name == 'pull_request_target' || (github.event_name == 'push' && github.ref == 'refs/heads/master'))

    steps:
      - name: Wait for tests to finish
        uses: IdanHo/action-wait-for-check@7b2192dd83108237d2f2e6518f6351be333a955c
        id: wait-for-tests
        if: ${{ (github.event['pull_request'] && github.event['action'] == 'opened' && !github.event.pull_request.draft) || github.event['commits'] }}
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          excludedCheckName: "notify_discord"
          ref: ${{ github.event.pull_request.head.sha || github.sha }}
          timeoutSeconds: 21600
          intervalSeconds: 100

      - name: Discord action notification
        env:
          DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
          CUSTOM_GITHUB_EVENT_NAME: ${{ github.event_name == 'pull_request_target' && 'pull_request' || github.event_name }} # fake the event type as discord doesn't know how to parse the special pull_request_target context
        uses: IdanHo/action-discord@754598254f288e6d8e9fca637832e3c163515ba8
        if: ${{ (github.event['pull_request'] && github.event['action'] == 'opened' && !github.event.pull_request.draft) || github.event['commits'] }}

      - name: Discord build status
        env:
          DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
          DISCORD_USERNAME: GitHub # we have to set these manually for non-default messages
          DISCORD_AVATAR: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
        uses: IdanHo/action-discord@754598254f288e6d8e9fca637832e3c163515ba8
        if: ${{ (github.event['pull_request'] && github.event['action'] == 'opened' && !github.event.pull_request.draft) || github.event['commits'] }}
        with:
          args: "The build ${{ steps.wait-for-tests.outputs.conclusion == 'success' && 'passed :white_check_mark:' || 'failed :x:' }}"