mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
f513881c01
The manifest list was assembled from a glob over the downloaded digest files, which are named after the digest itself. The order was therefore alphabetical by hash, and it changed from one release to the next: 3.4.1 lists amd64 first, 4.0.0 lists arm64 first. That is not supposed to matter — a client is meant to pick the entry matching its own platform — but several people updating from 3.4.1 to 4.0.0 on amd64 reported that `:latest` still resolved to 3.4.1 and only a pinned `:4` or `:4.0.0` pulled the new image. Unraid came up twice. Content, format and digest of the three tags are identical, so the flipped order is the only thing that changed between the release that worked and the one that did not. The digests are now collected per platform in a fixed order, amd64 first. That needs the artifacts unmerged, since the per-platform folder name is the only thing that says which digest belongs to which architecture. Second thing the loop fixes: the glob happily built a single-platform manifest if one of the two builds had failed to upload. It now fails loudly instead of publishing a `:latest` that half the users cannot pull.