From 0646f6884f3ac386e2e2a447590a4d3ae2e004f3 Mon Sep 17 00:00:00 2001 From: cucadmuh <49571317+cucadmuh@users.noreply.github.com> Date: Fri, 1 May 2026 22:13:09 +0300 Subject: [PATCH] Fix/release create tag before verify (#405) * fix(release): create missing app-v tag before release verification Ensure reusable publish creates and pushes the expected app-v tag when absent, then validates it points to source_ref. This prevents release records with tag_name but no git refs/tags object, which previously broke Source code archives. * fix(release): pin tauri publish to tagged release metadata Pass tagName/releaseName/releaseDraft/prerelease to tauri-action in addition to releaseId, so asset upload fallback remains bound to the expected app-v release instead of creating untagged releases. * chore(ci): align workflow action versions for release flow Update github-script usage to v9 across release-related workflows and keep the current tauri-action release binding changes in the same branch for testing. * fix(release): harden tagged release resolution for source-only promote Canonicalize release_id via getReleaseByTag after create/update and fail fast on invalid tag/commit inputs to avoid untagged release binding. Also propagate source-only marker through promote push events so push-triggered channel runs skip platform artifacts and verify-nix consistently. * fix(release): avoid tag lookup hard-fail during release creation Remove immediate getReleaseByTag canonicalization after create/update because GitHub can return 404 for tag-based release lookup while the release id is valid. Keep release_id flow and downstream release-id validation to prevent regressions. --- .github/workflows/reusable-channel-publish.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/reusable-channel-publish.yml b/.github/workflows/reusable-channel-publish.yml index ed0e8297..0fda0f28 100644 --- a/.github/workflows/reusable-channel-publish.yml +++ b/.github/workflows/reusable-channel-publish.yml @@ -207,18 +207,6 @@ jobs: core.info(`Created release id=${releaseId} tag=${tag} target_commitish=${targetCommitish}`); } - // Canonicalize release_id by querying the expected tag directly. - // This prevents passing a mismatched/untagged release id to later jobs. - const { data: byTag } = await github.rest.repos.getReleaseByTag({ - owner: context.repo.owner, - repo: context.repo.repo, - tag, - }); - if (!byTag.tag_name || byTag.tag_name.startsWith("untagged-")) { - throw new Error(`Release fetched by tag '${tag}' is untagged ('${byTag.tag_name ?? ""}')`); - } - releaseId = byTag.id; - core.info(`Resolved canonical release id=${releaseId} by tag=${tag}`); core.setOutput("release_id", String(releaseId)); - name: validate release id output env: