| # 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. | |
| substitutions: | |
| '_ZONE': 'us-west1-b' | |
| '_TEST_1': 'smoke_test' | |
| '_INPUT_IMAGE_1': 'cos-93-16623-461-15' | |
| '_TEST_2': 'gpu_test' | |
| '_INPUT_IMAGE_2': 'cos-113-18244-521-16' | |
| '_INPUT_PROJECT': 'cos-cloud' | |
| '_SERVICE_ACCOUNT': 'compute@cloud-image-docker-builder.google.com.iam.gserviceaccount.com' | |
| '_COS_CUSTOMIZER': 'cos_customizer' | |
| steps: | |
| - name: 'gcr.io/cloud-builders/docker' | |
| id: 'docker-build' | |
| entrypoint: '/bin/bash' | |
| args: | |
| - '-c' | |
| - | | |
| if [[ ${_COS_CUSTOMIZER} == 'cos_customizer' ]]; then | |
| docker build -f src/cmd/cos_customizer/Dockerfile -t cos_customizer . | |
| fi | |
| # TEST_1 workflow | |
| - name: '${_COS_CUSTOMIZER}' | |
| waitFor: 'docker-build' | |
| id: 'test-1-start-build' | |
| args: ['-local-state-workdir=.${_TEST_1}', | |
| 'start-image-build', | |
| '-build-context=testing/${_TEST_1}', | |
| '-image-name=${_INPUT_IMAGE_1}', | |
| '-image-project=${_INPUT_PROJECT}', | |
| '-gcs-bucket=${_PROJECT_NAME}_cloudbuild', | |
| '-gcs-workdir=customizer-${_TEST_1}-$BUILD_ID'] | |
| - name: '${_COS_CUSTOMIZER}' | |
| waitFor: 'test-1-start-build' | |
| id: 'test-1-run-script' | |
| args: ['-local-state-workdir=.${_TEST_1}', | |
| 'run-script', | |
| '-script=preload.sh'] | |
| - name: '${_COS_CUSTOMIZER}' | |
| waitFor: 'test-1-run-script' | |
| id: 'test-1-finish-build' | |
| args: ['-local-state-workdir=.${_TEST_1}', | |
| 'finish-image-build', | |
| '-zone=${_ZONE}', | |
| '-project=$PROJECT_ID', | |
| '-image-name=preload-test-t1-$BUILD_ID', | |
| '-image-project=$PROJECT_ID', | |
| '-service-account=${_SERVICE_ACCOUNT}'] | |
| - name: 'gcr.io/compute-image-tools/daisy' | |
| waitFor: 'test-1-finish-build' | |
| id: 'test-1-test-build' | |
| args: ['-project=$PROJECT_ID', '-zone=${_ZONE}', '-var:image_name', | |
| 'preload-test-t1-$BUILD_ID', '-var:image_project', '$PROJECT_ID', | |
| '-var:daisy_gcs_bucket', '${_PROJECT_NAME}-daisy-bkt', | |
| '-var:test_cfg', '../${_TEST_1}/preload_test.cfg', 'testing/util/run_test.wf.json'] | |
| # TEST_2 workflow | |
| - name: 'busybox' | |
| args: ['sed', '-i', '-e', 's|%s|"535.274.02"|', | |
| 'testing/${_TEST_2}/preload_test.cfg'] | |
| - name: '${_COS_CUSTOMIZER}' | |
| waitFor: 'docker-build' | |
| id: 'test-2-start-build' | |
| args: ['-local-state-workdir=.${_TEST_2}', | |
| 'start-image-build', | |
| '-build-context=testing/${_TEST_2}', | |
| '-image-name=${_INPUT_IMAGE_2}', | |
| '-image-project=${_INPUT_PROJECT}', | |
| '-gcs-bucket=${_PROJECT_NAME}_cloudbuild', | |
| '-gcs-workdir=customizer-${_TEST_2}-$BUILD_ID'] | |
| - name: '${_COS_CUSTOMIZER}' | |
| waitFor: 'test-2-start-build' | |
| id: 'test-2-install-gpu' | |
| args: ['-local-state-workdir=.${_TEST_2}', | |
| 'install-gpu', | |
| '-version=535.274.02', | |
| '-gpu-type=nvidia-tesla-t4'] | |
| - name: '${_COS_CUSTOMIZER}' | |
| waitFor: 'test-2-install-gpu' | |
| id: 'test-2-run-script' | |
| args: ['-local-state-workdir=.${_TEST_2}', | |
| 'run-script', | |
| '-script=preload.sh'] | |
| - name: '${_COS_CUSTOMIZER}' | |
| waitFor: 'test-2-run-script' | |
| id: 'test-2-finish-build' | |
| args: ['-local-state-workdir=.${_TEST_2}', | |
| 'finish-image-build', | |
| '-zone=${_ZONE}', | |
| '-project=$PROJECT_ID', | |
| '-image-name=preload-test-t2-$BUILD_ID', | |
| '-image-project=$PROJECT_ID', | |
| '-service-account=${_SERVICE_ACCOUNT}'] | |
| - name: 'gcr.io/compute-image-tools/daisy' | |
| waitFor: 'test-2-finish-build' | |
| id: 'test-2-test-build' | |
| args: ['-project=$PROJECT_ID', '-zone=${_ZONE}', '-var:image_name', | |
| 'preload-test-t2-$BUILD_ID', '-var:image_project', '$PROJECT_ID', | |
| '-var:daisy_gcs_bucket', '${_PROJECT_NAME}-daisy-bkt', | |
| '-var:test_cfg', '../${_TEST_2}/preload_test.cfg', '-var:vm_workflow', | |
| './gpu_vm.wf.json', 'testing/util/run_test.wf.json'] | |
| options: | |
| machineType: 'N1_HIGHCPU_32' | |
| timeout: '7200s' |