Commit caa2ce5
authored
ci: publish arm64 alongside amd64 (#32)
* 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.
* Set the crate version to 0.4.1 and document arm64 support
The crate version had sat at 0.1.0 across all six releases, so anything
reading it -- cargo tooling, an SBOM, a future `--version` flag -- gave a
number unrelated to the artifact. Point it at the tag this will ship as.
Cargo.lock has to move with it: CI and the Docker build both pass
--locked, which rejects a lockfile that disagrees with the manifest. That
would have failed the release rather than the pull request, since the
image is only built on release.
README now describes the images as multi-arch and drops the note telling
arm64 users to emulate or build their own, with the cutover version called
out so it stays accurate for anyone still on 0.4.0.
Only the root package moved. The two internal libraries stay at 0.1.0 --
they are path dependencies and are never published on their own.1 parent 1e5542b commit caa2ce5
4 files changed
Lines changed: 112 additions & 15 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 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
| 83 | + | |
84 | 84 | | |
85 | | - | |
| 85 | + | |
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| |||
0 commit comments