NVIDIA / container-canary

A tool for testing and validating container requirements against versioned manifests
Apache License 2.0
246 stars 15 forks source link

provide linux arm64 binaries #58

Closed jameslamb closed 6 months ago

jameslamb commented 6 months ago

Description

For Linux, this project is currently only publishing amd64 binaries on releases.

We should consider also publishing arm64 binaries.

Benefits of this work

That would be useful because it allows use of this project without needing to set up Go and do go install.

Acceptance Criteria

Approach

As described in https://www.digitalocean.com/community/tutorials/building-go-applications-for-different-operating-systems-and-architectures#using-your-local-goos-and-goarch-environment-variables, Go has builtin support for cross-compiling, so I think this should be achievable on the GitHub-hosted ubuntu-latest runner, without requiring an arm64 runner.

Like this:

GOOS=linux GOARCH=arm64 go build

Notes

Writing this up specifically from the perspective of RAPIDS. This would be helpful (but not critical) for https://github.com/rapidsai/docker/issues/667, as RAPIDS builds both amd64 and arm64 images there and it's helpful to run those images on amd64 and arm64 runners directly (instead of using emulation).

jacobtomlinson commented 6 months ago

I think we should just be able to add this to the existing setup in the Makefile.

https://github.com/NVIDIA/container-canary/blob/b67f65e6a423853c3b07bd950c8da0dbbc3c0aba/Makefile#L20-L27

jacobtomlinson commented 6 months ago

I just tagged v0.3.1 so you should have Linux arm64 builds now.

jameslamb commented 6 months ago

excellent, thanks!