mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
ci: Notify in zulip when a build fails in GitHub Actions.
We use the circleci integration which already has a nice setup for sending messages when triggered to send the build failure notification.
This commit is contained in:
6
.github/workflows/legacy-os.yml
vendored
6
.github/workflows/legacy-os.yml
vendored
@@ -16,3 +16,9 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
{ { ! sudo scripts/lib/upgrade-zulip-stage-2 2>&1 >&3; } | tee upgrade.err; } 3>&1 >&2
|
{ { ! sudo scripts/lib/upgrade-zulip-stage-2 2>&1 >&3; } | tee upgrade.err; } 3>&1 >&2
|
||||||
grep -Fq 'upgrade-zulip-stage-2: Unsupported platform: ubuntu 16.04' upgrade.err
|
grep -Fq 'upgrade-zulip-stage-2: Unsupported platform: ubuntu 16.04' upgrade.err
|
||||||
|
|
||||||
|
- name: Report status
|
||||||
|
if: failure()
|
||||||
|
env:
|
||||||
|
ZULIP_BOT_KEY: ${{ secrets.ZULIP_BOT_KEY }}
|
||||||
|
run: tools/ci/send-failure-message
|
||||||
|
|||||||
13
.github/workflows/production-suite.yml
vendored
13
.github/workflows/production-suite.yml
vendored
@@ -99,6 +99,12 @@ jobs:
|
|||||||
path: /tmp/production-build
|
path: /tmp/production-build
|
||||||
retention-days: 14
|
retention-days: 14
|
||||||
|
|
||||||
|
- name: Report status
|
||||||
|
if: failure()
|
||||||
|
env:
|
||||||
|
ZULIP_BOT_KEY: ${{ secrets.ZULIP_BOT_KEY }}
|
||||||
|
run: tools/ci/send-failure-message
|
||||||
|
|
||||||
production_install:
|
production_install:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -142,6 +148,7 @@ jobs:
|
|||||||
chmod +x /tmp/production-upgrade-pg
|
chmod +x /tmp/production-upgrade-pg
|
||||||
chmod +x /tmp/production-install
|
chmod +x /tmp/production-install
|
||||||
chmod +x /tmp/production-verify
|
chmod +x /tmp/production-verify
|
||||||
|
chmod +x /tmp/send-failure-message
|
||||||
|
|
||||||
- name: Create cache directories
|
- name: Create cache directories
|
||||||
run: |
|
run: |
|
||||||
@@ -181,3 +188,9 @@ jobs:
|
|||||||
- name: Verify install after upgrading postgresql
|
- name: Verify install after upgrading postgresql
|
||||||
if: ${{ matrix.is_bionic }}
|
if: ${{ matrix.is_bionic }}
|
||||||
run: sudo mispipe "/tmp/production-verify 2>&1" ts
|
run: sudo mispipe "/tmp/production-verify 2>&1" ts
|
||||||
|
|
||||||
|
- name: Report status
|
||||||
|
if: failure()
|
||||||
|
env:
|
||||||
|
ZULIP_BOT_KEY: ${{ secrets.ZULIP_BOT_KEY }}
|
||||||
|
run: /tmp/send-failure-message
|
||||||
|
|||||||
10
.github/workflows/zulip-ci.yml
vendored
10
.github/workflows/zulip-ci.yml
vendored
@@ -153,7 +153,9 @@ jobs:
|
|||||||
- name: Check development database build
|
- name: Check development database build
|
||||||
if: ${{ matrix.is_focal }}
|
if: ${{ matrix.is_focal }}
|
||||||
run: mispipe "tools/ci/setup-backend" ts
|
run: mispipe "tools/ci/setup-backend" ts
|
||||||
# TODO: We need to port the notify_failure step from CircleCI
|
|
||||||
# config, however, it might be the case that GitHub notifications
|
- name: Report status
|
||||||
# make this unnecessary. More details on settings to configure it:
|
if: failure()
|
||||||
# https://help.github.com/en/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#github-actions-notification-options
|
env:
|
||||||
|
ZULIP_BOT_KEY: ${{ secrets.ZULIP_BOT_KEY }}
|
||||||
|
run: tools/ci/send-failure-message
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ cp -a \
|
|||||||
tools/ci/production-verify \
|
tools/ci/production-verify \
|
||||||
tools/ci/production-upgrade-pg \
|
tools/ci/production-upgrade-pg \
|
||||||
tools/ci/production-extract-tarball \
|
tools/ci/production-extract-tarball \
|
||||||
|
tools/ci/send-failure-message \
|
||||||
package.json yarn.lock \
|
package.json yarn.lock \
|
||||||
\
|
\
|
||||||
/tmp/production-build
|
/tmp/production-build
|
||||||
|
|||||||
12
tools/ci/send-failure-message
Executable file
12
tools/ci/send-failure-message
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
if [[ "$ZULIP_BOT_KEY" != "" && "$GITHUB_REPOSITORY" == "zulip/zulip" ]]; then
|
||||||
|
BRANCH="$(python3 -c 'import sys; print(sys.argv[1].split("/")[-1])' "$GITHUB_REF")"
|
||||||
|
URI_ESCAPED_TOPIC="$(python3 -c 'import sys; import urllib.parse; print(urllib.parse.quote(sys.argv[1]))' "$BRANCH failing")"
|
||||||
|
curl -H "Content-Type: application/json" \
|
||||||
|
-X POST -i 'https://chat.zulip.org/api/v1/external/circleci?api_key='"$ZULIP_BOT_KEY"'&stream=automated%20testing&topic='"$URI_ESCAPED_TOPIC" \
|
||||||
|
-d '{"payload": { "branch": "'"$BRANCH"'", "reponame": "'"$GITHUB_REPOSITORY"'", "status": "failed", "build_url": "'"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"'", "username": "'"$GITHUB_ACTOR"'"}}'
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user