build/cloudbuild-docker-pull-request.yaml (67 lines of code) (raw):

# Copyright 2021 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 # # https://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. timeout: 800s steps: - name: "gcr.io/cloud-builders/git" id: "unshallow" entrypoint: "/bin/bash" secretEnv: ['GITHUB_TOKEN'] args: - "-c" - | git remote set-url origin https://$${GITHUB_TOKEN}@${_REPO_URL} git fetch --unshallow git fetch --all - name: "gcr.io/cloud-builders/git" id: "find-folders-affected-by-pr" entrypoint: "/bin/bash" args: - "-c" - | echo "COMMIT_SHA: ${COMMIT_SHA}" changed_docker_folders=$(git diff --name-only ${COMMIT_SHA}^1 -r | grep "^docker/" | awk -F/ '{print $1 "/" $2 "/" $3}' | sort | uniq) for folder in $changed_docker_folders; do echo "Found change in: $folder" echo $folder >> /workspace/docker_folder done - name: 'gcr.io/cloud-builders/git' entrypoint: '/bin/bash' id: 'set-tag-engine-oauth-token' secretEnv: ['TAG_ENGINE_OAUTH_TOKEN'] args: - '-c' - | build_paths="/workspace/docker_folder" while IFS= read -r line; do if [[ $line == *"cdmc/tag_engine"* ]]; then echo "adding te_client_secret.json to $line" echo $${TAG_ENGINE_OAUTH_TOKEN} > ${line}/te_client_secret.json fi done < "$build_paths" - name: "gcr.io/cloud-builders/docker" id: "build" entrypoint: "/bin/bash" args: - "-c" - | build_paths="/workspace/docker_folder" while IFS= read -r line; do echo "Building: $line" image_name=$(echo $line | awk -F/ '{print $3}') if [[ $line == *"flex-templates"* ]]; then docker build \ --tag ${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_DOCKER_ARTIFACT_FLEX_REPO_NAME}/samples/$image_name:${SHORT_SHA} \ --build-arg=ARG_PIP_INDEX_URL=https://${_REGION}-python.pkg.dev/${PROJECT_ID}/${_PYTHON_ARTIFACT_REPO_NAME}/simple/ \ $line elif [[ $line == *"cdmc"* ]]; then docker build \ --tag ${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_DOCKER_ARTIFACT_CDMC_REPO_NAME}/cdmc/$image_name:${SHORT_SHA} \ $line fi done < "$build_paths" availableSecrets: secretManager: - versionName: ${_SECRET_MANAGER_VERSION} env: 'GITHUB_TOKEN' - versionName: ${_TAG_ENGINE_SECRET_VERSION} env: 'TAG_ENGINE_OAUTH_TOKEN' options: logging: CLOUD_LOGGING_ONLY