/ build-all.sh
build-all.sh
1 #!/usr/bin/env sh 2 3 # SPDX-FileCopyrightText: Amolith <amolith@secluded.site> 4 # 5 # SPDX-License-Identifier: CC0-1.0 6 7 export CGO_ENABLED=0 8 9 if ! git describe --tags --exact-match HEAD; then 10 echo "Not a tagged commit, refusing to build for all platforms." 11 exit 0 12 fi 13 14 TAG=$(git describe --tags --exact-match HEAD) 15 NAME=$(basename "$(pwd)") 16 17 mkdir -p "out/$TAG" 18 19 while read -r LOOP_OS LOOP_ARCH; do 20 echo "Building $NAME-$LOOP_OS-$LOOP_ARCH" 21 GOOS="$LOOP_OS" GOARCH="$LOOP_ARCH" go build -ldflags="-s -w" -o "out/$TAG/$NAME-$LOOP_OS-$LOOP_ARCH" ./cmd 22 done <<EOF 23 darwin amd64 24 freebsd 386 25 freebsd amd64 26 freebsd arm 27 freebsd arm64 28 linux 386 29 linux amd64 30 linux arm 31 linux arm64 32 linux ppc64le 33 linux riscv64 34 netbsd amd64 35 openbsd amd64 36 openbsd arm64 37 windows amd64 38 EOF