Add release daily job
[ci-management.git] / jjb / global-templates-java.yaml
index af595b3..7b173e9 100644 (file)
@@ -1,4 +1,65 @@
 ---
+- job-template:
+    # Job template for Java verify jobs
+    #
+    # The purpose of this job template is to run "maven clean install" for
+    # projects using this template.
+    #
+    # Required Variables:
+    #     branch:    git branch (eg. stable/lithium or master)
+
+    name: '{project-name}-{stream}-verify-java-skip-tests'
+
+    project-type: freestyle
+    concurrent: true
+    node: '{build-node}'
+
+    properties:
+      - ecomp-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - ecomp-infra-parameters:
+          project: '{project}'
+          branch: '{branch}'
+          refspec: 'refs/heads/{branch}'
+          artifacts: '{archive-artifacts}'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
+
+    wrappers:
+      - ecomp-infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      - gerrit-trigger-patch-submitted:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+          files: '**'
+
+    builders:
+      - provide-maven-settings:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
+      - maven-target:
+          maven-version: 'mvn33'
+          goals: 'clean install -DskipTests=true'
+          settings: '{mvn-settings}'
+          settings-type: cfp
+          global-settings: 'global-settings'
+          global-settings-type: cfp
+          maven-opts:
+            - maven.test.skip=true
+
+#     publishers:
+#       - ecomp-infra-shiplogs:
+#           maven-version: 'mvn33'
+
+
 - job-template:
     # Job template for Java verify jobs
     #
     triggers:
       # 11 AM UTC
       - timed: 'H 11 * * *'
+      - gerrit-trigger-release-manually:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+
+    builders:
+      - provide-maven-settings:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
+
+      - maven-target:
+          maven-version: 'mvn33'
+          goals: 'clean deploy sonar:sonar -Dsonar.host.url=https://sonar.openecomp.org'
+          properties:
+            - '{maven-deploy-properties}'
+          settings: '{mvn-settings}'
+          settings-type: cfp
+          global-settings: 'global-settings'
+          global-settings-type: cfp
+
+- job-template:
+    # Job template for Java daily release jobs
+    #
+    # The purpose of this job template is to run "maven version && maven clean
+    # deploy" for projects using this template.
+    #
+    # Required Variables:
+    #     branch:    git branch (eg. stable/lithium or master)
+    name: '{project-name}-{stream}-release-version-java-daily'
+
+    project-type: freestyle
+    node: '{build-node}'
+    maven-deploy-properties:
+    properties:
+      - ecomp-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - ecomp-infra-parameters:
+          project: '{project}'
+          branch: '{branch}'
+          refspec: 'refs/heads/{branch}'
+          artifacts: '{archive-artifacts}'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: ''
+          choosing-strategy: 'default'
+
+    wrappers:
+      - ecomp-infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      # 11 AM UTC
+      - timed: 'H 11 * * *'
+      - gerrit-trigger-release-manually:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
 
     builders:
       - provide-maven-settings:
           global-settings: 'global-settings'
           global-settings-type: cfp
 
+- job-template:
+    # Job template for Java daily release jobs with POM not at the root
+    #
+    # The purpose of this job template is to run "maven version && maven clean
+    # deploy" for projects using this template.
+    #
+    # Required Variables:
+    #     branch:    git branch (eg. stable/lithium or master)
+    #     pom:       name/location of the pom.xml file relative to the workspace
+
+
+    name: '{project-name}-{stream}-{subproject}-release-java-daily'
+
+    project-type: freestyle
+    node: '{build-node}'
+    maven-deploy-properties:
+    properties:
+      - ecomp-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - ecomp-infra-parameters:
+          project: '{project}'
+          branch: '{branch}'
+          refspec: 'refs/heads/{branch}'
+          artifacts: '{archive-artifacts}'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: ''
+          choosing-strategy: 'default'
+
+    wrappers:
+      - ecomp-infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      # 11 AM UTC
+      - timed: 'H 11 * * *'
+      - gerrit-trigger-release-manually:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+
+    builders:
+      - provide-maven-settings:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
+
+      - maven-target:
+          maven-version: 'mvn33'
+          pom: '{pom}'
+          goals: 'clean deploy sonar:sonar -Dsonar.host.url=https://sonar.openecomp.org'
+          properties:
+            - '{maven-deploy-properties}'
+          settings: '{mvn-settings}'
+          settings-type: cfp
+          global-settings: 'global-settings'
+          global-settings-type: cfp
+
 - job-template:
     # Job template for Java merge jobs
     #
 #       - ecomp-infra-shiplogs:
 #           maven-version: 'mvn33'
 
+- job-template:
+    # Job template for Java merge jobs that should also be triggered by upstream
+    # merges
+    #
+    # Required Variables:
+    #   stream:         release stream
+    #   branch:         git branch
+    #   dependencies:   fully qualified upstream job name to trigger on
+    #                   this may be ''
+    name: '{project-name}-{stream}-downstream-merge-java'
+
+    project-type: freestyle
+    node: '{build-node}'
+
+    properties:
+      - ecomp-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - ecomp-infra-parameters:
+          project: '{project}'
+          branch: '{branch}'
+          refspec: 'refs/heads/{branch}'
+          artifacts: '{archive-artifacts}'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: ''
+          choosing-strategy: 'default'
+
+    wrappers:
+      - ecomp-infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      - reverse:
+          jobs: '{dependencies}'
+          result: 'success'
+      - gerrit-trigger-patch-merged:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+          files: '**'
+
+    builders:
+      - provide-maven-settings:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
+      - maven-target:
+          maven-version: 'mvn33'
+          # yamllint disable rule:line-length
+          goals: 'clean deploy'
+          # yamllint enable
+          settings: '{mvn-settings}'
+          settings-type: cfp
+          global-settings: 'global-settings'
+          global-settings-type: cfp
+
+#     publishers:
+#       - ecomp-infra-shiplogs:
+#           maven-version: 'mvn33'
+
 - job-template:
     # Job template for Java merge jobs with POM not at the root
     #
           build-timeout: '{build-timeout}'
 
     triggers:
-      # 11 AM UTC
+      # 12 AM UTC
       - timed: 'H 12 * * *'
+      - gerrit-trigger-release-manually:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
 
     builders:
 
       - maven-docker-push-daily:
           mvn-settings: '{mvn-settings}'
           pom: '{docker-pom}'
+          # use default as mvn-profile if profile is not needed
+          mvn-profile: '{mvn-profile}'
+
+- job-template:
+    name: '{project-name}-{stream}-docker-java-shell-daily'
+    project-type: freestyle
+    node: 'ubuntu1604-docker-8c-8g'
+
+    properties:
+      - ecomp-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - ecomp-infra-parameters:
+          project: '{project}'
+          branch: '{branch}'
+          refspec: 'refs/heads/{branch}'
+          artifacts: '{archive-artifacts}'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: ''
+          choosing-strategy: 'default'
+
+    wrappers:
+      - ecomp-infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      # 12 AM UTC
+      - timed: 'H 12 * * *'
+      - gerrit-trigger-release-manually:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+
+    builders:
+
+      - provide-maven-settings:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
+
+      - docker-login
+
+      - maven-target:
+          maven-version: 'mvn33'
+          goals: '{mvn-goals}'
+          settings: '{mvn-settings}'
+          settings-type: cfp
+          global-settings: 'global-settings'
+          global-settings-type: cfp
+
+      - shell: '{script}'
+
+- job-template:
+    name: '{project-name}-{stream}-aai-docker-java-daily'
+    project-type: freestyle
+    node: 'ubuntu1604-docker-8c-8g'
+
+    properties:
+      - ecomp-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - ecomp-infra-parameters:
+          project: '{project}'
+          branch: '{branch}'
+          refspec: 'refs/heads/{branch}'
+          artifacts: '{archive-artifacts}'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: ''
+          choosing-strategy: 'default'
+
+    wrappers:
+      - ecomp-infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      # 12 AM UTC
+      - timed: 'H 12 * * *'
+      - gerrit-trigger-release-manually:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+
+    builders:
+
+      - provide-maven-settings:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
+
+      - docker-login
+
+      - maven-target:
+          maven-version: 'mvn33'
+          pom: 'pom.xml'
+          goals: 'clean install -DskipTests'
+          settings: '{mvn-settings}'
+          settings-type: cfp
+          global-settings: 'global-settings'
+          global-settings-type: cfp
+
+      - maven-target:
+          maven-version: 'mvn33'
+          pom: '{pom}'
+          goals: '{mvn-goals}'
+          settings: '{mvn-settings}'
+          settings-type: cfp
+          global-settings: 'global-settings'
+          global-settings-type: cfp
+          properties:
+            - maven.test.skip=true
+            - docker.pull.registry=nexus3.openecomp.org:10001
+            - docker.push.registry=nexus3.openecomp.org:10003
+
+      - shell: !include-raw: include-docker-push.sh