Release workflow: auto-derive version + fix linux-arm64 linker - #2
Merged
Conversation
Replace the hand-typed embed_label input with a single `ref` input and a
`setup` job that computes everything, removing the only human-chosen
version string:
* upstream base = ref with `-figma...` stripped (validated as x.y.z),
and the ref is asserted to descend from the upstream <base> tag so a
mislabeled branch fails fast instead of producing a wrong release.
* fork build counter = max existing `<base>-figma.N` release + 1, so
re-cuts can't collide with or skip a prior build number.
* embed label / tag = `<base>-figma.<counter>`.
The resolved commit sha is pinned in `setup` and checked out by every
build leg and the release job, so all platforms build an identical tree
and the release targets that exact commit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The first end-to-end run failed only on the linux-arm64 leg while linking //src/main/cpp:client: /usr/bin/ld.gold: internal error in try_fix_erratum_843419_optimized, at ../../gold/aarch64.cc:2114 That is a known crash in GNU gold's aarch64 erratum-843419 workaround; Bazel's auto-detected toolchain forces gold when /usr/bin/ld.gold is present. Install lld on the aarch64 runner and append --linkopt=-fuse-ld=lld there (gcc honours the last -fuse-ld, overriding the toolchain's gold). The linux-x86_64 and darwin-arm64 legs, which built cleanly, are unchanged (empty link_flags). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
dmiller-figma
approved these changes
Jun 22, 2026
This was referenced Jun 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #1. Contains two commits:
1. Auto-derive release version from
ref(lost in #1's merge)PR #1 merged only its first commit, so the auto-counter redesign we'd agreed on never reached
master. This re-applies it: the workflow takes a singlerefinput (e.g.8.6.0-figma) and asetupjob computes everything — no hand-typed version string:refminus-figma...(validatedx.y.z), asserted to descend from the upstream<base>tag.max(existing <base>-figma.N) + 1— no collisions or skips.<base>-figma.<counter>; the resolved SHA is pinned for all legs.2. Fix linux-arm64 linker crash
The first end-to-end run (build) built
linux-x86_64anddarwin-arm64cleanly but failed linking onlinux-arm64:A known crash in GNU gold's aarch64 erratum-843419 workaround (Bazel's auto-detected toolchain forces gold when
/usr/bin/ld.goldexists). Fix: installlldon the aarch64 runner and append--linkopt=-fuse-ld=lldthere (gcc honours the last-fuse-ld). The two working legs are untouched.Validation
Run workflow(ref8.6.0-figma).🤖 Generated with Claude Code