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.
This commit is contained in:
cucadmuh
2026-05-01 22:13:09 +03:00
committed by GitHub
parent 8d424fbc98
commit 0646f6884f
@@ -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: