---
###########
# 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'


