diff --git a/hack/binaries b/hack/binaries index c71b1f7c..c6b673f5 100755 --- a/hack/binaries +++ b/hack/binaries @@ -1,56 +1,16 @@ #!/usr/bin/env bash . $(dirname $0)/util +set -eu : ${TARGETPLATFORM=$CLI_PLATFORM} -: ${CONTINUOUS_INTEGRATION=} -set -ex +platformFlag="" +if [ -n "$TARGETPLATFORM" ]; then + platformFlag="--platform $TARGETPLATFORM" +fi -progressFlag="" -if [ "$CONTINUOUS_INTEGRATION" == "true" ]; then progressFlag="--progress=plain"; fi - -binariesDocker() { - mkdir -p bin/tmp - export DOCKER_BUILDKIT=1 - iidfile=$(mktemp -t docker-iidfile.XXXXXXXXXX) - - platformFlag="" - if [ -n "$TARGETPLATFORM" ]; then - platformFlag="--build-arg=TARGETPLATFORM=$TARGETPLATFORM" - fi - - docker build $platformFlag --target=binaries --iidfile $iidfile --force-rm . - iid=$(cat $iidfile) - containerID=$(docker create $iid copy) - docker cp $containerID:/ bin/tmp - mv bin/tmp/build* bin/ - rm -rf bin/tmp - docker rm $containerID - docker rmi -f $iid - rm -f $iidfile -} - -binaries() { - platformFlag="" - if [ ! -z "$TARGETPLATFORM" ]; then - platformFlag="--frontend-opt=platform=$TARGETPLATFORM" - fi - buildctl build $progressFlag --frontend=dockerfile.v0 \ - --local context=. --local dockerfile=. \ - --frontend-opt target=binaries $platformFlag \ - --output type=local,dest=./bin/ -} - -case $buildmode in -"buildkit") - binaries - ;; -"docker-buildkit") - binariesDocker - ;; -*) - echo "buildctl or docker with buildkit support is required" - exit 1 - ;; -esac +buildxCmd build $platformFlag \ + --target "binaries" \ + --output "type=local,dest=./bin/" \ + . diff --git a/hack/update-vendor b/hack/update-vendor index 29aae687..18dd3237 100755 --- a/hack/update-vendor +++ b/hack/update-vendor @@ -1,45 +1,16 @@ #!/usr/bin/env bash . $(dirname $0)/util -set -eu -o pipefail -x +set -eu -: ${CONTINUOUS_INTEGRATION=} +output=$(mktemp -d -t buildx-output.XXXXXXXXXX) -progressFlag="" -if [ "$CONTINUOUS_INTEGRATION" == "true" ]; then progressFlag="--progress=plain"; fi +buildxCmd build \ + --target "update" \ + --output "type=local,dest=$output" \ + --file "./hack/dockerfiles/vendor.Dockerfile" \ + . -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 +rm -rf ./vendor +cp -R "$output"/out/* . +rm -rf $output