Use crosscompiling and enable CGO in goreleaser
@@ -4,29 +4,66 @@ before:
hooks:
- go mod tidy
builds:
- - env:
- - CGO_ENABLED=0
+ - id: darwin-amd64
+ main: ./cmd/headscale/headscale.go
+ mod_timestamp: '{{ .CommitTimestamp }}'
goos:
- - linux
- - windows
- darwin
goarch:
- amd64
+ env:
+ - PKG_CONFIG_SYSROOT_DIR=/sysroot/macos/amd64
+ - PKG_CONFIG_PATH=/sysroot/macos/amd64/usr/local/lib/pkgconfig
+ - CC=o64-clang
+ - CXX=o64-clang++
+ flags:
+ - -mod=readonly
+ ldflags:
+ - -s -w -X main.version={{.Version}}
+ - id: linux-armhf
+ main: ./cmd/headscale/headscale.go
+ mod_timestamp: '{{ .CommitTimestamp }}'
+ goos:
+ - linux
+ goarch:
- arm
- - arm64
goarm:
- - 6
- 7
+ env:
+ - CC=arm-linux-gnueabihf-gcc
+ - CXX=arm-linux-gnueabihf-g++
+ - CGO_FLAGS=--sysroot=/sysroot/linux/armhf
+ - CGO_LDFLAGS=--sysroot=/sysroot/linux/armhf
+ - PKG_CONFIG_SYSROOT_DIR=/sysroot/linux/armhf
+ - PKG_CONFIG_PATH=/sysroot/linux/armhf/opt/vc/lib/pkgconfig:/sysroot/linux/armhf/usr/lib/arm-linux-gnueabihf/pkgconfig:/sysroot/linux/armhf/usr/lib/pkgconfig:/sysroot/linux/armhf/usr/local/lib/pkgconfig
+ flags:
+ - -mod=readonly
+ ldflags:
+ - -s -w -X main.version={{.Version}}
+
+ - id: linux-amd64
+ env:
+ - CGO_ENABLED=1
+ goos:
+ - linux
+ goarch:
+ - amd64
+ goarm:
+ - 6
+ - 7
main: ./cmd/headscale/headscale.go
mod_timestamp: '{{ .CommitTimestamp }}'
archives:
- - replacements:
- darwin: Darwin
- linux: Linux
- windows: Windows
- amd64: x86_64
+ - id: golang-cross
+ builds:
+ - darwin-amd64
+ - linux-armhf
+ - linux-amd64
+ name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
+ format: zip
+ # wrap_in_directory: true
checksum:
name_template: 'checksums.txt'
