#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#

{% from 'shared_jinja.yml' import github_access with context %}

---

resource_types:
- name: gci
  type: registry-image
  source:
    repository: smgoller/gci-resource

resources:
- name: build-concourse-dockerfile
  type: git
  source:
    {{ github_access() | indent(4) }}
    branch: ((geode-build-branch))
    paths:
    - ci/docker/*

- name: build-concourse-docker-image
  type: docker-image
  source:
    username: ((docker-username))
    password: ((docker-password))
    repository: gcr.io/((gcp-project))/((pipeline-prefix))concourse

- name: windows-base-family
  type: gci
  check_every: 24h
  source:
    key: ((concourse-gcp-key))
    family_project: windows-cloud
    family: ((windows-base-family))

- name: linux-base-family
  type: gci
  check_every: 24h
  source:
    key: ((concourse-gcp-key))
    family_project: ubuntu-os-cloud
    family: ((linux-base-family))

- name: openjdk8-docker-image
  type: docker-image
  source:
    repository: bellsoft/liberica-openjdk-debian
    tag: 8

- name: geode-benchmarks-image
  type: git
  source:
    branch: ((geode-build-branch))
    paths:
    - infrastructure/scripts/aws/image
    uri: https://github.com/((geode-fork))/geode-benchmarks.git

- name: google-geode-builder
  type: git
  source:
    branch: ((geode-build-branch))
    paths:
    - ci/scripts/build_image.sh
    - ci/images/google-geode-builder
    {{ github_access() | indent(4) }}

- name: google-windows-geode-builder
  type: git
  source:
    branch: ((geode-build-branch))
    paths:
    - ci/scripts/build_image.sh
    - ci/images/google-windows-geode-builder
    {{ github_access() | indent(4) }}

- name: alpine-docker-image
  type: docker-image
  source:
    repository: alpine
    tag: latest
    skip_download: true

- name: alpine-tools-dockerfile
  type: git
  source:
    branch: ((geode-build-branch))
    paths:
    - ci/images/alpine-tools/*
    {{ github_access() | indent(4) }}

- name: alpine-tools-docker-image
  type: docker-image
  source:
    username: ((docker-username))
    password: ((docker-password))
    repository: gcr.io/((gcp-project))/((pipeline-prefix))alpine-tools

- name: bionic-scm-docker-image
  type: registry-image
  icon: docker
  source:
    repository: buildpack-deps
    tag: bionic-scm

- name: test-container-dockerfile
  type: git
  source:
    branch: ((geode-build-branch))
    paths:
    - ci/images/test-container/*
    {{ github_access() | indent(4) }}

- name: test-container-docker-image
  type: docker-image
  source:
    username: ((docker-username))
    password: ((docker-password))
    repository: gcr.io/((gcp-project))/((pipeline-prefix))test-container

- name: concourse-metadata-resource-dockerfile
  type: git
  source:
    {{ github_access() | indent(4) }}
    branch: ((geode-build-branch))
    paths:
    - ci/resource-types/concourse-metadata-resource/*

- name: concourse-metadata-resource-docker-image
  type: docker-image
  source:
    username: ((docker-username))
    password: ((docker-password))
    repository: gcr.io/((gcp-project))/((pipeline-prefix))concourse-metadata-resource

- name: metric-tools-dockerfile
  type: git
  source:
    {{ github_access() | indent(4) }}
    branch: ((geode-build-branch))
    paths:
    - ci/images/metric-tools/*

- name: metric-tools-docker-image
  type: docker-image
  source:
    username: ((docker-username))
    password: ((docker-password))
    repository: gcr.io/((gcp-project))/((pipeline-prefix))metric-tools

- name: gce-instances-resource-dockerfile
  type: git
  source:
    {{ github_access() | indent(4) }}
    branch: ((geode-build-branch))
    paths:
    - ci/resource-types/gce-instances-resource/*

- name: gce-instances-resource-docker-image
  type: docker-image
  source:
    username: ((docker-username))
    password: ((docker-password))
    repository: gcr.io/((gcp-project))/((pipeline-prefix))gce-instances-resource

- name: github-pr-resource-image
  type: docker-image
  source:
    username: ((docker-username))
    password: ((docker-password))
    repository: gcr.io/((gcp-project))/((pipeline-prefix))github-pr-resource

- name: github-pr-resource-dockerfile
  type: git
  source:
    branch: master
    uri: https://github.com/digitalocean/github-pr-resource.git
  version:
    ref: 1abb4b2a162e78099dab0b30144fec1e6c9b696d

- name: gcs-resource-with-json-content
  icon: github-circle
  type: git
  check_every: 168h
  source:
    branch: master
    uri: https://github.com/steve-sienk/gcs-resource.git

- name: gcs-resource-with-json-content-image
  icon: docker
  type: docker-image
  source:
    username: ((docker-username))
    password: ((docker-password))
    repository: gcr.io/((gcp-project))/((pipeline-prefix))gcs-resource-with-json-content

jobs:
- name: build-github-pr-resource-image
  public: ((public-pipelines))
  serial: true
  plan:
    - get: alpine-tools-docker-image
      passed: [build-alpine-tools-docker-image]
    - get:  github-pr-resource-dockerfile
    - put: github-pr-resource-image
      params:
        build: github-pr-resource-dockerfile
        tag_as_latest: true

- name: build-concourse-docker-image
  public: ((public-pipelines))
  serial: true
  plan:
  - aggregate:
    - get: openjdk8-docker-image
      trigger: true
    - get: build-concourse-dockerfile
      trigger: true
  - put: build-concourse-docker-image
    params:
      build: build-concourse-dockerfile/ci/docker
      tag_as_latest: true

- name: build-geode-benchmarks-image
  public: ((public-pipelines))
  serial: true
  plan:
  - in_parallel:
    - get: geode-benchmarks-image
      trigger: true
    - get: alpine-tools-docker-image
      passed: [build-alpine-tools-docker-image]
  - task: build-image
    timeout: 1h
    image: alpine-tools-docker-image
    config:
      inputs:
      - name: geode-benchmarks-image
      outputs:
      - name: results
      platform: linux
      params:
        AWS_ACCESS_KEY_ID: ((benchmarks-access-key-id))
        AWS_SECRET_ACCESS_KEY: ((benchmarks-secret-access-key))
        AWS_DEFAULT_REGION: us-west-2
        AWS_REGION: us-west-2
        PURPOSE: ((pipeline-prefix))geode-benchmarks
      run:
        path: bash
        args:
          - -ec
          - |-
            pushd geode-benchmarks-image/infrastructure/scripts/aws/image
            packer build -var "purpose=${PURPOSE}" packer.json
            popd

- name: build-google-geode-builder
  public: ((public-pipelines))
  serial: true
  plan:
  - aggregate:
    - get: test-container-docker-image
      passed: [build-test-container-docker-image]
      trigger: true
    - get: google-geode-builder
      trigger: true
    - get: alpine-tools-docker-image
      passed: [build-alpine-tools-docker-image]
    - get: linux-base-family
      trigger: true
  - task: build-image
    timeout: 1h
    image: alpine-tools-docker-image
    config:
      inputs:
      - name: google-geode-builder
      - name: linux-base-family
        path: base-family
      outputs:
      - name: results
      platform: linux
      params:
        GEODE_DOCKER_IMAGE: gcr.io/((gcp-project))/((pipeline-prefix))test-container
        PIPELINE_PREFIX: ((pipeline-prefix))
        GCP_PROJECT: ((gcp-project))
        CONCOURSE_GCP_KEY: "((concourse-gcp-key))"
        JAVA_BUILD_VERSION: 8
      run:
        path: google-geode-builder/ci/scripts/build_image.sh
        args:
        - google-geode-builder/ci/images/google-geode-builder/packer.json

- name: build-google-windows-geode-builder
  public: ((public-pipelines))
  serial: true
  plan:
  - aggregate:
    - get: google-windows-geode-builder
      trigger: true
    - get: alpine-tools-docker-image
      passed:
      - build-alpine-tools-docker-image
    - get: windows-base-family
      trigger: true
  - task: build-image
    timeout: 3h
    attempts: 3
    image: alpine-tools-docker-image
    config:
      inputs:
      - name: google-windows-geode-builder
      - name: windows-base-family
        path: base-family
      outputs:
      - name: results
      platform: linux
      params:
        GEODE_DOCKER_IMAGE: gcr.io/((gcp-project))/((pipeline-prefix))test-container
        PIPELINE_PREFIX: ((pipeline-prefix))
        GCP_PROJECT: ((gcp-project))
        CONCOURSE_GCP_KEY: "((concourse-gcp-key))"
        JAVA_BUILD_VERSION: 8
      run:
        path: google-windows-geode-builder/ci/scripts/build_image.sh
        args:
          - google-windows-geode-builder/ci/images/google-windows-geode-builder/packer.json

- name: build-alpine-tools-docker-image
  public: ((public-pipelines))
  serial: true
  plan:
  - aggregate:
    - get: alpine-docker-image
      trigger: true
    - get: alpine-tools-dockerfile
      trigger: true
  - put: alpine-tools-docker-image
    params:
      build: alpine-tools-dockerfile/ci/images/alpine-tools
      tag_as_latest: true

- name: build-test-container-docker-image
  public: ((public-pipelines))
  serial: true
  plan:
  - aggregate:
    - get: bionic-scm-docker-image
      trigger: true
    - get: test-container-dockerfile
      trigger: true
  - put: test-container-docker-image
    params:
      build: test-container-dockerfile/ci/images/test-container
      tag_as_latest: true

- name: build-concourse-metadata-resource-docker-image
  public: ((public-pipelines))
  serial: true
  plan:
  - aggregate:
    - get: alpine-docker-image
      trigger: true
    - get: concourse-metadata-resource-dockerfile
      trigger: true
  - put: concourse-metadata-resource-docker-image
    params:
      build: concourse-metadata-resource-dockerfile/ci/resource-types/concourse-metadata-resource
      tag_as_latest: true

- name: build-metric-tools-docker-image
  public: ((public-pipelines))
  serial: true
  plan:
  - aggregate:
    - get: alpine-docker-image
      trigger: true
    - get: metric-tools-dockerfile
      trigger: true
  - put: metric-tools-docker-image
    params:
      build: metric-tools-dockerfile/ci/images/metric-tools
      tag_as_latest: true

- name: build-gce-instances-resource-docker-image
  public: ((public-pipelines))
  serial: true
  plan:
  - aggregate:
    - get: alpine-docker-image
      trigger: true
    - get: gce-instances-resource-dockerfile
      trigger: true
  - put: gce-instances-resource-docker-image
    params:
      build: gce-instances-resource-dockerfile/ci/resource-types/gce-instances-resource
      tag_as_latest: true

- name: build-json-gcs-resource-image
  serial: true
  public: false
  plan:
  - get: gcs-resource-with-json-content
    trigger: true
  - put: gcs-resource-with-json-content-image
    params:
      build: gcs-resource-with-json-content
      tag_as_latest: true
