Repository navigation
Release binaries for 32-bit ARM and riscv64 - #392
Merged
Merged
Conversation
Both architectures build cleanly and are a natural fit for the embedded/appliance update case, but neither was in the release matrix, so those users had to build from source. Add arm and riscv64, restricted to Linux. Of the other platforms only freebsd/arm is a combination Go supports at all, and FreeBSD is already untested at runtime, so a second architecture there would be an artifact nobody exercises. goreleaser skips the combinations Go doesn't support on its own; the ignore rule is for the deliberate omission. Both ARM variants are built: v6 runs anywhere 32-bit ARM does, and v7 is faster on hardware that supports it, which is worth an extra artifact for a tool whose chunking is CPU-bound.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Both architectures build cleanly — verified during #387 — and are a natural fit for the embedded/appliance update case, which is one of desync's core uses. Neither was in the release matrix, so those users had to build from source.
Adds
armandriscv64, restricted to Linux. Of the other platforms,go tool dist listsays onlyfreebsd/armis a combination Go supports at all (darwin and windows support neither), and FreeBSD is already "builds, untested at runtime", so a second architecture there would be an artifact nobody exercises. Theignorerule covers that deliberate omission; goreleaser skips the genuinely invalid combinations by itself.Both ARM variants are built. v6 runs anywhere 32-bit ARM does, v7 is faster on hardware that supports it, and desync's chunking is CPU-bound enough for that to be worth an extra artifact.
Verified with a full
goreleaser build --snapshotacross the whole matrix, which now produces:No invalid combination is attempted and
freebsd/armis correctly absent, so a real tag push won't fail on the matrix.goreleaser checkpasses.The new binaries are the right thing (
ELF 32-bit ARM EABI5for both ARM variants,UCB RISC-V double-floatfor riscv64) and the v6/v7 outputs genuinely differ. Beyond that they were run under qemu user emulation, which is more than a file(1) check:makeunder arm/v7 into a local store, thenextractof that index under riscv64, compared byte-for-byte against the originalverifyof the resulting store under arm/v6So the artifacts run, and interoperate across architectures.