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
 7export CGO_ENABLED=0
 8
 9if ! git describe --tags --exact-match HEAD; then
10    echo "Not a tagged commit, refusing to build for all platforms."
11    exit 0
12fi
13
14TAG=$(git describe --tags --exact-match HEAD)
15NAME=$(basename "$(pwd)")
16
17mkdir -p "out/$TAG"
18
19while 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"
22done <<EOF
23aix ppc64
24darwin amd64
25darwin arm64
26dragonfly amd64
27freebsd 386
28freebsd amd64
29freebsd arm
30illumos amd64
31linux 386
32linux amd64
33linux arm
34linux arm64
35linux loong64
36linux mips
37linux mipsle
38linux mips64
39linux mips64le
40linux ppc64
41linux ppc64le
42linux riscv64
43linux s390x
44netbsd 386
45netbsd amd64
46netbsd arm
47openbsd 386
48openbsd amd64
49openbsd arm
50openbsd arm64
51plan9 386
52plan9 amd64
53plan9 arm
54solaris amd64
55windows 386
56windows amd64
57windows arm
58windows arm64
59EOF