2023-03-28 08:50:17 -04:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
# Usage: ./build-and-upload.sh [dryrun]
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
set -o errtrace
|
|
|
|
shopt -s inherit_errexit
|
|
|
|
|
|
|
|
talosRepo="https://github.com/siderolabs/talos"
|
|
|
|
talosHash="94c24ca64e70f227da29cd02bd367d3c2701b96c"
|
|
|
|
s3CASPath="s3://cdn-constellation-backend/constellation/cas/sha256"
|
|
|
|
publicCASPath="https://cdn.confidential.cloud/constellation/cas/sha256"
|
|
|
|
|
|
|
|
function cleanup {
|
|
|
|
echo "Cleaning up"
|
|
|
|
rm -rf "${tmpDir}"
|
|
|
|
}
|
|
|
|
|
|
|
|
trap cleanup EXIT
|
|
|
|
|
|
|
|
# Set flags to --dryrun if arg 1 is "dryrun"
|
|
|
|
awsFlags=()
|
|
|
|
if [[ ${1-} == "dryrun" ]]; then
|
|
|
|
awsFlags+=("--dryrun")
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Create a temp dir to work in
|
|
|
|
tmpDir=$(mktemp -d)
|
|
|
|
pushd "${tmpDir}"
|
|
|
|
|
|
|
|
# Get the talos source code
|
|
|
|
wget -qO- "${talosRepo}/archive/${talosHash}.tar.gz" | tar -xz
|
|
|
|
cp -r "talos-${talosHash}/hack/docgen" .
|
|
|
|
pushd "docgen"
|
|
|
|
|
|
|
|
# Build and upload the talos-docgen binary
|
|
|
|
echo
|
|
|
|
for arch in "amd64" "arm64"; do
|
|
|
|
for os in "linux" "darwin"; do
|
|
|
|
echo "Building and uploading talos-docgen-${os}-${arch}"
|
|
|
|
CGO_ENABLED="0" GOWORK="" GOOS="${os}" GOARCH="${arch}" go build -trimpath -ldflags="-buildid=" -o "talos-docgen-${os}-${arch}" .
|
2023-05-02 03:59:55 -04:00
|
|
|
sum=$(sha256sum "talos-docgen-${os}-${arch}" | cut -d ' ' -f1) && echo "Binary sha256sum: ${sum}"
|
2023-03-28 08:50:17 -04:00
|
|
|
file "talos-docgen-${os}-${arch}"
|
|
|
|
aws s3 "${awsFlags[@]}" cp "./talos-docgen-${os}-${arch}" "${s3CASPath}/${sum}"
|
|
|
|
echo
|
|
|
|
cat << EOF >> "bazelout.txt"
|
|
|
|
http_file(
|
|
|
|
name = "com_github_siderolabs_talos_hack_docgen_${os}_${arch}",
|
|
|
|
urls = [
|
|
|
|
"${publicCASPath}/${sum}",
|
|
|
|
],
|
|
|
|
executable = True,
|
|
|
|
sha256 = "${sum}",
|
|
|
|
)
|
|
|
|
EOF
|
|
|
|
done
|
|
|
|
done
|
|
|
|
|
|
|
|
# Print the bazel output
|
|
|
|
cat bazelout.txt
|
|
|
|
echo
|