diff options
author | Idan Horowitz <idan.horowitz@gmail.com> | 2021-04-12 20:33:42 +0300 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-04-13 15:51:44 +0200 |
commit | a0111f6a3e3a410647c70c884ef6d9666454d048 (patch) | |
tree | 31b0ba38e90b9d845c0f96165ceb8da692fc4b99 /.github/workflows | |
parent | 45133d8ada88cf3548f05d175da71e988dcd3ae3 (diff) | |
download | serenity-a0111f6a3e3a410647c70c884ef6d9666454d048.zip |
Meta: Enable pull_request_target context for the notify_discord action
While we did allow the notify_discord job to run inside the context,
we didnt ask github to run in that context. This commit also uses the
"action-wait-for-check" sub-action to ensure the posted build results
are accurate for pull requests (since the build workflow is done in a
separate context for PRs)
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/cmake.yml | 28 | ||||
-rw-r--r-- | .github/workflows/discord.yml | 35 |
2 files changed, 35 insertions, 28 deletions
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index f72db50af0..c65ab0a2a6 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -253,31 +253,3 @@ jobs: ${{ toJSON(github.event) }} ] EOF - - notify_discord: - needs: [build_and_test_serenity, build_and_test_lagom] - 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: - # Sets environment variable env.WORKFLOW_CONCLUSION to one of [neutral, success, skipped, cancelled, timed_out, action_required, failure] - # depending on result of all needs jobs - - uses: technote-space/workflow-conclusion-action@v2 - - # === NOTIFICATIONS === - - - name: Discord action notification - env: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} - uses: Ilshidur/action-discord@0.3.0 - if: ${{ (github.event['pull_request'] && github.event['action'] == 'opened' && !(github.event['pull_request'] == 'draft')) || github.event['commits'] }} - - - name: Discord build result - 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: Ilshidur/action-discord@0.3.0 - if: ${{ (github.event['pull_request'] && github.event['action'] == 'opened' && !(github.event['pull_request'] == 'draft')) || github.event['commits'] }} - with: - args: "The build ${{ env.WORKFLOW_CONCLUSION == 'success' && 'passed :white_check_mark:' || 'failed :x:' }}" diff --git a/.github/workflows/discord.yml b/.github/workflows/discord.yml new file mode 100644 index 0000000000..08317ab6af --- /dev/null +++ b/.github/workflows/discord.yml @@ -0,0 +1,35 @@ +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@890bf0671eeeac09faf19f57deb4397eeccc59aa + id: wait-for-tests + with: + token: ${{ secrets.GITHUB_TOKEN }} + excludedCheckName: "notify_discord" + ref: ${{ github.event.pull_request.head.sha || github.sha }} + timeoutSeconds: 1200 + + - 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 doesnt 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:' }}" |