---
###########
# 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'
    submodule-disable: false
    submodule-timeout: 10

    #####################
    # 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
          submodule-timeout: '{submodule-timeout}'
          submodule-disable: '{submodule-disable}'
          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
          submodule-timeout: '{submodule-timeout}'
          submodule-disable: '{submodule-disable}'
          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
          submodule-timeout: '{submodule-timeout}'
          submodule-disable: '{submodule-disable}'
          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
          submodule-timeout: '{submodule-timeout}'
          submodule-disable: '{submodule-disable}'
          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
          submodule-timeout: '{submodule-timeout}'
          submodule-disable: '{submodule-disable}'
          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
          submodule-timeout: '{submodule-timeout}'
          submodule-disable: '{submodule-disable}'
          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:
    # Job template for creating a docker manifest list
    #
    # The purpose of this job template is to run:
    # 1. docker_push_manifest.sh script (which needs to exist in the
    #    project implementation repo)

    name: '{project-name}-docker-manifest-{stream}'
    <<: *docker_job_boiler_plate
    node: '{build-node}'
    build-timeout: 15

    parameters:
      - lf-infra-parameters:
          project: '{project}'
          stream: '{stream}'
          branch: '{branch}'
      - string:
          name: PARENT_JOB_NAME
          default: 'none'

    disabled: '{obj:disabled}'

    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
          submodule-disable: '{submodule-disable}'
          submodule-timeout: '{submodule-timeout}'
          choosing-strategy: default


    builders:
      - lf-infra-docker-login:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: |
          #!/bin/bash -ex
          export PARENT_JOB_NAME
          ./docker_push_manifest.sh

- job-template:
    # Job template for staging jobs on multiple architectures
    #
    # The purpose of this job template is to:
    # 1. Run parallel maven-docker-stage jobs for each supported architecure
    # 2. Build and push a docker manifest list for the images created by
    #    the previous jobs

    name: '{project-name}-multiarch-docker-stage-{stream}'
    node: '{build-node}'
    project-type: multijob
    disabled: '{obj:disabled}'
    build-timeout: 15
    pattern: '**'

    parameters:
      - lf-infra-parameters:
          project: '{project}'
          stream: '{stream}'
          branch: '{branch}'
      - string:
          name: DOCKER_REGISTRY
          default: 'none'
      - string:
          name: DOCKERHUB_REGISTRY
          default: 'registry-1.docker.io'

    disabled: '{obj:disabled}'

    properties:
      - throttle:
          max-per-node: 1
          option: 'project'
      - build-blocker:
          use-build-blocker: true
          blocking-jobs:
            - '{project-name}-.*-docker-.*'
          blocking-level: 'NODE'

    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
          submodule-timeout: 10
          submodule-disable: false
          choosing-strategy: default

    triggers:
      - timed: '@daily'
      - gerrit:
          server-name: '{gerrit-server-name}'
          trigger-on:
             - comment-added-contains-event:
                 comment-contains-value: '^Patch Set\s+\d+:\s+stage-(docker-)?release\s*$'

          projects:
            - project-compare-type: ANT
              project-pattern: '{project}'
              branches:
                - branch-compare-type: ANT
                  branch-pattern: '**/{branch}'
              file-paths:
                 - compare-type: ANT
                   pattern: "**"

    builders:
      - multijob:
          name: 'build docker images'
          condition: ALWAYS
          execution-type: PARALLEL
          projects:
            - name: '{project-name}-amd64-maven-docker-stage-{stream}'
              kill-phase-on: FAILURE
              current-parameters: true
            - name: '{project-name}-arm64-maven-docker-stage-{stream}'
              kill-phase-on: NEVER
              current-parameters: true
      - multijob:
          name: 'publish docker manifest'
          condition: SUCCESSFUL
          execution-type: PARALLEL
          projects:
            - name: '{project-name}-docker-manifest-{stream}'
              current-parameters: true
              predefined-parameters: |
                PARENT_JOB_NAME=$JOB_NAME
                DOCKERHUB_REGISTRY=docker.io
