From 27e97cbd094e330ec2185d879219af8e45059e43 Mon Sep 17 00:00:00 2001 From: Juan Font Alonso Date: Wed, 16 Jun 2021 19:24:30 +0200 Subject: [PATCH] Use crosscompiling and enable CGO in goreleaser --- .goreleaser.yml | 59 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index e6e9451d..753c0807 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -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: + - 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'