# 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": "gpu_test"
  "_INPUT_IMAGE": "cos-69-10895-71-0"
  "_INPUT_PROJECT": "cos-cloud"
  "_DRIVER_VERSION": ""
  "_DEPS_DIR": ""
steps:
- name: 'gcr.io/cloud-builders/bazel'
  args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
- name: 'ubuntu'
  args: 
  - bash
  - -c
  - |
    ver="${_DRIVER_VERSION}"
    if [[ "${ver}" == *.run ]]; then
      sub="$(echo "${ver%.run}" | cut -d '-' -f 4)"
    else
      sub="${ver}"
    fi
    sed -i -e "s|%s|'${sub}'|" testing/${_TEST}/preload_test.cfg
- name: 'bazel:cos_customizer'
  args: ["start-image-build",
         "-build-context=testing/${_TEST}",
         "-image-name=${_INPUT_IMAGE}",
         "-image-project=${_INPUT_PROJECT}",
         "-gcs-bucket=${PROJECT_ID}_cloudbuild",
         "-gcs-workdir=customizer-$BUILD_ID"]
- name: 'bazel:cos_customizer'
  args: ["install-gpu",
         "-version=${_DRIVER_VERSION}",
         "-gpu-type=nvidia-tesla-k80",
         "-deps-dir=${_DEPS_DIR}"]
- name: 'bazel:cos_customizer'
  args: ["run-script",
         "-script=preload.sh"]
- name: 'bazel:cos_customizer'
  args: ["finish-image-build",
         "-zone=us-west1-b",
         "-project=$PROJECT_ID",
         "-image-name=preload-test-$BUILD_ID",
         "-image-project=$PROJECT_ID"]
- name: 'gcr.io/compute-image-tools/daisy'
  args: ["-project=$PROJECT_ID", "-zone=us-west1-b", "-var:image_name",
         "preload-test-$BUILD_ID", "-var:image_project", "$PROJECT_ID",
         "-var:test_cfg", "../${_TEST}/preload_test.cfg", "-var:vm_workflow",
         "./gpu_vm.wf.json", "testing/util/run_test.wf.json"]
options:
  machineType: 'N1_HIGHCPU_32'
timeout: "7200s"
