#!/usr/bin/env bash . $(dirname $0)/util set -eu -o pipefail : ${BUILDX_NOCACHE=} : ${TEST_COVERAGE=} importCacheFlags="" if [ -n "$cacheRefFrom" ]; then if [ "$cacheType" = "local" ]; then for ref in $cacheRefFrom; do importCacheFlags="$importCacheFlags--cache-from=type=local,src=$ref " done fi fi iid="buildx-tests" iidfile=$(mktemp -t docker-iidfile.XXXXXXXXXX) coverageVol="" coverageFlags="" if [ "$TEST_COVERAGE" = "1" ]; then covdir="$(pwd)/coverage" mkdir -p "$covdir" coverageVol="-v $covdir:/coverage" coverageFlags="-coverprofile=/coverage/coverage.txt -covermode=atomic" fi buildxCmd build $importCacheFlags \ --target "integration-tests" \ --output "type=docker,name=$iid" \ $currentcontext cacheVolume="buildx-cache" if ! docker inspect "$cacheVolume" > /dev/null 2>&1; then cacheVolume=$(docker create --name=buildx-cache -v /root/.cache -v /go/pkg/mod alpine) fi docker run --rm -v /tmp $coverageVol --volumes-from=$cacheVolume --privileged $iid go test $coverageFlags ${TESTFLAGS:--v} ${TESTPKGS:-./...} if [ -n "$BUILDX_NOCACHE" ]; then docker rm -v $cacheVolume fi rm "$iidfile" docker rmi $iid