WIP: use gox for cross platform compiling, try to enable cross platform cgo builds

This commit is contained in:
Christoph Haas
2021-02-24 22:40:35 +01:00
parent 4fe4d93e0d
commit 6d4fcba00c
3 changed files with 16 additions and 6 deletions

View File

@@ -1,11 +1,19 @@
language: go
sudo: false
dist: bionic
sudo: required
go:
- tip # Latest go version
- 1.16.x # Latest go version
env:
- azure-linux
- GO111MODULE=on
addons:
apt:
packages:
- gcc-multilib
before_install:
# gox simplifies building for multiple architectures
- go get github.com/mitchellh/gox
- go get github.com/necrose99/gox
install:
- # skip
@@ -14,7 +22,8 @@ script:
- go get -t -v ./...
- diff -u <(echo -n) <(gofmt -d .)
- go vet $(go list ./... | grep -v /vendor/)
- gox -cgo -os="linux" -arch="amd64 arm arm64" -output="dist/{{.Dir}}_{{.OS}}_{{.Arch}}" -ldflags "-X main.Version=`git rev-parse --short HEAD`" -verbose ./...
- sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install gcc-arm-linux-gnueabi libc6-dev-armel-cross gcc-arm-linux-gnueabihf libc6-dev-armhf-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross
- GOX_linux_arm_LDFLAGS="-linkmode external -extldflags -static" GOX_linux_arm_CC=arm-linux-gnueabi-gcc GOX_linux_arm64_LDFLAGS="-linkmode external -extldflags -static" GOX_linux_arm64_CC=aarch64-linux-gnu-gcc gox -rebuild -parallel=1 -verbose -cgo -os="linux" -arch="amd64 arm arm64" -output="dist/{{.Dir}}_{{.OS}}_{{.Arch}}" -ldflags "-X main.Version=`git rev-parse --short HEAD`" -verbose ./...
deploy:
provider: releases