Revert "Revert "Add multiplatform jobs for policy docker images"" 45/95345/1
authorBengt Thuree <bthuree@linuxfoundation.org>
Tue, 10 Sep 2019 11:39:04 +0000 (13:39 +0200)
committerBengt Thuree <bthuree@linuxfoundation.org>
Tue, 10 Sep 2019 11:44:33 +0000 (13:44 +0200)
This reverts commit 764bb8283a5cbf93ca9cbb8e2dd9760e783f9a78.

Re-enables the multiplatform jobs for policy docker images.

Signed-off-by: Bengt Thuree <bthuree@linuxfoundation.org>
Issue-ID: CIMAN-217
Change-Id: I34b81f193e6286792ace75be2a64f1a8ed19c9d8

jjb/global-templates-docker.yaml
jjb/global-templates-java.yaml
jjb/policy/policy-docker-base-common.yaml

index 1c8242f..eecedd4 100644 (file)
             - '{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
index c589fba..d6104d8 100644 (file)
 
     builders:
       - lf-infra-pre-build
+      - lf-infra-docker-login:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
       - provide-maven-settings:
           global-settings-file: 'global-settings'
           settings-file: '{mvn-settings}'
           # use default as mvn-profile if profile is not needed
           mvn-profile: '{mvn-profile}'
           mvn-params: ''
+
+- job-template:
+    # Job template for Java merge jobs on multiple architectures
+    #
+    # The purpose of this job template is to:
+    # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
+    # 2. Build and push a docker manifest list for the images created by
+    #    the previous jobs
+
+    name: '{project-name}-multiarch-{stream}-merge-java'
+    node: '{build-node}'
+    project-type: multijob
+    disabled: '{obj:disabled}'
+    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'
+
+    properties:
+      - throttle:
+          max-per-node: 1
+          option: 'project'
+      - build-blocker:
+          use-build-blocker: true
+          blocking-jobs:
+            - '{project-name}-.*-merge-.*'
+          blocking-level: 'NODE'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: ''
+          choosing-strategy: 'default'
+          submodule-recursive: '{submodule-recursive}'
+
+    wrappers:
+      - infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      - gerrit-trigger-patch-merged:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+          files: '{pattern}'
+
+    builders:
+      - multijob:
+          name: 'build docker images'
+          condition: ALWAYS
+          execution-type: PARALLEL
+          projects:
+            - name: '{project-name}-amd64-{stream}-merge-java'
+              kill-phase-on: FAILURE
+              current-parameters: true
+            - name: '{project-name}-arm64-{stream}-merge-java'
+              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
index 4551f15..42f7f6b 100644 (file)
@@ -1,6 +1,6 @@
 ---
 - project:
-    name: policy-docker-base-common
+    name: policy-docker-base-common-elalto
     project-name: 'policy-docker'
     jobs:
       - '{project-name}-{stream}-verify-java'
@@ -20,8 +20,6 @@
 
     project: 'policy/docker'
     stream:
-      - 'master':
-          branch: 'master'
       - 'elalto':
           branch: 'elalto'
     mvn-settings: 'policy-docker-settings'
     archive-artifacts: ''
     build-node: ubuntu1604-builder-4c-4g
 
+- project:
+    name: policy-docker-base-common
+    project-name: 'policy-docker'
+    jobs:
+      - '{project-name}-{stream}-verify-java'
+      - '{project-name}-{stream}-merge-java':
+          project-name: 'policy-docker-amd64'
+          docker-pom: 'pom.xml'
+          mvn-profile: 'docker'
+          mvn-params: '-P docker -Ddocker.pull.registry=docker.io -Ddocker.push.registry=registry-1.docker.io'
+          build-node: ubuntu1604-docker-8c-8g
+          pattern: 'do_not_match_any_file'
+      - '{project-name}-{stream}-merge-java':
+          project-name: 'policy-docker-arm64'
+          docker-pom: 'pom.xml'
+          mvn-profile: 'docker'
+          mvn-params: '-P docker -Ddocker.pull.registry=docker.io -Ddocker.push.registry=registry-1.docker.io'
+          build-node: ubuntu1604-docker-arm64-4c-2g
+          pattern: 'do_not_match_any_file'
+      - '{project-name}-multiarch-{stream}-merge-java'
+      - gerrit-maven-docker-stage:
+          project-name: 'policy-docker-arm64'
+          build-node: ubuntu1604-docker-arm64-4c-2g
+          maven-versions-plugin: true
+          mvn-params: '-P docker -Dmaven.test.skip=true -Ddocker.pull.registry=docker.io -Ddocker.push.registry=registry-1.docker.io'
+          container-public-registry: 'docker.io'
+          container-staging-registry: 'docker.io'
+          cron: ''
+          gerrit_trigger_file_paths:
+             - compare-type: REG_EXP
+               pattern: 'do_not_match_any_file'
+      - gerrit-maven-docker-stage:
+          project-name: 'policy-docker-amd64'
+          build-node: ubuntu1604-docker-8c-8g
+          maven-versions-plugin: true
+          mvn-params: '-P docker -Dmaven.test.skip=true -Ddocker.pull.registry=docker.io -Ddocker.push.registry=registry-1.docker.io'
+          container-public-registry: 'docker.io'
+          container-staging-registry: 'docker.io'
+          cron: ''
+          gerrit_trigger_file_paths:
+             - compare-type: REG_EXP
+               pattern: 'do_not_match_any_file'
+      - '{project-name}-docker-manifest-{stream}':
+          build-node: ubuntu1604-docker-8c-8g
+      - '{project-name}-multiarch-docker-stage-{stream}'
+#      - '{project-name}-gerrit-release-jobs':
+#          build-node: centos7-builder-4c-4g
+
+    project: 'policy/docker'
+    stream:
+      - 'master':
+          branch: 'master'
+    mvn-settings: 'policy-docker-settings'
+    files: '**'
+    archive-artifacts: ''
+    build-node: ubuntu1604-builder-4c-4g
+
 - project:
     name: policy-docker-sonar
     jobs: