influxdb/.circleci/scripts/docker_build_release.bash

58 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
readonly PACKAGE="$1"
readonly FEATURES="$2"
readonly TAG="$3"
readonly PBS_DATE="$4"
readonly PBS_VERSION="$5"
readonly ARCH="${6:-amd64}" # Default to amd64 if not specified
readonly PROFILE="${7:-release}" # Default to release if not specified
RUST_VERSION="$(sed -E -ne 's/channel = "(.*)"/\1/p' rust-toolchain.toml)"
COMMIT_SHA="$(git rev-parse HEAD)"
COMMIT_TS="$(env TZ=UTC0 git show --quiet --date='format-local:%Y-%m-%dT%H:%M:%SZ' --format="%cd" HEAD)"
NOW="$(date --utc --iso-8601=seconds)"
REPO_URL="https://github.com/influxdata/influxdb"
# Convert arch to platform
PLATFORM="linux/${ARCH}"
# Convert arch to python-build-standalone target
PBS_TARGET=
case "$PLATFORM" in
linux/amd64)
PBS_TARGET="x86_64-unknown-linux-gnu"
;;
linux/arm64)
PBS_TARGET="aarch64-unknown-linux-gnu"
;;
*)
echo "Unknown python-build-standalone platform: '$PLATFORM'"
exit 1
esac
exec docker buildx build \
--build-arg CARGO_INCREMENTAL="no" \
--build-arg CARGO_NET_GIT_FETCH_WITH_CLI="true" \
--build-arg FEATURES="$FEATURES" \
--build-arg RUST_VERSION="$RUST_VERSION" \
--build-arg PACKAGE="$PACKAGE" \
--build-arg PROFILE="$PROFILE" \
--build-arg PBS_TARGET="$PBS_TARGET" \
--build-arg PBS_DATE="$PBS_DATE" \
--build-arg PBS_VERSION="$PBS_VERSION" \
--platform "$PLATFORM" \
--label org.opencontainers.image.created="$NOW" \
--label org.opencontainers.image.url="$REPO_URL" \
--label org.opencontainers.image.revision="$COMMIT_SHA" \
--label org.opencontainers.image.vendor="InfluxData Inc." \
--label org.opencontainers.image.title="InfluxDB3 Edge" \
--label org.opencontainers.image.description="InfluxDB3 Edge Image" \
--label com.influxdata.image.commit-date="$COMMIT_TS" \
--label com.influxdata.image.package="$PACKAGE" \
--progress plain \
--tag "$TAG" \
.