From 32e249c4116000a8377017e019f8e4e03bcdd038 Mon Sep 17 00:00:00 2001 From: cucadmuh <49571317+cucadmuh@users.noreply.github.com> Date: Fri, 1 May 2026 23:38:37 +0300 Subject: [PATCH] fix(release): tolerate delayed tag ref visibility checks (#414) When release and target_commitish are already valid, treat temporary git ref 404 responses as a warning so release jobs continue instead of failing on API propagation lag. --- .github/workflows/reusable-channel-publish.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/reusable-channel-publish.yml b/.github/workflows/reusable-channel-publish.yml index 2ed1b467..f13af120 100644 --- a/.github/workflows/reusable-channel-publish.yml +++ b/.github/workflows/reusable-channel-publish.yml @@ -259,8 +259,22 @@ jobs: } } if (!ref) { - core.setFailed(`tag ref 'tags/${expectedTag}' not found after retries (release_id=${releaseId})`); + const targetCommitish = (release.target_commitish || "").trim(); + const isSha = /^[0-9a-f]{40}$/i.test(targetCommitish); + if (isSha && targetCommitish.toLowerCase() !== expectedSha.toLowerCase()) { + core.setFailed( + `release_id=${releaseId} has target_commitish='${targetCommitish}', expected '${expectedSha}', and tag ref is unavailable` + ); + if (lastRefError) core.warning(`Last getRef error: ${lastRefError.message}`); + return; + } + core.warning( + `tag ref 'tags/${expectedTag}' not found after retries (release_id=${releaseId}); continuing because release metadata is already bound` + ); if (lastRefError) core.warning(`Last getRef error: ${lastRefError.message}`); + if (isSha) { + core.info(`Verified release_id=${releaseId} via target_commitish=${targetCommitish}`); + } return; }