Enable shallow clone for git repos
[releng/builder.git] / jjb / releng-macros.yaml
index f41ad0ca16595d685319135909bcee0139178614..b188da33d8a0557b199628997c904fad3643afb5 100644 (file)
@@ -1,5 +1,13 @@
 # OLD Releng macros
 
+- parameter:
+    name: project-parameter
+    parameters:
+        - string:
+            name: PROJECT
+            default: '{project}'
+            description: "JJB configured PROJECT parameter to identify an ODL Gerrit project"
+
 - parameter:
     name: gerrit-parameter
     parameters:
             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"
+
+- parameter:
+    name: gerrit-refspec-parameter
+    parameters:
+        - string:
+            name: GERRIT_REFSPEC
+            default: '{refspec}'
+            description: "GERRIT_REFSPEC parameter if not given by trigger"
+
+- parameter:
+    name: controller-version-parameter
+    parameters:
+        - string:
+            name: ODL_VERSION
+            default: '{odl_version}'
+            description: 'Controller version (for use with openstacks networking_odl project)'
+
+- parameter:
+    name: patches-to-build-parameter
+    parameters:
+        - string:
+            name: PATCHES_TO_BUILD
+            default: ''
+            description: 'csv list of patches in project:changeset format to build distribution with'
+
+- parameter:
+    name: distribution-branch-to-build-parameter
+    parameters:
+        - string:
+            name: DISTRIBUTION_BRANCH_TO_BUILD
+            default: 'master'
+            description: 'distribution repo branch to build with'
+
 - scm:
     name: git-scm
     scm:
         - git:
             credentials-id: '{credentials-id}'
-            url: '{scm-url}'
+            url: '$GIT_BASE'
             refspec: ''
             branches:
                 - 'origin/{branch}'
             skip-tag: true
+            shallow-clone: true
+            wipe-workspace: true
 
 - scm:
     name: gerrit-trigger-scm
     scm:
         - git:
             credentials-id: '{credentials-id}'
-            url: '{scm-url}'
+            url: '$GIT_BASE'
             refspec: '{refspec}'
             branches:
                 - 'origin/$GERRIT_BRANCH'
             skip-tag: true
-            choosing-strategy: gerrit
+            shallow-clone: true
+            choosing-strategy: '{choosing-strategy}'
+
+- wrapper:
+    name: build-timeout
+    wrappers:
+        - timeout:
+            type: absolute
+            timeout: 360
+            fail: true
 
 - trigger:
     name: gerrit-trigger-patch-submitted
     triggers:
         - gerrit:
-            trigger-on-patchset-uploaded-event: true
-            trigger-on-draft-published-event: true
+            server-name: 'OpenDaylight'
+            trigger-on:
+                - patchset-created-event:
+                    exclude-drafts: 'false'
+                    exclude-trivial-rebase: 'false'
+                    exclude-no-code-change: 'false'
+                - 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}'
     name: gerrit-trigger-patch-merged
     triggers:
         - gerrit:
-            trigger-on-change-merged-event: true
+            server-name: 'OpenDaylight'
+            trigger-on:
+                - change-merged-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'remerge'
             projects:
               - project-compare-type: 'ANT'
                 project-pattern: '{name}'
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
 
+- trigger:
+    name: gerrit-trigger-patch-sonar
+    triggers:
+        - gerrit:
+            server-name: 'OpenDaylight'
+            trigger-on:
+                - comment-added-contains-event:
+                    comment-contains-value: 'run-sonar'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: '{name}'
+                branches:
+                  - branch-compare-type: 'ANT'
+                    branch-pattern: '**/master'
+            skip-vote:
+                successful: true
+                failed: true
+                unstable: true
+                notbuilt: true
+
+- trigger:
+    name: gerrit-trigger-patch-site-merged
+    triggers:
+        - gerrit:
+            server-name: 'OpenDaylight'
+            trigger-on:
+                - change-merged-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'republish'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: '{name}'
+                branches:
+                    - branch-compare-type: 'ANT'
+                      branch-pattern: '**/{branch}'
+
+- publisher:
+    name: archive-artifacts
+    publishers:
+        - archive:
+            artifacts: '{artifacts}'
+            allow-empty: true
+            fingerprint: true
+            latest-only: true
+
 - publisher:
     name: email-notification
     publishers:
         - email-ext:
-            recipients: '$DEFAULT_RECIPIENTS'
-            reply-to: '$DEFAULT_REPLYTO'
+            recipients: 'jenkins@lists.opendaylight.org'
+            reply-to:
             content-type: default
-            subject: '$DEFAULT_SUBJECT'
-            body: '$DEFAULT_CONTENT'
+            subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
+            body: |
+                $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
+
+                Check console output at $BUILD_URL to view the results.
             unstable: true
             fixed: true
             send-to:
                 - developers
                 - recipients
+
+- publisher:
+        name: jacoco-report
+        publishers:
+            - jacoco:
+                exec-pattern: "**/**.exec"
+                class-pattern: "**/classes"
+                source-pattern: "**/src/main/java"
+                exclusion-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
+                status-update: true
+                targets:
+                  - branch:
+                      healthy: 10
+                      unhealthy: 20
+                  - method:
+                      healthy: 50
+                      unhealthy: 40
+
+- builder:
+    name: wipe-org-opendaylight-repo
+    builders:
+        - shell: 'if [ -d /tmp/r/org/opendaylight ]; then rm -rf /tmp/r/org/opendaylight; fi'
+
+- builder:
+    name: jacoco-nojava-workaround
+    builders:
+        - shell: 'mkdir -p $WORKSPACE/target/classes $WORKSPACE/jacoco/classes'
+
+- builder:
+    name: check-clm
+    builders:
+        - sonatype-clm:
+            application-name: '{application-name}'
+
+- builder:
+    name: releng-check-unicode
+    builders:
+        - shell: |
+            $WORKSPACE/scripts/check-unicode.sh jjb/
+
+- builder:
+    name: provide-maven-settings
+    builders:
+    - config-file-provider:
+        files:
+        - file-id: '{global-settings-file}'
+          variable: 'GLOBAL_SETTINGS_FILE'
+        - file-id: '{settings-file}'
+          variable: 'SETTINGS_FILE'