#!/usr/bin/env bash TAG=$1 REPO=$2 PUSH=$3 set -eu -o pipefail : ${PLATFORMS=linux/amd64} : ${CONTINUOUS_INTEGRATION=} progressFlag="" if [ "$CONTINUOUS_INTEGRATION" == "true" ]; then progressFlag="--progress=plain"; fi usage() { echo "usage: ./hack/release [push]" exit 1 } if [ -z "$TAG" ] || [ -z "$REPO" ]; then usage fi pushFlag="" if [ "$PUSH" = "push" ]; then pushFlag="--exporter-opt push=true" fi tagLatest="" tagLatestRootless="" if [[ "$(git describe --tags --match "v[0-9]*")" == "$TAG" ]]; then tagLatest=",$REPO:latest" tagLatestRootless=",$REPO:rootless" fi set -x buildctl build $progressFlag --frontend=dockerfile.v0 \ --local context=. --local dockerfile=. \ --frontend-opt filename=./hack/dockerfiles/test.buildkit.Dockerfile \ --frontend-opt platform=$PLATFORMS \ --exporter image \ --exporter-opt name=$REPO:$TAG$tagLatest $pushFlag buildctl build $progressFlag --frontend=dockerfile.v0 \ --local context=. --local dockerfile=. \ --frontend-opt target=rootless \ --frontend-opt filename=./hack/dockerfiles/test.buildkit.Dockerfile \ --frontend-opt platform=$PLATFORMS \ --exporter image \ --exporter-opt name=$REPO:$TAG-rootless$tagLatestRootless $pushFlag