From c6c6ea6b571f01fe5fe9941b9e8bd5dc0b6a996c Mon Sep 17 00:00:00 2001 From: David Snelling Date: Tue, 4 Aug 2026 10:14:46 -0700 Subject: [PATCH] =?UTF-8?q?ci:=20tags=20stop=20triggering=20the=20CI=20mat?= =?UTF-8?q?rix=20(redundant=20re-run=20of=20already-tested=20commits=20sta?= =?UTF-8?q?rved=20every=20release's=20publish=20run=20on=20the=20sequentia?= =?UTF-8?q?l=20runner)=20+=20release.sh=20forge=20poll=20window=2020?= =?UTF-8?q?=E2=86=9250=20min?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .forgejo/workflows/ci.yml | 6 ++++++ scripts/release.sh | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index cdb2ab14..42ffa76a 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -1,7 +1,13 @@ name: CI +# Branch pushes only — a release TAG deliberately does not re-run CI: the +# tagged commit's CI already ran on its branch push, and the runner is +# sequential, so tag-triggered matrix jobs (~22 min) would queue AHEAD of the +# tag's publish-forge run and starve every release (observed on 8.10.3 and +# 9.0.0: the publish sat behind the tag's own redundant CI). on: push: + branches: ['**'] pull_request: jobs: diff --git a/scripts/release.sh b/scripts/release.sh index b386e580..7f068cb8 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -189,7 +189,9 @@ echo -e "${GREEN}✅ Pushed to origin${NC}\n" # the forge/npmjs pair enough to publish the storefront leg. FORGE_NPM_REG="https://source.soulcraft.com/api/packages/soulcraft/npm/" FORGE_POLL_INTERVAL_S=15 -FORGE_POLL_MAX_ATTEMPTS=80 # 80 × 15s = 20 minutes — the runner is sequential; the publish run queues behind ci.yml jobs +FORGE_POLL_MAX_ATTEMPTS=200 # 200 × 15s = 50 minutes — the runner is sequential and a busy day's ci.yml + # backlog has twice exceeded the old 20-minute window (8.10.3, 9.0.0); + # ci.yml no longer runs on tag pushes, but same-day branch pushes still queue ahead echo -e "${BLUE}9️⃣ Waiting for CI to publish v${NEW_VERSION} to the forge registry (home)...${NC}" FORGE_LANDED=false for ((attempt = 1; attempt <= FORGE_POLL_MAX_ATTEMPTS; attempt++)); do