---
###########
# ANCHORS #
###########
- docker_job_boiler_plate: &docker_job_boiler_plate
    name: docker_job_boiler_plate

    project-type: freestyle
    node: '{build-node}'

    ######################
    # Default parameters #
    ######################

    branch: master
    submodule-recursive: true

    # default params for docker jobs
    pre_build_script: ''
    post_build_script: ''
    docker_root: '$WORKSPACE'
    docker_build_args: ''
    docker_name: 'unnamed'
    # Default to LF standard 'snapshots' docker registry
    docker_registry: '$DOCKER_REGISTRY:10003'
    docker_tag: 'latest'

    #####################
    # Job Configuration #
    #####################

    properties:
      - lf-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - lf-infra-parameters:
          branch: '{branch}'
          project: '{project}'
          stream: '{stream}'
          lftools-version: '{lftools-version}'

    wrappers:
      - lf-infra-wrappers:
          build-timeout: '{build-timeout}'
          jenkins-ssh-credential: '{jenkins-ssh-credential}'

    publishers:
      - lf-infra-publish

- docker_verify_boiler_plate: &docker_verify_boiler_plate
    name: docker_verify_boiler_plate

    concurrent: true

    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    triggers:
      - gerrit-trigger-patch-submitted:
          status-context: '{project}-Docker-Verify'
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '{files}'

- docker_merge_boiler_plate: &docker_merge_boiler_plate
    name: docker_merge_boiler_plate

    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    triggers:
      - gerrit-trigger-patch-merged:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '{files}'
      - pollscm:
          cron: ''

#################
# JOB TEMPLATES #
#################
- job-template:
    name: '{project-name}-{stream}-merge-docker'
    # Job template for Docker merge jobs
    #
    # The purpose of this job template is to run a docker build, and potentially
    # test validation of the docker image

    <<: *docker_job_boiler_plate
    # yamllint disable-line rule:key-duplicates
    <<: *docker_merge_boiler_plate

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            BUILD_MODE=SNAPSHOT
            DOCKERREGISTRY={docker_registry}
      # Do the docker build
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh

- job-template:
    name: '{project-name}-{stream}-merge-docker-cascade-trigger'
    # Job template for Docker merge jobs
    #
    # The purpose of this job template is to run a docker build, and potentially
    # test validation of the docker image. This job is triggered by the it's corresponding
    # job that builds the artifacts from which the docker image is built from. Projects
    # using the {project-name}-{stream}-merge-docker job should move to this job. Because
    # the {project-name}-{stream}-merge-docker has no garanties that the docker image is built
    # from merged artifact.

    <<: *docker_job_boiler_plate
    # yamllint disable-line rule:key-duplicates
    <<: *docker_merge_boiler_plate

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            BUILD_MODE=SNAPSHOT
            DOCKERREGISTRY={docker_registry}
      # Do the docker build
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh
    triggers:
      - reverse:
          jobs:
            - '{parent_job}'
          result: 'success'

- job-template:
    name: '{project-name}-{stream}-verify-docker'
    # Job template for Docker verify jobs
    #
    # The purpose of this job template is to run a docker build, and potentially
    # test validation of the docker image

    ######################
    # Default parameters #
    ######################

    <<: *docker_job_boiler_plate
    # yamllint disable-line rule:key-duplicates
    <<: *docker_verify_boiler_plate

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            BUILD_MODE=SNAPSHOT
            DOCKERREGISTRY={docker_registry}
      # Do the docker build
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'

- job-template:
    name: '{project-name}-{stream}-verify-docker-cascade-trigger'
    # Job template for Docker verify jobs
    #
    # The purpose of this job template is to run a docker build, and potentially
    # test validation of the docker image. This job is triggered by the it's corresponding
    # job that builds the artifacts from which the docker image is built from. Projects
    # using the {project-name}-{stream}-verify-docker job should move to this job. Because
    # the {project-name}-{stream}-verify-docker has no garanties that the docker image is built
    # from merged artifact.

    ######################
    # Default parameters #
    ######################

    <<: *docker_job_boiler_plate
    # yamllint disable-line rule:key-duplicates
    <<: *docker_verify_boiler_plate

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            BUILD_MODE=SNAPSHOT
            DOCKERREGISTRY={docker_registry}
      # Do the docker build
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
    triggers:
      - reverse:
          jobs:
            - '{parent_job}'
          result: 'success'

- job-template:
    name: '{project-name}-{stream}-release-version-docker-daily-no-sonar'
    # Job template for Docker daily release jobs
    #
    # The purpose of this job template is to run "docker build and docker push"
    # for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    <<: *docker_job_boiler_plate

    docker_registry: '$DOCKER_REGISTRY:10003'

    scm:
      - lf-infra-gerrit-scm:
          jenkins-ssh-credential: '{jenkins-ssh-credential}'
          git-url: '$GIT_URL/$PROJECT'
          refspec: '$GERRIT_REFSPEC'
          branch: '$GERRIT_BRANCH'
          submodule-recursive: true
          choosing-strategy: default

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=STAGING

      # Do the docker build
      - shell: !include-raw: ../shell/snapshot-strip.sh
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh

    triggers:
      # 11 AM UTC
      - timed: '@daily'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

- job-template:
    name: '{project-name}-{stream}-release-version-docker-daily-no-sonar-cascade-trigger'
    # Job template for Docker daily release job.
    #
    # The purpose of this job template is to run "docker build and docker push"
    # for projects using this template. This job is triggered by the daily build
    # that builds the artifacts required for building the Docker image.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    <<: *docker_job_boiler_plate

    docker_registry: '$DOCKER_REGISTRY:10003'

    scm:
      - lf-infra-gerrit-scm:
          jenkins-ssh-credential: '{jenkins-ssh-credential}'
          git-url: '$GIT_URL/$PROJECT'
          refspec: '$GERRIT_REFSPEC'
          branch: '$GERRIT_BRANCH'
          submodule-recursive: true
          choosing-strategy: default

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=STAGING

      # Do the docker build
      - shell: !include-raw: ../shell/snapshot-strip.sh
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh

    triggers:
      - reverse:
          jobs:
            - '{parent_job}'
          result: 'success'

- job-template:
    name: '{project-name}-{subproject}-{stream}-merge-docker'
    # Job template for Docker merge jobs
    #
    # The purpose of this job template is to run a docker build, and potentially
    # test validation of the docker image

    <<: *docker_job_boiler_plate
    # yamllint disable-line rule:key-duplicates
    <<: *docker_merge_boiler_plate

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=SNAPSHOT
      # Do the docker build
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh

- job-template:
    name: '{project-name}-{subproject}-{stream}-merge-docker-cascade-trigger'
    # Job template for Docker merge jobs
    #
    # The purpose of this job template is to run a docker build, and potentially
    # test validation of the docker image. This job is triggered by the merge job
    # that builds the artifacts required for building the Docker image.

    <<: *docker_job_boiler_plate
    # yamllint disable-line rule:key-duplicates
    <<: *docker_merge_boiler_plate

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=SNAPSHOT
      # Do the docker build
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh
    triggers:
      - reverse:
          jobs:
            - '{parent_job}'
          result: 'success'

- job-template:
    name: '{project-name}-{subproject}-{stream}-verify-docker'
    # Job template for Docker verify jobs
    #
    # The purpose of this job template is to run a docker build, and potentially
    # test validation of the docker image

    ######################
    # Default parameters #
    ######################

    <<: *docker_job_boiler_plate
    # yamllint disable-line rule:key-duplicates
    <<: *docker_verify_boiler_plate

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=SNAPSHOT
      # Do the docker build
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'

- job-template:
    name: '{project-name}-{subproject}-{stream}-verify-docker-cascade-trigger'
    # Job template for Docker verify jobs
    #
    # The purpose of this job template is to run a docker build, and potentially
    # test validation of the docker image

    ######################
    # Default parameters #
    ######################

    <<: *docker_job_boiler_plate
    # yamllint disable-line rule:key-duplicates
    <<: *docker_verify_boiler_plate

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=SNAPSHOT
      # Do the docker build
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
    triggers:
      - reverse:
          jobs:
            - '{parent_job}'
          result: 'success'

- job-template:
    name: '{project-name}-{subproject}-{stream}-release-version-docker-daily-no-sonar'
    # Job template for Docker daily release jobs
    #
    # The purpose of this job template is to run "docker build and docker push"
    # for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    <<: *docker_job_boiler_plate

    docker_registry: '$DOCKER_REGISTRY:10003'

    scm:
      - lf-infra-gerrit-scm:
          jenkins-ssh-credential: '{jenkins-ssh-credential}'
          git-url: '$GIT_URL/$PROJECT'
          refspec: '$GERRIT_REFSPEC'
          branch: '$GERRIT_BRANCH'
          submodule-recursive: true
          choosing-strategy: default

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=STAGING

      # Do the docker build
      - shell: !include-raw: ../shell/snapshot-strip.sh
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh

    triggers:
      # 11 AM UTC
      - timed: '@daily'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

- job-template:
    name: '{project-name}-{subproject}-{stream}-release-version-docker-daily-no-sonar-cascade-trigger'
    # Job template for Docker daily release jobs
    #
    # The purpose of this job template is to run "docker build and docker push"
    # for projects using this template. This job is triggered by the daily job
    # that builds the artifacts required for building the Docker image.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    <<: *docker_job_boiler_plate

    docker_registry: '$DOCKER_REGISTRY:10003'

    scm:
      - lf-infra-gerrit-scm:
          jenkins-ssh-credential: '{jenkins-ssh-credential}'
          git-url: '$GIT_URL/$PROJECT'
          refspec: '$GERRIT_REFSPEC'
          branch: '$GERRIT_BRANCH'
          submodule-recursive: true
          choosing-strategy: default

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=STAGING

      # Do the docker build
      - shell: !include-raw: ../shell/snapshot-strip.sh
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh

    triggers:
      - reverse:
          jobs:
            - '{parent_job}'
          result: 'success'

- job-template:
    name: '{project-name}-{subproject}-{stream}-release-version-docker-no-sonar'
    # Job template for Docker final release job
    #
    # The purpose of this job template is to run "docker build and docker push"
    # for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    <<: *docker_job_boiler_plate

    docker_registry: '$DOCKER_REGISTRY:10003'

    scm:
      - lf-infra-gerrit-scm:
          jenkins-ssh-credential: '{jenkins-ssh-credential}'
          git-url: '$GIT_URL/$PROJECT'
          refspec: '$GERRIT_REFSPEC'
          branch: '$GERRIT_BRANCH'
          submodule-recursive: true
          choosing-strategy: default

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=STAGING

      # Do the docker build
      - shell: !include-raw: ../shell/snapshot-strip.sh
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh

- job-template:
    name: '{project-name}-{subproject}-{stream}-release-version-docker-cascade-trigger-no-sonar'
    # Job template for Docker final release job
    #
    # The purpose of this job template is to run "docker build and docker push"
    # for projects using this template. This job has no cascading counterpart, because the
    # final release is moved manually to the release repo.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    <<: *docker_job_boiler_plate

    docker_registry: '$DOCKER_REGISTRY:10003'

    scm:
      - lf-infra-gerrit-scm:
          jenkins-ssh-credential: '{jenkins-ssh-credential}'
          git-url: '$GIT_URL/$PROJECT'
          refspec: '$GERRIT_REFSPEC'
          branch: '$GERRIT_BRANCH'
          submodule-recursive: true
          choosing-strategy: default

    builders:
      - lf-infra-pre-build
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: '{pre_build_script}'
      - inject:
          # Docker registry is purposely not using an '_' so as to not conflict
          # with the Jenkins global env var
          properties-content: |
            DOCKER_ARGS={docker_build_args}
            DOCKER_NAME={docker_name}
            DOCKER_ROOT={docker_root}
            DOCKER_TAG={docker_tag}
            DOCKERREGISTRY={docker_registry}
            BUILD_MODE=STAGING

      # Do the docker build
      - shell: !include-raw: ../shell/snapshot-strip.sh
      - shell: !include-raw: ../shell/docker-build.sh
      - inject:
          # Import the docker image information from the build step
          properties-file: 'env_inject.txt'
      # Execute any post build clean-up or testing
      - shell: '{post_build_script}'
      # Provided all steps have already passed, push the docker image
      - shell: !include-raw: ../shell/docker-push.sh
    triggers:
      - reverse:
          jobs:
            - '{parent_job}'
          result: 'success'


