-
Notifications
You must be signed in to change notification settings - Fork 0
/
cross-compile
executable file
·43 lines (30 loc) · 918 Bytes
/
cross-compile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash
BIN_DIR="./bin"
LICENSE_FILE="./LICENSE"
rm -rf "${BIN_DIR}"
mkdir -p "${BIN_DIR}"
# build, compress and print sha256 checksum
build_compress_sha() {
os=$1
arch=$2
bin_name="kubectl-autons"
if [ "${os}" == "windows" ]; then
bin_name="${bin_name}.exe"
fi
echo "Building for ${os}-(${arch})..."
env GOOS=${os} GOARCH=${arch} go build -ldflags="-w -s" -o "${BIN_DIR}/${bin_name}" src/main.go
cp ${LICENSE_FILE} "${BIN_DIR}/LICENSE"
tar -czf "${BIN_DIR}/kubectl-autons-${os}-${arch}.tar.gz" -C "${BIN_DIR}" ${bin_name} LICENSE
rm "${BIN_DIR}/${bin_name}"
rm "${BIN_DIR}/LICENSE"
shasum -a 256 "${BIN_DIR}/kubectl-autons-${os}-${arch}.tar.gz"
}
# macOS (Intel)
build_compress_sha "darwin" "amd64"
# macOS (M1)
build_compress_sha "darwin" "arm64"
# Linux
build_compress_sha "linux" "amd64"
# Windows
build_compress_sha "windows" "amd64"
echo "cross compilation complete"