Repository navigation
Commit 13d46c5
fix(ci): build the musl @cipherstash/auth binary in Alpine, and check every binary's C library
The linux-x64-musl leg of _build-auth-artifacts.yml targeted
x86_64-unknown-linux-musl on the Ubuntu runner but named no musl linker,
so cargo linked the binary against the runner's glibc. Such a binary
fails to load on musl systems such as Alpine. auth-preflight's libc
check caught it: "linux-x64-musl links glibc — it is the gnu binary".
The suite's published @cipherstash/auth-linux-x64-musl 0.44.0 has the
same fault, because its workflow built musl the same way and never ran
such a check.
Build that leg inside node:22-alpine, pinned by digest: Alpine is a musl
system, so its compiler and runtime libraries are musl's own. The
container installs Rust at the version mise pins and pnpm at the root
packageManager version, installs only the auth package's dependencies,
and runs the same napi build, with -crt-static off so the binary links
musl at load time. Two other ways failed on 2 October 2026: Ubuntu's
musl-gcc cannot link a Rust shared library ("cannot find
libgcc_s.so.1"), and the musl.cc toolchain that _build-ffi-artifacts.yml
uses timed out from GitHub's runners.
Also check which C library each Linux binary links as it is built,
before the package is packed. Until now only auth-preflight.yml read it,
and nothing runs the preflight automatically, so a release could have
published a glibc-linked musl binary. The gnu binaries must need
libc.so.6, and the musl binary must not.
Tests in auth-build-artifacts.test.mjs cover the Alpine build, the
skipped host steps for the musl leg, and the C library check coming
before the pack.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PaY5xYydZUWhv8Nex9Sw8a1 parent 4f11f41 commit 13d46c5
2 files changed
Lines changed: 107 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | 68 | | |
76 | 69 | | |
77 | 70 | | |
| |||
104 | 97 | | |
105 | 98 | | |
106 | 99 | | |
| 100 | + | |
107 | 101 | | |
108 | 102 | | |
109 | 103 | | |
110 | 104 | | |
111 | 105 | | |
112 | 106 | | |
| 107 | + | |
113 | 108 | | |
114 | 109 | | |
115 | 110 | | |
116 | 111 | | |
117 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
118 | 150 | | |
119 | 151 | | |
120 | 152 | | |
| |||
130 | 162 | | |
131 | 163 | | |
132 | 164 | | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
133 | 191 | | |
134 | 192 | | |
135 | 193 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
| 55 | + | |
55 | 56 | | |
56 | 57 | | |
57 | 58 | | |
| |||
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
63 | | - | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
73 | 74 | | |
74 | 75 | | |
75 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
76 | 116 | | |
77 | 117 | | |
78 | 118 | | |
| |||
0 commit comments