Remove parameter in autorelease build trigger
[releng/builder.git] / jjb / autorelease / autorelease-templates.yaml
index c6774da9c86da206b30b1ae8729d133a8466cf86..fe0efceb474d182af3e273e15ae9ca5746233db1 100644 (file)
@@ -38,6 +38,7 @@
           refspec: 'refs/heads/master'
           jenkins-ssh-credential: opendaylight-jenkins-ssh
           submodule-recursive: true
+          submodule-timeout: 10
           choosing-strategy: default
 
     wrappers:
@@ -52,7 +53,7 @@
       - lf-infra-publish
 
 - job-template:
-    name: 'autorelease-release-{stream}'
+    name: 'autorelease-release-{stream}-{mvn-version}-{java-version}'
 
     ######################
     # Default parameters #
@@ -60,7 +61,9 @@
 
     build-node: '{build-node}'
     cron: 'H 0 * * *'
-    java-version: openjdk8
+    java-version: '{java-version}'
+    mvn-global-settings: global-settings
+    mvn-settings: autorelease-settings
     mvn-version: mvn35
     extra-mvn-opts: ''
 
@@ -78,7 +81,7 @@
 
     parameters:
       - maven-exec:
-          maven-version: 'mvn35'
+          maven-version: '{mvn-version}'
       - lf-infra-parameters:
           project: '{project}'
           stream: '{stream}'
           name: ARCHIVE_ARTIFACTS
           default: '{archive-artifacts}'
           description: Artifacts to archive to the logs server.
+      - string:
+          name: STAGING_PROFILE_ID
+          default: '{staging-profile-id}'
+          description: Nexus staging profile ID.
 
     scm:
       - git:
       - timed: '{cron}'
 
     builders:
+      - lf-infra-pre-build
       # force jenkins install of maven version before any shell scripts use it
       - lf-maven-install:
           mvn-version: '{mvn-version}'
       - wipe-local-maven-repo
-      - jacoco-nojava-workaround
+      - lf-jacoco-nojava-workaround
       - shell: "./scripts/list-project-dependencies.sh"
       - autorelease-determine-merge-order
-      - autorelease-cfp:
-          autorelease-settings: 'autorelease-settings'
-          global-settings: 'odl-global-settings'
+      - lf-provide-maven-settings:
+          global-settings-file: '{mvn-global-settings}'
+          settings-file: '{mvn-settings}'
+      - lf-infra-create-netrc:
+          server-id: '{mvn-staging-id}'
       - autorelease-generate-release-patches
       - autorelease-generate-artifact-versions
+      - lf-update-java-alternatives:
+          java-version: '{java-version}'
       - autorelease-distribute-taglist
       - distribute-build-url:
           path: 'integration/distribution/$KARAF_ARTIFACT/src/main/assembly'
       # to enable building in a single maven reactor afterwards.
       - autorelease-fix-relative-paths
       - maven-target:
-          maven-version: 'mvn35'
+          maven-version: '{mvn-version}'
           pom: 'pom.xml'
           goals: |
               clean deploy
               $EXTRA_MVN_OPTS
               -Pintegrationtests,repoBuild
               -Dcheckstyle.skip=true
-              -DaltDeploymentRepository=staging::default::file:hide/from/pom/files/stage
+              -DaltDeploymentRepository=staging::default::file:"$WORKSPACE"/m2repo
               {opendaylight-infra-mvn-opts}
           java-opts:
             - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
-          settings: 'autorelease-settings'
+          settings: '{mvn-settings}'
           settings-type: cfp
-          global-settings: 'global-settings'
+          global-settings: '{mvn-global-settings}'
           global-settings-type: cfp
-      - autorelease-maven-deploy
+      - lf-maven-stage
       - autorelease-get-integration-test-variables
       - autorelease-maven-sources:
           opendaylight-infra-mvn-opts: '{opendaylight-infra-mvn-opts}'
-          maven-version: 'mvn35'
-          settings: 'autorelease-settings'
-          global-settings: 'global-settings'
-      - autorelease-maven-sources-post-process
+          maven-version: '{mvn-version}'
+          settings: '{mvn-settings}'
+          global-settings: '{mvn-global-settings}'
       - shell: |
           mkdir -p archives/
           cp *.log *.prop $_
       - opendaylight-infra-notify-status
       - trigger-parameterized-builds:
           - project: 'integration-distribution-test-{integration-test}'
-            condition: UNSTABLE_OR_BETTER
-            property-file: variables.jenkins-trigger
-            fail-on-missing: true
-          - project: 'integration-distribution-test-{integration-test}'
-            condition: FAILED
-            trigger-with-no-params: true
+            condition: STABLE
+            predefined-parameters: BUNDLE_URL=autorelease
           - project: 'packaging-build-rpm-{stream}'
             condition: UNSTABLE_OR_BETTER
             predefined-parameters: DOWNLOAD_URL=$BUNDLE_URL
           mark-unstable-if-failed: false
       - lf-infra-publish
 
+- job-template:
+    name: 'autorelease-update-submodules-{stream}'
+
+    ######################
+    # Default parameters #
+    ######################
+
+    cron: 'H 0 * * *'
+
+    #####################
+    # Job configuration #
+    #####################
+
+    project-type: freestyle
+    node: centos7-builder-2c-2g
+
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: 7
+
+    parameters:
+      - lf-infra-parameters:
+          project: releng/autorelease
+          branch: '{branch}'
+          stream: '{stream}'
+          refspec: 'refs/heads/{branch}'
+          lftools-version: '{lftools-version}'
+
+    scm:
+      - lf-infra-gerrit-scm:
+          git-url: '$GIT_URL/$GERRIT_PROJECT'
+          branch: '{branch}'
+          refspec: 'refs/heads/{branch}'
+          jenkins-ssh-credential: opendaylight-jenkins-ssh
+          submodule-recursive: true
+          submodule-timeout: 10
+          choosing-strategy: default
+
+    wrappers:
+      - lf-infra-wrappers:
+          build-timeout: 10
+          jenkins-ssh-credential: opendaylight-jenkins-ssh
+
+    triggers:
+      - timed: '{obj:cron}'
+
+    builders:
+      - lf-infra-pre-build
+      # Fetch latest head of branch
+      - shell: |
+          git checkout $GERRIT_BRANCH
+          git submodule update --remote
+          git add .
+      - lf-infra-push-gerrit-patch:
+          project: '{project}'
+          gerrit-user: 'jenkins-$SILO'
+          gerrit-host: 'git.opendaylight.org'
+          gerrit-topic: 'autorelease-update-submodules'
+          gerrit-commit-message: 'Update submodules to latest HEAD of branch'
+          reviewers-email: ''
+
+    publishers:
+      - lf-infra-publish
+
 - job-template:
     name: autorelease-update-validate-jobs-{stream}
 
           refspec: 'refs/heads/master'
           jenkins-ssh-credential: opendaylight-jenkins-ssh
           submodule-recursive: true
+          submodule-timeout: 10
           choosing-strategy: default
 
     triggers:
           jenkins-ssh-credential: opendaylight-jenkins-ssh
 
     builders:
+      - lf-infra-pre-build
       - autorelease-update-project-views
       - autorelease-update-validate-projects
       - lf-infra-push-gerrit-patch:
 
 - job-template:
     name: autorelease-version-bump-{stream}
+
+    #####################
+    # Default variables #
+    #####################
+
+    mvn-global-settings: global-settings
+    mvn-settings: autorelease-settings
+    mvn-version: mvn35
+
+    #####################
+    # Job configuration #
+    #####################
+
     project-type: freestyle
     node: '{build-node}'
 
               and artifacts are not pushed to Nexus. Instead the build will be
               performed using the goals "clean install".
       - maven-exec:
-          maven-version: mvn35
+          maven-version: '{mvn-version}'
 
     scm:
       - lf-infra-gerrit-scm:
           refspec: 'refs/heads/{branch}'
           jenkins-ssh-credential: opendaylight-jenkins-ssh
           submodule-recursive: true
+          submodule-timeout: 10
           choosing-strategy: default
 
     wrappers:
           jenkins-ssh-credential: opendaylight-jenkins-ssh
 
     builders:
+      - lf-infra-pre-build
       # force jenkins install of maven version before any shell scripts use it
-      - maven-target:
-          maven-version: mvn35
-          goals: '-version'
-          settings: autorelease-settings
-          settings-type: cfp
-          global-settings: global-settings
-          global-settings-type: cfp
-      - autorelease-cfp
+      - lf-maven-install:
+          mvn-version: '{mvn-version}'
+      - lf-provide-maven-settings:
+          global-settings-file: '{mvn-global-settings}'
+          settings-file: '{mvn-settings}'
       - shell: !include-raw-escape:
-          - ../global-jjb/shell/lftools-install.sh
           - version-bump.sh
 
     publishers:
           lftools-version: '{lftools-version}'
       - string:
           name: RELEASE
-          description: Release to generate release notes for.
-
+          description: |
+              Release to generate release notes for.
+              Eg. Oxygen-SR1, Fluorine-SR2...
     scm:
       - lf-infra-gerrit-scm:
           git-url: '$GIT_URL/$GERRIT_PROJECT'
           refspec: '$GERRIT_REFSPEC'
           jenkins-ssh-credential: opendaylight-jenkins-ssh
           submodule-recursive: true
+          submodule-timeout: 10
           choosing-strategy: default
 
     wrappers:
                   branch-pattern: '**/{branch}'
 
     builders:
+      - lf-infra-pre-build
       - autorelease-generate-release-notes
 
     publishers:
 - job-template:
     name: '{project-name}-validate-autorelease-{stream}'
 
-    ############
-    # Defaults #
-    ############
+    #####################
+    # Default variables #
+    #####################
 
     java-version: openjdk8
+    mvn-global-settings: global-settings
+    mvn-settings: autorelease-settings
+    mvn-version: mvn35
 
     #####################
     # Job Configuration #
           forbidden-files: ''
 
     builders:
+      - lf-infra-pre-build
       - autorelease-checkout-gerrit-patch
       - autorelease-compare-projects
-      - jacoco-nojava-workaround
+      - lf-jacoco-nojava-workaround
       - shell: "./scripts/list-project-dependencies.sh"
       - autorelease-determine-merge-order
       - autorelease-generate-release-patches
       # to enable building in a single maven reactor afterwards.
       - autorelease-fix-relative-paths
       - maven-target:
-          maven-version: mvn35
+          maven-version: '{mvn-version}'
           pom: validate-pom.xml
           goals: |
               clean install dependency:tree
               {opendaylight-infra-mvn-opts}
           java-opts:
             - '-Xmx8g'
-          settings: autorelease-settings
+          settings: '{mvn-settings}'
           settings-type: cfp
-          global-settings: global-settings
+          global-settings: '{mvn-global-settings}'
           global-settings-type: cfp
       - maven-target:
-          maven-version: mvn35
+          maven-version: '{mvn-version}'
           pom: pom.xml
           goals: |
               clean validate
               {opendaylight-infra-mvn-opts}
           java-opts:
             - '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
-          settings: autorelease-settings
+          settings: '{mvn-settings}'
           settings-type: cfp
-          global-settings: global-settings
+          global-settings: '{mvn-global-settings}'
           global-settings-type: cfp
       - shell: |
           mkdir -p archives/