Commit fcef960
authored
ci(docker): publish multi-arch image with native runners (#1768)
* ci(docker): build linux/arm64 on a native runner instead of qemu
The publish workflow has been broken since the Node 24 bump (#1767). The
arm64 leg ran under qemu-user on the amd64 runner and crashed with
SIGILL (exit 132) inside `npm ci` - V8 13's JIT emits Arm v8.x
instructions that the runner's binfmt qemu cannot decode.
Switch to the docker/build-push-action multi-platform pattern:
- Matrix per architecture, each on its native runner. amd64 stays on
`ubuntu-latest`; arm64 moves to the free `ubuntu-24.04-arm` runner
GitHub now provides for public repos. Both per-arch jobs push
blob-only `push-by-digest` images so they never compete for shared
tags.
- A `merge` job downloads both digests and stitches them into the
`:latest` and `:<sha>` manifest list with `docker buildx imagetools
create`, reproducing the previous tag set.
Also add per-arch GHA cache scopes so the two legs do not invalidate
each other.
Temporarily includes `chore/native-arm-publish` in the push trigger so
the workflow can be validated end-to-end before the entry is removed
and the change is opened for review.
* ci(docker): drop temp branch trigger and keep raw SHA tag format
Validation run on chore/native-arm-publish (run 24660044323) succeeded
end-to-end - both per-arch builds passed on their native runners and the
merge job pushed the manifest list to Docker Hub. Remove the temporary
push trigger so the workflow only runs on master, and override the
metadata-action sha prefix so the SHA tag stays bare (matching the
previous github.sha tag format).
* ci(docker): pin docker/* actions to commit SHAs
SonarCloud's githubactions:S7637 ("Use full commit SHA hash for this
dependency") flagged the three docker/* uses in the new merge job
introduced by this PR. Pin all docker/setup-buildx-action,
docker/login-action, docker/metadata-action, and docker/build-push-action
invocations in both the build matrix and the merge job to their resolved
commit SHAs (with the version comment preserved for human readability),
matching the cypress-io/github-action pinning style #1767 already
established in build.yaml. The actions/* invocations stay on tags - S7637
exempts the first-party github-maintained actions.1 parent 8ce1cde commit fcef960
1 file changed
Lines changed: 98 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
12 | 29 | | |
13 | 30 | | |
14 | 31 | | |
15 | 32 | | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | 33 | | |
20 | | - | |
| 34 | + | |
21 | 35 | | |
22 | 36 | | |
23 | | - | |
| 37 | + | |
24 | 38 | | |
25 | 39 | | |
26 | 40 | | |
27 | 41 | | |
28 | | - | |
| 42 | + | |
29 | 43 | | |
30 | | - | |
| 44 | + | |
31 | 45 | | |
32 | 46 | | |
33 | 47 | | |
34 | | - | |
35 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
36 | 51 | | |
37 | 52 | | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
| 53 | + | |
43 | 54 | | |
44 | | - | |
45 | | - | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 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 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
0 commit comments