# Copyright 2022 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.


# This test uses subnetwork `cos-customizer-test` in default VPC for the preload VM.

substitutions:
  "_TEST": "network_subnet_test"
  "_INPUT_IMAGE": "cos-85-13310-1260-8"
  "_INPUT_PROJECT": "cos-cloud"
steps:
- name: "gcr.io/cloud-builders/bazel"
  args: ["run", "--spawn_strategy=standalone", ":cos_customizer", "--", "--norun"]
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
  args: [ 'gcloud', 'compute', 'networks', 'subnets',
          'create', 'cos-customizer-test',
          '--project', '${PROJECT_ID}', '--network', 'default', '--region', 'us-central1',
          '--range', '10.124.0.0/20'
  ]
- 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: ["run-script",
         "-script=preload.sh"]
- name: "bazel:cos_customizer"
  args: ["finish-image-build",
         "-machine-type=n1-standard-8",
         "-zone=us-central1-a",
         "-project=$PROJECT_ID",
         "-subnet=regions/us-central1/subnetworks/cos-customizer-test",
         "-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", "testing/util/run_test.wf.json"]
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
  args: [ 'gcloud', 'compute', 'networks', 'subnets',
          'delete', 'cos-customizer-test',
          '--project', '${PROJECT_ID}', '--region', 'us-central1',
  ]
options:
  machineType: "N1_HIGHCPU_8"
timeout: "7200s"
