#!/usr/bin/env bash . $(dirname $0)/util set -eu -o pipefail -x : ${CONTINUOUS_INTEGRATION=} progressFlag="" if [ "$CONTINUOUS_INTEGRATION" == "true" ]; then progressFlag="--progress=plain"; fi case $buildmode in "buildkit") output=$(mktemp -d -t buildctl-output.XXXXXXXXXX) buildctl build $progressFlag --frontend=dockerfile.v0 --local context=. --local dockerfile=. \ --frontend-opt target=update \ --frontend-opt filename=./hack/dockerfiles/vendor.Dockerfile \ --output type=local,dest=$output rm -rf ./vendor cp -R "$output/out/" . rm -rf $output ;; *) iidfile=$(mktemp -t docker-iidfile.XXXXXXXXXX) case $buildmode in "docker-buildkit") export DOCKER_BUILDKIT=1 docker build --iidfile $iidfile -f ./hack/dockerfiles/vendor.Dockerfile --target update --force-rm . ;; *) echo "buildctl or docker with buildkit support is required" exit 1 ;; esac iid=$(cat $iidfile) cid=$(docker create $iid noop) rm -rf ./vendor docker cp $cid:/out/go.mod . docker cp $cid:/out/go.sum . docker cp $cid:/out/vendor . docker rm $cid rm -f $iidfile ;; esac