Goreleaser에서 M1, Windows ARM64 지원하기
goreleaser의 각각 v0.157.0
, v0.175.0
버전에서 M1 macbook, Windows ARM 64 지원이 추가되었습니다. 저도 제가 개발하는 도구에선 M1 지원이 약간 늦은 느낌이 있긴한데요. 관련해서 주의해야할 점들 정리해 둡니다.
Apple M1
Apple M1은 darwin/arm64로 표기됩니다. 이는 go tool로 확인할 수 있는데요.
go tool dist list | grep darwin
darwin/amd64
darwin/arm64
go1.16 버전 이상부터는 darwin/arm64로 빌드가 가능해집니다. 그래서 goreleaser로도 m1 build가 가능하며, 이 때 goreleaer가 동작하는 머신은 당연히 go1.16 이상의 버전 설치가 필요합니다.
yaml 파일에서 goarch에 arm64가 추가되어 있다면 darwin/arm64로 빌드가 가능합니다.
goarch:
- amd64
- 386
- arm
- arm64
다만 이전부터 다른 os의 arm을 지원하셨다면 아마 ignore 패턴에 darwin/arm64가 포함되어 있을텐데요, 이를 제거해주셔야 정상적으로 적용됩니다.
...
• building binary=/home/devi/tools/dalfox/dist/dalfox_darwin_amd64/dalfox
• building binary=/home/devi/tools/dalfox/dist/dalfox_freebsd_arm_6/dalfox
• building binary=/home/devi/tools/dalfox/dist/dalfox_freebsd_arm64/dalfox
• building binary=/home/devi/tools/dalfox/dist/dalfox_darwin_arm64/dalfox
...
Windows ARM64
go1.17부턴 windows의 arm64도 빌드가 가능합니다.
go tool dist list | grep windows
windows/386
windows/amd64
windows/arm
windows/arm64
M1과 동일하게 ignore 패턴에 windows/arm64가 있다면 제거해주시면 잘 빌드됩니다 :D