Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix crossbuild script to continue after invalid arch. #136

Merged
merged 7 commits into from
Apr 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@ on:

jobs:
build:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@master
- uses: actions/setup-go@master
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: '1.14'
go-version: '1.16'
- name: Run Cross-build
run: ./crossbuild.sh
- name: Show MemGator CLI Help
run: /tmp/mgbins/memgator-linux-amd64
- name: Upload Built MemGator Binaries
uses: actions/upload-artifact@master
uses: actions/upload-artifact@v2
with:
name: memgator-bins
path: /tmp/mgbins
30 changes: 15 additions & 15 deletions crossbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,24 @@ echo "Building binaries for various platforms"
# Create directory to store all binaries
binsdir=/tmp/mgbins
mkdir -p $binsdir
rm -rf $binsdir/memgator-*
echo "Output directory for binaries created: $binsdir"

# OS and architecture matrix
oses="linux darwin windows"
arcs="386 amd64"
# Platforms (OS/arch matrix)
platforms="linux/amd64 darwin/amd64 windows/amd64 darwin/arm64"

# Build binaries for all OSes and architectures
for os in $oses; do
for arc in $arcs; do
echo "Building binary for $os/$arc"
fn=$binsdir/memgator-$os-$arc
if [ $os == "windows" ]; then
GOOS=$os GOARCH=$arc go build -v -o $fn.exe
else
GOOS=$os GOARCH=$arc CGO_ENABLED=0 go build -v -a -installsuffix cgo -o $fn
fi
done
# Build binaries for all listed platforms
for p in $platforms; do
os=${p%/*}
arc=${p#*/}
echo "Building binary for platform: $p"
fn=$binsdir/memgator-$os-$arc
if [ $os == "windows" ]; then
GOOS=$os GOARCH=$arc go build -v -o $fn.exe
else
GOOS=$os GOARCH=$arc CGO_ENABLED=0 go build -v -a -installsuffix cgo -o $fn
fi
done

echo "Following binaries have been created in: $binsdir"
ls -lh $binsdir
(cd $binsdir && ls -lh memgator-*)