blob: 3025f22ccf2917d634928005356e7cac0c662634 [file] [log] [blame]
options:
machineType: 'N1_HIGHCPU_32'
env:
- 'DOCKER_CLI_EXPERIMENTAL=enabled'
steps:
- id: 'build-and-push'
name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args:
- '-c'
- |
docker run --privileged linuxkit/binfmt:a17941b47f5cb262638cfb49ffc59ac5ac2bf334-amd64
docker buildx create --name builder
docker buildx use builder
if [ "$_BUILD_TYPE" == "presubmit" ]; then
# If it's presubmit, push to us-docker.pkg.dev/cos-infra-prod/gcr-io-dev with BUILD_ID, presubmit-BUILD_ID tags
docker buildx build --platform linux/amd64,linux/arm64 --build-arg BUILDKIT_INLINE_CACHE=1 -f src/cmd/toolbox/Dockerfile -t us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/toolbox:${_TAG_NAME} -t us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/toolbox:${_BUILD_TYPE}-${_TAG_NAME} --cache-from us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/toolbox:latest --push src/cmd/toolbox
docker pull us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/toolbox:${_TAG_NAME}
elif [ "$_BUILD_TYPE" == "official" ]; then
# If it's official, push to us-docker.pkg.dev/cos-infra-prod/gcr-io-dev with latest tag, BUILD_ID and official-BUILD_ID tags
docker buildx build --platform linux/amd64,linux/arm64 --build-arg BUILDKIT_INLINE_CACHE=1 -f src/cmd/toolbox/Dockerfile -t us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/toolbox:${_TAG_NAME} -t us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/toolbox:${_BUILD_TYPE}-${_TAG_NAME} -t us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/toolbox:latest --cache-from us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/toolbox:latest --push src/cmd/toolbox
docker pull us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/toolbox:${_TAG_NAME}
# If it's official, push to cos-infra-prod/gcr.io. This will be depreciated after exit gates are done.
docker buildx build --platform linux/amd64,linux/arm64 --build-arg BUILDKIT_INLINE_CACHE=1 -f src/cmd/toolbox/Dockerfile -t gcr.io/${_OUTPUT_PROJECT}/toolbox:latest -t gcr.io/${_OUTPUT_PROJECT}/toolbox:${_TAG_NAME} --cache-from gcr.io/${_OUTPUT_PROJECT}/toolbox:latest --push src/cmd/toolbox
docker pull gcr.io/${_OUTPUT_PROJECT}/toolbox:${_TAG_NAME}
else
echo "Invalid BUILD_TYPE: $_BUILD_TYPE"
exit 1
fi
timeout: 7200s