fix: Push to public mirrors after merge (#614)
Add fire-and-forget mirror push support so merges to the primary branch are automatically pushed to configured public mirrors (GitHub, Codeberg, etc.). Mirror failures are logged but never block the pipeline. - lib/mirrors.sh: new shared mirror_push() helper - lib/load-project.sh: parse [mirrors] TOML section into MIRROR_* env vars - dev/phase-handler.sh: call mirror_push after do_merge() success - dev/dev-poll.sh: call mirror_push after try_direct_merge() success - gardener/gardener-run.sh: call mirror_push after _gardener_merge() success - bin/disinto: set up mirror remotes during init, add commented mirrors to generated TOML - projects/*.toml.example: show [mirrors] section (commented out) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a4cbe1e8c6
commit
7bc74caa63
9 changed files with 102 additions and 1 deletions
|
|
@ -8,7 +8,8 @@
|
|||
# PROJECT_NAME, FORGE_REPO, FORGE_API, FORGE_WEB, FORGE_URL,
|
||||
# PROJECT_REPO_ROOT, PRIMARY_BRANCH, WOODPECKER_REPO_ID,
|
||||
# PROJECT_CONTAINERS, CHECK_PRS, CHECK_DEV_AGENT,
|
||||
# CHECK_PIPELINE_STALL, CI_STALE_MINUTES
|
||||
# CHECK_PIPELINE_STALL, CI_STALE_MINUTES,
|
||||
# MIRROR_NAMES, MIRROR_URLS, MIRROR_<NAME> (per configured mirror)
|
||||
# (plus backwards-compat aliases: CODEBERG_REPO, CODEBERG_API, CODEBERG_WEB)
|
||||
#
|
||||
# If no argument given, does nothing (allows poll scripts to work with
|
||||
|
|
@ -71,6 +72,14 @@ mon = cfg.get('monitoring', {})
|
|||
for key in ['check_prs', 'check_dev_agent', 'check_pipeline_stall']:
|
||||
if key in mon:
|
||||
emit(key.upper(), mon[key])
|
||||
|
||||
# [mirrors] section
|
||||
mirrors = cfg.get('mirrors', {})
|
||||
for name, url in mirrors.items():
|
||||
emit(f'MIRROR_{name.upper()}', url)
|
||||
if mirrors:
|
||||
emit('MIRROR_NAMES', list(mirrors.keys()))
|
||||
emit('MIRROR_URLS', list(mirrors.values()))
|
||||
" "$_PROJECT_TOML" 2>/dev/null) || {
|
||||
echo "WARNING: failed to parse project TOML: $_PROJECT_TOML" >&2
|
||||
return 1 2>/dev/null || exit 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue