Report build starts and successes, not just failures, to their own chat

Only failures were reported, so a push could reach the mirror with no way to
know short of querying the database by hand. Release runs now report:

- start: channel, arch, host, and the commit being built
- published: the packages and versions that went out, duration, channel URL
- no-changes: the run found nothing to build
- promoted: what advance moved between channels, including the rc bootstrap
  and fast-ring replication
- failed: unchanged, plus the commit context the other reports carry

Release traffic goes to OMARCHY_RELEASE_CHATBOT_URL, falling back to
BASECAMP_CHATBOT_URL, so build reports stop drowning the repository chat the
sync workflows post to. bin/setup reports which destination is configured.

The published list is captured after the build step because promote moves the
files out of build-output, and is capped at 25 entries so a full rebuild does
not produce an unreadable wall of chat.
This commit is contained in:
Ryan Hughes committed 2026-08-27 01:10:33 -04:00
1 parent 71e72e581b
commit e3c3b3e50a
5 files changed
+208 -10

No files matched your search

+16
View File
@@ -274,6 +274,22 @@ else
echo " services source it before signing."
fi
# Release reporting is optional, but silence is indistinguishable from a
# broken hook, so say which chat (if any) will receive build reports.
if [[ -f "$CREDENTIALS" ]]; then
if grep -q 'OMARCHY_RELEASE_CHATBOT_URL' "$CREDENTIALS"; then
print_success "Release reports go to the dedicated release chat"
elif grep -q 'BASECAMP_CHATBOT_URL' "$CREDENTIALS"; then
print_warning "Release reports fall back to BASECAMP_CHATBOT_URL (the repository chat)"
echo " Export OMARCHY_RELEASE_CHATBOT_URL in $CREDENTIALS to send them"
echo " to their own chat instead."
else
print_warning "No chatbot URL in $CREDENTIALS — build reports are disabled"
echo " Export OMARCHY_RELEASE_CHATBOT_URL to receive start/publish/failure"
echo " reports in Basecamp."
fi
fi
if rclone listremotes 2>/dev/null | grep -q '^pkgs.omarchy.org:'; then
print_success "rclone remote 'pkgs.omarchy.org' configured"
else