From 96b657a45fb459fb730d2112d22c36eca6aa4af4 Mon Sep 17 00:00:00 2001
From: gotbadger
Date: Wed, 15 May 2024 13:29:33 +0100
Subject: [PATCH] ci: add cross compile tools to build
---
.github/actions/linux-build/Dockerfile | 2 +-
.goreleaser/common.yaml | 12 ++++++++++++
contrib/install.sh | 1 +
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/.github/actions/linux-build/Dockerfile b/.github/actions/linux-build/Dockerfile
index 97301bf13..93b3d8c23 100644
--- a/.github/actions/linux-build/Dockerfile
+++ b/.github/actions/linux-build/Dockerfile
@@ -16,7 +16,7 @@ RUN apt-get update && \
) && \
\
apt-get update && \
- apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin git && \
+ apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin git gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-i686-linux-gnu g++-i686-linux-gnu && \
\
wget --output-document=/tmp/go.tar.gz https://go.dev/dl/go1.21.0.linux-amd64.tar.gz && \
tar --extract --gunzip --file=/tmp/go.tar.gz --directory=/usr/local && \
diff --git a/.goreleaser/common.yaml b/.goreleaser/common.yaml
index 3947277c8..c8b598b2b 100644
--- a/.goreleaser/common.yaml
+++ b/.goreleaser/common.yaml
@@ -50,10 +50,22 @@ builds:
goarch:
- 386
- amd64
+ - arm64
ldflags:
- -w
- -X "github.com/bearer/bearer/cmd/bearer/build.Version={{.Version}}"
- -X "github.com/bearer/bearer/cmd/bearer/build.CommitSHA={{.Commit}}"
+ overrides:
+ - goos: linux
+ goarch: 386
+ env:
+ - CC=i686-linux-gnu-gcc
+ - CXX=i686-linux-gnu-g++
+ - goos: linux
+ goarch: arm64
+ env:
+ - CC=aarch64-linux-gnu-gcc
+ - CXX=aarch64-linux-gnu-g++
checksum:
name_template: "checksums.txt"
diff --git a/contrib/install.sh b/contrib/install.sh
index dd1b4c561..2ab6c3631 100755
--- a/contrib/install.sh
+++ b/contrib/install.sh
@@ -57,6 +57,7 @@ get_binaries() {
darwin/arm64) BINARIES="bearer" ;;
linux/386) BINARIES="bearer" ;;
linux/amd64) BINARIES="bearer" ;;
+ linux/arm64) BINARIES="bearer" ;;
*)
log_crit "platform $PLATFORM is not supported. Make sure this script is up-to-date and file request at https://github.com/${PREFIX}/issues/new"
exit 1