Update automated project templates
[releng/builder.git] / jjb / releng-macros.yaml
index d56eb57c51dfb14ed27507453be92e8e261a7571..d5e9cc6be7c97a2a1918464a5ba729864025f35f 100644 (file)
@@ -9,28 +9,28 @@
             description: "JJB configured PROJECT parameter to identify an ODL Gerrit project"
 
 - parameter:
-    name: gerrit-parameter
+    name: gerrit-parameters
     parameters:
+        - string:
+            name: GERRIT_PROJECT
+            default: '{project}'
+            description: "GERRIT_PROJECT parameter if not given by trigger"
         - string:
             name: GERRIT_BRANCH
             default: '{branch}'
             description: "JJB configured GERRIT_BRANCH parameter"
-
-- parameter:
-    name: gerrit-project-parameter
-    parameters:
         - string:
-            name: GERRIT_PROJECT
-            default: '{project}'
-            description: "GERRIT_PROJECT parameter if not given by trigger"
+            name: GERRIT_REFSPEC
+            default: '{refspec}'
+            description: "GERRIT_REFSPEC parameter if not given by trigger"
 
 - parameter:
-    name: gerrit-refspec-parameter
+    name: build-tag
     parameters:
         - string:
-            name: GERRIT_REFSPEC
-            default: '{refspec}'
-            description: "GERRIT_REFSPEC parameter if not given by trigger"
+            name: BUILD_TAG
+            default: ''
+            description: 'Tag in Git to checkout'
 
 - parameter:
     name: controller-version-parameter
             default: 'master'
             description: 'distribution repo branch to build with'
 
+- parameter:
+    name: p2zip-parameter
+    parameters:
+        - string:
+            name: P2ZIP_URL
+            default: ''
+            description: 'Nexus staging profile id'
+
+- parameter:
+    name: stage-id-parameter
+    parameters:
+        - string:
+            name: STAGING_PROFILE_ID
+            default: '{stage-id}'
+            description: 'Nexus staging profile id'
+
 - scm:
     name: git-scm
     scm:
             skip-tag: true
             wipe-workspace: true
 
+- scm:
+    name: git-scm-with-submodules
+    scm:
+        - git:
+            credentials-id: '{credentials-id}'
+            url: '$GIT_BASE'
+            refspec: ''
+            branches:
+                - 'refs/heads/{branch}'
+            skip-tag: true
+            wipe-workspace: true
+            submodule:
+                recursive: true
+
 - scm:
     name: gerrit-trigger-scm
     scm:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
 
+- trigger:
+    name: gerrit-trigger-relevant-patch-submitted
+    triggers:
+        - gerrit:
+            server-name: 'OpenDaylight'
+            trigger-on:
+                - patchset-created-event:
+                    exclude-drafts: 'true'
+                    exclude-trivial-rebase: 'false'
+                    exclude-no-code-change: 'true'
+                - draft-published-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'recheck'
+                - comment-added-contains-event:
+                    comment-contains-value: 'reverify'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: '{name}'
+                branches:
+                  - branch-compare-type: 'ANT'
+                    branch-pattern: '**/{branch}'
+
 - trigger:
     name: gerrit-trigger-patch-merged
     triggers:
     builders:
         - shell: 'if [ -d /tmp/r/org/opendaylight ]; then rm -rf /tmp/r/org/opendaylight; fi'
 
+- builder:
+    name: wipe-local-maven-repo
+    builders:
+        - shell: 'if [ -d /tmp/r ]; then rm -rf /tmp/r; fi'
+
 - builder:
     name: jacoco-nojava-workaround
     builders:
           variable: 'GLOBAL_SETTINGS_FILE'
         - file-id: '{settings-file}'
           variable: 'SETTINGS_FILE'
+
+- builder:
+    name: releng-fetch-p2zip-if-necessary
+    builders:
+    - shell: |
+        # Cleanup any existing zips and metadata before we download the new update site
+        rm -f *.zip *.xml
+    - conditional-step:
+        condition-kind: strings-match
+        condition-string1: '$P2ZIP_URL'
+        condition-string2: ''
+        condition-basedir: workspace
+        steps:
+            # TODO: Figure out latest snapshot version number to pull rather than hardcoding 1.1.1-SNAPSHOT
+            - maven-target:
+                maven-version: '{maven-version}'
+                goals: 'org.apache.maven.plugins:maven-dependency-plugin:get org.apache.maven.plugins:maven-dependency-plugin:copy -V -B -Dartifact=org.opendaylight.yangide:org.opendaylight.yangide.update-site:1.1.1-SNAPSHOT:zip -DoutputDirectory=$WORKSPACE'
+                settings: '{settings}'
+                global-settings: '{global-settings}'
+
+- builder:
+    name: releng-generate-p2pom
+    builders:
+        - shell: !include-raw: include-raw-generate-p2pom.sh
+
+- builder:
+    name: releng-update-p2composite-metadata
+    builders:
+    - shell: !include-raw: include-raw-update-p2composite-metadata.sh
+    - conditional-step:
+        condition-kind: file-exists
+        condition-filename: deploy-composite-repo.xml
+        condition-basedir: workspace
+        steps:
+            - maven-target:
+                maven-version: '{maven-version}'
+                pom: 'deploy-composite-repo.xml'
+                goals: 'clean deploy -V -B -Dmaven.repo.local=/tmp/r'
+                settings: '{settings}'
+                global-settings: '{global-settings}'
+
+- builder:
+    name: releng-stage-release
+    builders:
+        - shell: !include-raw: include-raw-stage-release.sh