add release and build scripts
This commit is contained in:
58
ci/test
Executable file
58
ci/test
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/.."
|
||||
. .envrc
|
||||
|
||||
_build_and_file() {
|
||||
bazel build --color=yes --curses=yes "$@"
|
||||
local execpath=$(bazel aquery "$@" 2>/dev/null | \
|
||||
awk "/action 'GoLink/{f=1};/Outputs: /&&f{print;exit}" | \
|
||||
awk -F'\\[|\\]' '{print $2}')
|
||||
file "$execpath" | tee /dev/stderr
|
||||
}
|
||||
|
||||
_test() {
|
||||
local name=$1
|
||||
local glob=$2
|
||||
shift; shift;
|
||||
>&2 echo "================================================================"
|
||||
>&2 echo "Testing $name and looking for '$glob':"
|
||||
>&2 echo " bazel build $* //test:hello"
|
||||
>&2 echo
|
||||
if _build_and_file "$@" //test:hello | grep -q "$glob"; then
|
||||
>&2 echo "OK $name"
|
||||
return 0
|
||||
else
|
||||
>&2 echo "FAIL $name: glob does not match"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
_test "Host" \
|
||||
"ELF 64-bit.* x86-64.* dynamically linked"
|
||||
|
||||
_test "linux_amd64_gnu" \
|
||||
"ELF 64-bit.* x86-64.* dynamically linked" \
|
||||
--platforms @io_bazel_rules_go//go/toolchain:linux_amd64_cgo
|
||||
|
||||
_test "linux_amd64_musl" \
|
||||
"ELF 64-bit.* x86-64.* statically linked" \
|
||||
--platforms @io_bazel_rules_go//go/toolchain:linux_amd64_cgo \
|
||||
--extra_toolchains @zig_sdk//:linux_amd64_musl_toolchain
|
||||
|
||||
_test "linux_arm64_gnu" \
|
||||
"ELF 64-bit.* ARM aarch64.* dynamically linked" \
|
||||
--platforms @io_bazel_rules_go//go/toolchain:linux_arm64_cgo
|
||||
|
||||
_test "linux_arm64_musl" \
|
||||
"ELF 64-bit.* ARM aarch64.* statically linked" \
|
||||
--platforms @io_bazel_rules_go//go/toolchain:linux_arm64_cgo \
|
||||
--extra_toolchains @zig_sdk//:linux_arm64_musl_toolchain
|
||||
|
||||
_test "darwin_amd64" \
|
||||
"Mach-O 64-bit x86_64 executable" \
|
||||
--platforms @io_bazel_rules_go//go/toolchain:darwin_amd64_cgo
|
||||
|
||||
_test "darwin_arm64" \
|
||||
"Mach-O 64-bit arm64 executable" \
|
||||
--platforms @io_bazel_rules_go//go/toolchain:darwin_arm64_cgo
|
||||
Reference in New Issue
Block a user