Skip to content

ci(release): peel the release tag via the git refs API - #385

Merged
EraPartner merged 5 commits into
mainfrom
claude/project-thread-nu4294
Oct 28, 2026
Merged

EraPartner merged 5 commits into
mainfrom
claude/project-thread-nu4294

Conversation

@EraPartner

Copy link
Copy Markdown
Owner

Summary

Release run 49 built and attested the v2.0.0 artifacts, then failed in "Publish immutable-ready release" before publishing:

gh: No commit found for SHA: tags/v2.0.0 (HTTP 422)

GET /repos/{owner}/{repo}/commits/tags/v2.0.0 does not resolve the annotated release tag; I reproduced the same 422 locally. The publish step now resolves the tag through git/ref/tags/<tag> and peels annotated tag objects through git/tags/<sha> until it reaches the commit. This applies to both checks: the one before publication and the one after it.

Testing

  • Ran the new tag_commit function against the real repo with TAG=v2.0.0. It resolved to d35d0603317f32b03d42ff5cd707f44e300602eb, the commit Verify approved in run 49.
  • The workflow YAML parses.

After merge

Start Release with Run workflow from main and tag: v2.0.0. That run uses this fixed workflow, and the build still checks out the tagged commit. The v2.0.0 tag does not need to move.


Generated by Claude Code

Release run 48 failed with "ENOENT: lstat
packaging/electron/libicuuc.77.dylib". Postgres.app's ICU libraries
record bare install names (libicuuc.77.dylib), and the relinker passed
them to realpathSync, which resolved them against the build step's
working directory. Resolve a non-absolute dependency next to the image
that records it, and fail with a clear message if it is not there.
Inspecting the pinned Postgres.app 2.9.6 DMG showed three more relink
failures waiting behind the ICU one:

- Every Mach-O is universal (x86_64 + arm64). otool prints one block
  per slice, so the parsers read the slice headers as dependencies
  and library ids. Thin each file to the build architecture first.
- Six static archives are universal too, so `file` calls them Mach-O.
  They are link-time only; remove them.
- The PL/Python modules link /Library/Frameworks/Python.framework,
  which the runner does not have and Vision does not use. Remove them
  and their extension scripts.
Release run 49 failed before publishing with "No commit found for SHA:
tags/v2.0.0 (HTTP 422)": the commits API does not resolve tags/<name>
for the annotated release tag. Resolve the tag through git/ref/tags and
git/tags instead, in both places the publish step compares it with the
verified commit.
@EraPartner
EraPartner enabled auto-merge (squash) October 28, 2026 19:06
@github-actions

Copy link
Copy Markdown

Coverage Report for backend

Status Category Percentage Covered / Total
🟢 Lines 91.06% (🎯 80%) 23170 / 25443
🟢 Statements 89.33% (🎯 78%) 24933 / 27910
🟢 Functions 91.44% (🎯 76%) 5004 / 5472
🟢 Branches 81.61% (🎯 68%) 17481 / 21419
File CoverageNo changed files found.
Generated in workflow #1950 for commit a5cc90a by the Vitest Coverage Report Action

@EraPartner
EraPartner merged commit 1932f7d into main Oct 28, 2026
11 checks passed
@EraPartner
EraPartner deleted the claude/project-thread-nu4294 branch October 28, 2026 19:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants