Commit a7c1c17
committed
ci: publish arm64 alongside amd64
The Dockerfile already handles both architectures -- its TARGETARCH case
maps arm64 to aarch64-unknown-linux-musl, and that path was the one
verified locally during the 0.4.0 work. What was missing was a workflow
that asked for it, so every release so far has been amd64 only.
Build each architecture on a runner of that architecture rather than
cross-building under QEMU. Emulating an aarch64 Rust compile, ring's C
and assembly included, would turn a ~2 minute release into something far
longer; ubuntu-24.04-arm is generally available and free for public
repositories, so there is no reason to pay that cost. Both jobs run in
parallel, so wall-clock time stays roughly where it was.
Per-architecture builds push by digest only. A merge job then combines
those digests into one manifest list, so `docker pull` resolves the right
image per host from a single tag.
Two details worth recording:
Annotations are requested at index level via
DOCKER_METADATA_ANNOTATIONS_LEVELS. The default is `manifest:`, which is
the wrong level for a manifest list and would have produced malformed
`index:manifest:...` arguments had they been re-prefixed by hand.
The merge job ends by inspecting the pushed tag and failing if either
architecture is absent. These jobs only run on release, so they cannot be
exercised by pull request CI; that check means a silently single-arch
manifest fails the release instead of shipping.1 parent 1e5542b commit a7c1c17
1 file changed
Lines changed: 107 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
28 | 32 | | |
29 | | - | |
| 33 | + | |
30 | 34 | | |
31 | 35 | | |
32 | 36 | | |
33 | 37 | | |
34 | | - | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
35 | 49 | | |
36 | 50 | | |
37 | 51 | | |
38 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
39 | 62 | | |
40 | 63 | | |
41 | 64 | | |
42 | 65 | | |
43 | 66 | | |
44 | 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 | + | |
45 | 112 | | |
46 | 113 | | |
47 | 114 | | |
48 | 115 | | |
49 | | - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
50 | 121 | | |
51 | | - | |
52 | | - | |
| 122 | + | |
| 123 | + | |
53 | 124 | | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
| 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 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
0 commit comments