# 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:
  "_TEST_1": "smoke_test"
  "_INPUT_IMAGE_1": "cos-dev-69-10895-0-0"
  "_TEST_2": "gpu_test"
  "_INPUT_IMAGE_2": "cos-89-16108-798-1"
  "_INPUT_PROJECT": "cos-cloud"
steps:
- name: 'gcr.io/cloud-builders/bazel'
  id: "docker-build"
  args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
# TEST_1 workflow
- name: 'bazel: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_ID}_cloudbuild",
         "-gcs-workdir=customizer-${_TEST_1}-$BUILD_ID"]
- name: 'bazel:cos_customizer'
  waitFor: "test-1-start-build"
  id: "test-1-run-script"
  args: ["-local-state-workdir=.${_TEST_1}",
         "run-script",
         "-script=preload.sh"]
- name: 'bazel:cos_customizer'
  waitFor: "test-1-run-script"
  id: "test-1-finish-build"
  args: ["-local-state-workdir=.${_TEST_1}",
         "finish-image-build",
         "-zone=us-west1-b",
         "-project=$PROJECT_ID",
         "-image-name=preload-test-t1-$BUILD_ID",
         "-image-project=$PROJECT_ID"]
- name: 'gcr.io/compute-image-tools/daisy'
  waitFor: "test-1-finish-build"
  id: "test-1-test-build"
  args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
         "preload-test-t1-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
         "-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|'450.216.04'|",
         "testing/${_TEST_2}/preload_test.cfg"]
- name: 'bazel: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_ID}_cloudbuild",
         "-gcs-workdir=customizer-${_TEST_2}-$BUILD_ID"]
- name: 'bazel:cos_customizer'
  waitFor: "test-2-start-build"
  id: "test-2-install-gpu"
  args: ["-local-state-workdir=.${_TEST_2}",
         "install-gpu",
         "-version=450.216.04",
         "-gpu-type=nvidia-tesla-t4"]
- name: 'bazel:cos_customizer'
  waitFor: "test-2-install-gpu"
  id: "test-2-run-script"
  args: ["-local-state-workdir=.${_TEST_2}",
         "run-script",
         "-script=preload.sh"]
- name: 'bazel:cos_customizer'
  waitFor: "test-2-run-script"
  id: "test-2-finish-build"
  args: ["-local-state-workdir=.${_TEST_2}",
         "finish-image-build",
         "-zone=us-west1-b",
         "-project=$PROJECT_ID",
         "-image-name=preload-test-t2-$BUILD_ID",
         "-image-project=$PROJECT_ID"]
- name: 'gcr.io/compute-image-tools/daisy'
  waitFor: "test-2-finish-build"
  id: "test-2-test-build"
  args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
         "preload-test-t2-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
         "-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"
