| # Copyright 2018 Google LLC |
| # |
| # Licensed under the Apache License, Version 2.0 (the License); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an AS IS BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| steps: |
| - name: 'gcr.io/cloud-builders/docker' |
| entrypoint: 'bash' |
| args: |
| - '-c' |
| - | |
| cat <<EOF | docker build -t bazel - |
| FROM gcr.io/cloud-builders/bazel |
| RUN apt-get update && apt-get install -y mtools dosfstools |
| EOF |
| - name: 'bazel' |
| args: ['test', '--remote_cache=${_BUILD_TOOLS_CACHE}', '--google_default_credentials', '--spawn_strategy=standalone','--','...','-//src/pkg/tools/...'] |
| - name: 'gcr.io/cloud-builders/docker' |
| entrypoint: 'bash' |
| args: |
| - '-c' |
| - | |
| if [ "$_BUILD_TYPE" == "presubmit" ]; then |
| # If it's presubmit, push to us-docker.pkg.dev/cos-infra-prod/gcr-io-dev with TAG_NAME and presubmit-TAG_NAME tags |
| docker build -t 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:${_TAG_NAME}' -t 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:${_BUILD_TYPE}-${_TAG_NAME}' -f 'src/cmd/cos_customizer/Dockerfile' . |
| docker push 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:${_TAG_NAME}' |
| docker push 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:${_BUILD_TYPE}-${_TAG_NAME}' |
| elif [ "$_BUILD_TYPE" == "official" ]; then |
| # If it's official, push to us-docker.pkg.dev/cos-infra-prod/gcr-io-dev with TAG_NAME, official-TAG_NAME and latest tags |
| docker build -t 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:${_TAG_NAME}' -t 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:${_BUILD_TYPE}-${_TAG_NAME}' -t 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:latest' -f 'src/cmd/cos_customizer/Dockerfile' . |
| docker push 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:${_TAG_NAME}' |
| docker push 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:${_BUILD_TYPE}-${_TAG_NAME}' |
| docker push 'us-docker.pkg.dev/${_OUTPUT_PROJECT}/gcr-io-dev/cos-customizer:latest' |
| # If it's official, also push to gcr.io |
| docker build -t 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:${_TAG_NAME}' -t 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:${_BUILD_TYPE}-${_TAG_NAME}' -t 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:latest' -f 'src/cmd/cos_customizer/Dockerfile' . |
| docker push 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:${_TAG_NAME}' |
| docker push 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:${_BUILD_TYPE}-${_TAG_NAME}' |
| docker push 'gcr.io/${_OUTPUT_PROJECT}/cos-customizer:latest' |
| else |
| echo "Invalid BUILD_TYPE: $_BUILD_TYPE" |
| exit 1 |
| fi |
| options: |
| machineType: 'N1_HIGHCPU_8' |
| substitutionOption: 'MUST_MATCH' |
| substitutions: |
| _BUILD_TOOLS_CACHE: 'https://storage.googleapis.com/cos-infra-prod_cloudbuild/cos-tools-cache' |
| # 25 minute timeout; concurrent arm64/amd64 builds take time |
| timeout: '1500s' |