Merge "Chore: Move to ubuntu2004-docker"
[ci-management.git] / jjb / global-templates-docker.yaml
index 3052dc2..23a554b 100644 (file)
@@ -24,6 +24,8 @@
     # Default to LF standard 'snapshots' docker registry
     docker_registry: '$DOCKER_REGISTRY:10003'
     docker_tag: 'latest'
+    submodule-disable: false
+    submodule-timeout: 10
 
     #####################
     # Job Configuration #
       # 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
       - shell: '{post_build_script}'
 
 - job-template:
-    name: '{project-name}-{stream}-verify-docker-cascade-trigger'
-    # Job template for Docker verify jobs
+    # Job template for creating a docker manifest list
     #
-    # 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 #
-    ######################
+    # 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
-    # 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
+    node: '{build-node}'
+    build-timeout: 15
 
-    triggers:
-      # 11 AM UTC
-      - timed: '@daily'
-      - gerrit-trigger-release-manually:
-          server: '{server-name}'
+    parameters:
+      - lf-infra-parameters:
           project: '{project}'
+          stream: '{stream}'
           branch: '{branch}'
+      - string:
+          name: PARENT_JOB_NAME
+          default: 'none'
 
-- 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'
+    disabled: '{obj:disabled}'
 
     scm:
       - lf-infra-gerrit-scm:
           refspec: '$GERRIT_REFSPEC'
           branch: '$GERRIT_BRANCH'
           submodule-recursive: true
+          submodule-disable: '{submodule-disable}'
+          submodule-timeout: '{submodule-timeout}'
           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
+      - shell: |
+          #!/bin/bash -ex
+          export PARENT_JOB_NAME
+          ./docker_push_manifest.sh
 
 - job-template:
-    name: '{project-name}-{subproject}-{stream}-merge-docker-cascade-trigger'
-    # Job template for Docker merge jobs
+    # Job template for staging jobs on multiple architectures
     #
-    # 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
+    # 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
 
-    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
+    name: '{project-name}-multiarch-docker-stage-{stream}'
+    node: '{build-node}'
+    project-type: multijob
+    disabled: '{obj:disabled}'
+    build-timeout: 15
+    pattern: '**'
 
-    triggers:
-      # 11 AM UTC
-      - timed: '@daily'
-      - gerrit-trigger-release-manually:
-          server: '{server-name}'
+    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'
 
-- 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
+    disabled: '{obj:disabled}'
 
-    docker_registry: '$DOCKER_REGISTRY:10003'
+    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:
           refspec: '$GERRIT_REFSPEC'
           branch: '$GERRIT_BRANCH'
           submodule-recursive: true
+          submodule-timeout: 10
+          submodule-disable: false
           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
+      - 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:
-      - 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'
-
+      - 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
 
+    publishers:
+      - lf-infra-publish