Skip to content

Claude/actions runner package install 6bcwdl - #1

Merged
yooknee merged 2 commits into
mainfrom
claude/actions-runner-package-install-6bcwdl
Aug 17, 2026
Merged

Claude/actions runner package install 6bcwdl#1
yooknee merged 2 commits into
mainfrom
claude/actions-runner-package-install-6bcwdl

Conversation

@yooknee

@yooknee yooknee commented Aug 17, 2026

Copy link
Copy Markdown
Owner

No description provided.

claude added 2 commits August 14, 2026 14:26
The official Node.js binaries link against libatomic.so.1 starting with
Node.js 25 (confirmed with `readelf -d bin/node`: the NEEDED entry is
absent in v24.x and present in v25.x and v26.x, on both linux-x64 and
linux-arm64). The dotnet/runtime-deps base image does not ship that
library, so a workflow that provisions Node with actions/setup-node fails
at exec time with:

  node: error while loading shared libraries: libatomic.so.1:
  cannot open shared object file: No such file or directory

Add libatomic1 to the existing apt transaction in the runtime stage. It
comes from Ubuntu main (source package gcc-14), so it adds no new
repository or trust anchor, ships no executables, and costs ~50 kB
installed. Reusing the existing RUN keeps the layer count unchanged and
keeps the package lists cleaned up in the same step.

Also add a cheap regression test to the docker job so the library cannot
silently disappear from the image again.

Fixes actions#4591
Non-containerized self-hosted runners hit the same Node.js 25+ failure as
the container image: actions/setup-node installs Node into the tool cache,
and it cannot start without libatomic.so.1.

Install the library from each distribution's own package manager
(libatomic1 on Debian/SUSE based, libatomic on Fedora based). This is done
best-effort rather than as a hard requirement: the runner itself does not
need libatomic today, since the bundled externals/node20 and
externals/node24 do not link against it, so a distribution that does not
package it must still configure successfully. On failure the script prints
an actionable warning naming the package and the error it prevents.

For the same reason config.sh is left alone -- gating runner configuration
on a library only future Node.js versions need would be a regression.

Document the dependency and the reasoning in docs/start/envlinux.md.
@yooknee
yooknee merged commit 541be5c into main Aug 17, 2026
10 checks passed
@yooknee
yooknee deleted the claude/actions-runner-package-install-6bcwdl branch August 17, 2026 09:15
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