/ 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