Meta: Use SerenityBot for IRC notifications

This avoids "useless" join/part notifications.
This commit is contained in:
Ben Wiederhake 2020-11-14 15:05:29 +01:00 committed by Andreas Kling
parent 80d1e12116
commit ef9ac8a8a2
Notes: sideshowbarker 2024-07-19 02:28:21 +09:00
2 changed files with 17 additions and 24 deletions

View File

@ -77,7 +77,6 @@ jobs:
run: DISABLE_DBG_OUTPUT=1 ./test-js
# === NOTIFICATIONS ===
# https://github.com/rectalogic/notify-irc
- name: Dump event info
if: always()
@ -87,25 +86,11 @@ jobs:
${{ toJSON(github.event) }}
EOF
- name: Generate IRC message
if: always()
id: ircmsg
# I really dislike putting so much logic here, but I can't come up with something better.
if: github.repository == 'SerenityOS/serenity' && !cancelled() && (github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref == 'refs/heads/master'))
run: |
${{ github.workspace }}/Meta/mangle_event_for_irc.py <<"EOF"
${{ github.workspace }}/Meta/notify_irc.py <<"EOF"
["${{ github.actor }}", ${{ github.run_id }}, "${{ job.status }}",
${{ toJSON(github.event) }}
]
EOF
- name: IRC result notification (direct push)
uses: rectalogic/notify-irc@v1
if: github.repository == 'SerenityOS/serenity' && github.ref == 'refs/heads/master' && github.event_name == 'push' && !cancelled() && steps.ircmsg.outputs.has_output == 'True'
with:
channel: "#serenityos"
nickname: serenity-ga
message: ${{ steps.ircmsg.outputs.the_line }}
- name: IRC result notification (PR)
uses: rectalogic/notify-irc@v1
if: github.repository == 'SerenityOS/serenity' && github.event_name == 'pull_request' && !cancelled() && steps.ircmsg.outputs.has_output
with:
channel: "#serenityos"
nickname: serenity-ga
message: ${{ steps.ircmsg.outputs.the_line }}

View File

@ -11,6 +11,8 @@ TEMPLATE_PUSH = '''\
TEMPLATE_PR = '''\
{title} ({actor} {action}: {status}) {link} https://github.com/SerenityOS/serenity/actions/runs/{run_id}\
'''
SERENITY_BOT = 'http://94.130.182.143:8080'
def compute_lines(wrapper):
actor, run_id, raw_status, event = wrapper
@ -77,15 +79,21 @@ def compute_lines(wrapper):
return False
def send_notification(line):
print('> ' + line)
try:
response = requests.post(SERENITY_BOT, data={'msg': line})
except BaseException as e:
print('Notification failed: {}: {}'.format(type(e), e))
else:
print('Notification result: HTTP {}'.format(response.status_code))
def run_on(json_string):
wrapper = json.loads(json_string)
line = compute_lines(wrapper)
has_output = bool(line)
print('::set-output name=has_output::{}'.format(has_output))
print('> ::set-output name=has_output::{}'.format(has_output))
if has_output:
print('::set-output name=the_line::{}'.format(line))
print('> ::set-output name=the_line::{}'.format(line))
if line:
send_notification(line)
def run():