quorate/services/oci-l4-relay-guest/image/artifacts

50 lines
2.8 KiB
Text
Raw Permalink Normal View History

#!/usr/bin/env bash
set -euo pipefail
if [[ $# -ne 1 ]]; then
printf 'usage: %s OUTPUT_DIRECTORY\n' "$0" >&2
exit 2
fi
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
output_directory="$(realpath -m "$1")"
temporary_directory="$(mktemp -d)"
trap 'rm -rf "$temporary_directory"' EXIT
vlagent_version=1.51.0
vlagent_archive="vlutils-linux-arm64-v${vlagent_version}.tar.gz"
vlagent_archive_sha256=6618825d0632bf0a145107a5c6a26e07513164d82157d03896507cb72a7be19c
mkdir -p "$output_directory"
GOCACHE="$temporary_directory/guest-cache" CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \
go build -C "$root/services/oci-l4-relay-guest" -trimpath -ldflags='-s -w -buildid=' \
-o "$output_directory/oci-l4-relay-guest" .
GOCACHE="$temporary_directory/admission-cache" CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \
go build -C "$root/services/oci-l4-relay-guest" -trimpath -ldflags='-s -w -buildid=' \
-o "$output_directory/oci-l4-relay-admission" ./cmd/admission
GOCACHE="$temporary_directory/smtp-deny-cache" CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \
go build -C "$root/services/oci-l4-relay-guest" -trimpath -ldflags='-s -w -buildid=' \
-o "$output_directory/oci-l4-relay-smtp-deny" ./cmd/smtp-deny
GOCACHE="$temporary_directory/smtp-evidence-cache" CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \
go build -C "$root/services/oci-l4-relay-guest" -trimpath -ldflags='-s -w -buildid=' \
-o "$output_directory/oci-l4-relay-smtp-evidence" ./cmd/smtp-evidence
curl -fsSL \
-o "$temporary_directory/$vlagent_archive" \
"https://github.com/VictoriaMetrics/VictoriaLogs/releases/download/v${vlagent_version}/${vlagent_archive}"
printf '%s %s\n' "$vlagent_archive_sha256" "$temporary_directory/$vlagent_archive" | sha256sum -c -
tar -xzf "$temporary_directory/$vlagent_archive" -C "$temporary_directory" vlagent-prod
install -m 0755 "$temporary_directory/vlagent-prod" "$output_directory/vlagent"
guest_sha256="$(sha256sum "$output_directory/oci-l4-relay-guest" | awk '{print $1}')"
admission_sha256="$(sha256sum "$output_directory/oci-l4-relay-admission" | awk '{print $1}')"
smtp_deny_sha256="$(sha256sum "$output_directory/oci-l4-relay-smtp-deny" | awk '{print $1}')"
smtp_evidence_sha256="$(sha256sum "$output_directory/oci-l4-relay-smtp-evidence" | awk '{print $1}')"
vlagent_sha256="$(sha256sum "$output_directory/vlagent" | awk '{print $1}')"
jq -n \
--arg admission_sha256 "$admission_sha256" \
--arg guest_sha256 "$guest_sha256" \
--arg smtp_deny_sha256 "$smtp_deny_sha256" \
--arg smtp_evidence_sha256 "$smtp_evidence_sha256" \
--arg vlagent_sha256 "$vlagent_sha256" \
--arg vlagent_version "$vlagent_version" \
'{admission_sha256:$admission_sha256,guest_sha256:$guest_sha256,smtp_deny_sha256:$smtp_deny_sha256,smtp_evidence_sha256:$smtp_evidence_sha256,vlagent_sha256:$vlagent_sha256,vlagent_version:$vlagent_version}' \
>"$output_directory/artifact-manifest.json"