#!/usr/bin/env bash . $(dirname $0)/util set -eu -o pipefail -x : ${CONTINUOUS_INTEGRATION=} progressFlag="" if [ "$CONTINUOUS_INTEGRATION" == "true" ]; then progressFlag="--progress=plain"; fi gogo_version=$(awk '$1 == "github.com/gogo/protobuf" { print $2 }' vendor.conf) case $buildmode in "buildkit") output=$(mktemp -d -t buildctl-output.XXXXXXXXXX) buildctl build $progressFlag --frontend=dockerfile.v0 --local context=. --local dockerfile=. \ --frontend-opt build-arg:GOGO_VERSION=$gogo_version \ --frontend-opt target=update \ --frontend-opt filename=./hack/dockerfiles/generated-files.buildkit.Dockerfile \ --exporter=local --exporter-opt output=$output cp -R "$output/generated-files/" . rm -rf $output ;; *) iidfile=$(mktemp -t docker-iidfile.XXXXXXXXXX) case $buildmode in "docker-buildkit") export DOCKER_BUILDKIT=1 docker build --build-arg GOGO_VERSION=$gogo_version --iidfile $iidfile -f ./hack/dockerfiles/generated-files.buildkit.Dockerfile --target update --force-rm . ;; *) docker build --build-arg GOGO_VERSION=$gogo_version --iidfile $iidfile -f ./hack/dockerfiles/generated-files.Dockerfile --target update --force-rm . ;; esac iid=$(cat $iidfile) cid=$(docker create $iid noop) docker export $cid | tar -xf - --strip-components=1 generated-files docker rm $cid rm -f $iidfile ;; esac