---
.gce_variables: &gce_variables
  GCE_USER: travis
  SSH_USER: $GCE_USER
  CLOUD_MACHINE_TYPE: "g1-small"
  CI_PLATFORM: "gce"
  PRIVATE_KEY: $GCE_PRIVATE_KEY

.cache: &cache
  cache:
    key: "$CI_BUILD_REF_NAME"
    paths:
      - downloads/
      - $HOME/.cache

.gce: &gce
  extends: .testcases
  <<: *cache
  variables:
    <<: *gce_variables
  tags:
    - gce
  except: ['triggers']
  only: [/^pr-.*$/]

.centos_weave_kubeadm_variables: &centos_weave_kubeadm_variables
  # stage: deploy-part1
  UPGRADE_TEST: "graceful"

.centos7_multus_calico_variables: &centos7_multus_calico_variables
  # stage: deploy-gce
  UPGRADE_TEST: "graceful"

# Builds for PRs only (premoderated by unit-tests step) and triggers (auto)
### PR JOBS PART1

gce_ubuntu18-flannel-aio:
  stage: deploy-part1
  <<: *gce
  when: manual

### PR JOBS PART2

gce_coreos-calico-aio:
  stage: deploy-gce
  <<: *gce
  when: on_success

gce_centos7-flannel-addons:
  stage: deploy-gce
  <<: *gce
  when: manual

### MANUAL JOBS

gce_centos-weave-kubeadm-sep:
  stage: deploy-gce
  extends: .gce
  variables:
    <<: *centos_weave_kubeadm_variables
  when: on_success
  only: ['triggers']
  except: []

gce_ubuntu-weave-sep:
  stage: deploy-gce
  <<: *gce
  when: manual
  only: ['triggers']
  except: []

gce_coreos-calico-sep-triggers:
  stage: deploy-gce
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

gce_ubuntu-canal-ha-triggers:
  stage: deploy-special
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

gce_centos7-flannel-addons-triggers:
  stage: deploy-gce
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

gce_ubuntu-weave-sep-triggers:
  stage: deploy-gce
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

# More builds for PRs/merges (manual) and triggers (auto)


gce_ubuntu-canal-ha:
  stage: deploy-special
  <<: *gce
  when: manual

gce_ubuntu-canal-kubeadm:
  stage: deploy-gce
  <<: *gce
  when: manual

gce_ubuntu-canal-kubeadm-triggers:
  stage: deploy-gce
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

gce_ubuntu-flannel-ha:
  stage: deploy-gce
  <<: *gce
  when: manual

gce_centos-weave-kubeadm-triggers:
  stage: deploy-gce
  extends: .gce
  variables:
    <<: *centos_weave_kubeadm_variables
  when: on_success
  only: ['triggers']
  except: []

gce_ubuntu-contiv-sep:
  stage: deploy-special
  <<: *gce
  when: manual

gce_coreos-cilium:
  stage: deploy-special
  <<: *gce
  when: manual

gce_ubuntu18-cilium-sep:
  stage: deploy-special
  <<: *gce
  when: manual

gce_rhel7-weave:
  stage: deploy-gce
  <<: *gce
  when: manual

gce_rhel7-weave-triggers:
  stage: deploy-gce
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

gce_debian9-calico-upgrade:
  stage: deploy-gce
  <<: *gce
  when: manual

gce_debian9-calico-triggers:
  stage: deploy-gce
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

gce_coreos-canal:
  stage: deploy-gce
  <<: *gce
  when: manual

gce_coreos-canal-triggers:
  stage: deploy-gce
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

gce_rhel7-canal-sep:
  stage: deploy-special
  <<: *gce
  when: manual

gce_rhel7-canal-sep-triggers:
  stage: deploy-gce
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

gce_centos7-calico-ha:
  stage: deploy-special
  <<: *gce
  when: manual

gce_centos7-calico-ha-triggers:
  stage: deploy-gce
  <<: *gce
  when: on_success
  only: ['triggers']
  except: []

gce_centos7-kube-router:
  stage: deploy-special
  <<: *gce
  when: manual

gce_centos7-multus-calico:
  stage: deploy-gce
  extends: .gce
  variables:
    <<: *centos7_multus_calico_variables
  when: manual

gce_oracle-canal:
  stage: deploy-gce
  <<: *gce
  when: manual
  except: ['triggers']
  only: ['master', /^pr-.*$/]

gce_opensuse-canal:
  stage: deploy-gce
  <<: *gce
  when: manual

# no triggers yet https://github.com/kubernetes-incubator/kargo/issues/613
gce_coreos-alpha-weave-ha:
  stage: deploy-special
  <<: *gce
  when: manual

gce_coreos-kube-router:
  stage: deploy-special
  <<: *gce
  when: manual

gce_ubuntu-kube-router-sep:
  stage: deploy-special
  <<: *gce
  when: manual
