Restrict Gerrit Triggers to OPNFV Gerrit Server
[releng.git] / jjb / kvmfornfv / kvmfornfv.yml
index 345edca..4cba6d1 100644 (file)
@@ -1,52 +1,72 @@
 - project:
     name: kvmfornfv
-    jobs:
-        - 'kvmfornfv-verify-{stream}'
-        - 'kvmfornfv-merge-{stream}'
 
-    # stream:    branch with - in place of / (eg. stable-arno)
-    # branch:    branch (eg. stable/arno)
+    project: '{name}'
+
     stream:
         - master:
-            branch: 'master'
-
-    project: 'kvmfornfv'
-
+            branch: '{stream}'
+            gs-pathname: ''
+            disabled: false
+        - colorado:
+            branch: 'stable/{stream}'
+            gs-pathname: '/{stream}'
+            disabled: false
+#####################################
+# patch verification phases
+#####################################
+    phase:
+        - 'build':
+            slave-label: 'opnfv-build-ubuntu'
+        - 'test':
+            slave-label: 'intel-pod1'
+#####################################
+# patch verification phases
+#####################################
+    testname:
+        - 'Idle_Idle':
+            trigger_time: '@midnight'
+        - 'Stress_Idle':
+            trigger_time: '@midnight+3hours'
+        - 'Packet_Forwarding':
+            trigger_time: '@midnight+6hours'
+#####################################
+# patch verification phases
+#####################################
+    jobs:
+        - 'kvmfornfv-verify-{stream}'
+        - 'kvmfornfv-verify-{phase}-{stream}'
+        - 'kvmfornfv-merge-{stream}'
+        - 'kvmfornfv-{testname}-daily-{stream}'
+        - 'kvmfornfv-{testname}-daily-{phase}-{stream}'
+#####################################
+# job templates
+#####################################
 - job-template:
     name: 'kvmfornfv-verify-{stream}'
 
-    node: ericsson-build
+    project-type: multijob
+
+    disabled: '{obj:disabled}'
 
-    project-type: freestyle
+    concurrent: true
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 3
+            option: 'project'
 
     parameters:
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
-            branch: 'master'
-        - string:
-            name: GIT_BASE
-            default: https://gerrit.opnfv.org/gerrit/$PROJECT
-            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
-
-    scm:
-        - gerrit-trigger-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: '$GERRIT_REFSPEC'
-            choosing-strategy: 'gerrit'
-
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
+            branch: '{branch}'
+        - 'opnfv-build-ubuntu-defaults'
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
                     comment-contains-value: 'reverify'
             projects:
               - project-compare-type: 'ANT'
-                project-pattern: 'kvmfornfv'
+                project-pattern: '{project}'
                 branches:
                   - branch-compare-type: 'ANT'
-                    branch-pattern: '**/master'
+                    branch-pattern: '**/{branch}'
 
     builders:
-        - shell:
-            !include-raw ./kvmfornfv-build.sh
-
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - multijob:
+            name: build
+            condition: SUCCESSFUL
+            projects:
+                - name: 'kvmfornfv-verify-build-{stream}'
+                  current-parameters: false
+                  predefined-parameters: |
+                    GERRIT_BRANCH=$GERRIT_BRANCH
+                    GERRIT_REFSPEC=$GERRIT_REFSPEC
+                    GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+                  node-parameters: false
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+        - multijob:
+            name: test
+            condition: SUCCESSFUL
+            projects:
+                - name: 'kvmfornfv-verify-test-{stream}'
+                  current-parameters: false
+                  predefined-parameters: |
+                    GERRIT_BRANCH=$GERRIT_BRANCH
+                    GERRIT_REFSPEC=$GERRIT_REFSPEC
+                    GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+                  node-parameters: false
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
 - job-template:
-    name: 'kvmfornfv-merge-{stream}'
+    name: 'kvmfornfv-verify-{phase}-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: true
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
 
-    # builder-merge job to run JJB update
-    #
-    # This job's purpose is to update all the JJB
+    wrappers:
+        - ssh-agent-credentials:
+            users:
+                - '{ssh-credentials}'
+        - timeout:
+            timeout: 360
+            fail: true
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - '{slave-label}-defaults'
+        - 'kvmfornfv-defaults':
+            gs-pathname: '{gs-pathname}'
 
-    node: ericsson-build
+    builders:
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - '{project}-verify-{phase}-macro'
 
-    project-type: freestyle
+- job-template:
+    name: 'kvmfornfv-merge-{stream}'
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
+    disabled: '{obj:disabled}'
 
     parameters:
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
-            branch: 'master'
-        - string:
-            name: GIT_BASE
-            default: https://gerrit.opnfv.org/gerrit/$PROJECT
-            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+            branch: '{branch}'
+        - 'opnfv-build-ubuntu-defaults'
+        - 'kvmfornfv-defaults':
+            gs-pathname: '{gs-pathname}'
 
     scm:
         - gerrit-trigger-scm:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
                     comment-contains-value: 'remerge'
             projects:
               - project-compare-type: 'ANT'
-                project-pattern: 'kvmfornfv'
+                project-pattern: '{project}'
                 branches:
                     - branch-compare-type: 'ANT'
-                      branch-pattern: '**/master'
+                      branch-pattern: '**/{branch}'
 
     builders:
         - shell:
-            !include-raw ./kvmfornfv-build.sh
+            !include-raw: ./kvmfornfv-build.sh
+
+- job-template:
+    name: 'kvmfornfv-{testname}-daily-{stream}'
+
+    project-type: multijob
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - 'opnfv-build-ubuntu-defaults'
+        - 'kvmfornfv-defaults':
+            gs-pathname: '{gs-pathname}'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    triggers:
+        - timed: '{trigger_time}'
+
+    builders:
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - multijob:
+            name: build
+            condition: SUCCESSFUL
+            projects:
+                - name: 'kvmfornfv-Idle_Idle-daily-build-{stream}'
+                  current-parameters: false
+                  node-parameters: false
+                  git-revision: true
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+        - multijob:
+            name: build
+            condition: SUCCESSFUL
+            projects:
+                - name: 'kvmfornfv-Stress_Idle-daily-build-{stream}'
+                  current-parameters: false
+                  node-parameters: false
+                  git-revision: true
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+        - multijob:
+            name: build
+            condition: SUCCESSFUL
+            projects:
+                - name: 'kvmfornfv-Packet_Forwarding-daily-build-{stream}'
+                  current-parameters: false
+                  node-parameters: false
+                  git-revision: true
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+
+        - multijob:
+            name: build
+            condition: SUCCESSFUL
+            projects:
+                - name: 'kvmfornfv-Idle_Idle-daily-test-{stream}'
+                  current-parameters: false
+                  node-parameters: false
+                  git-revision: true
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+
+        - multijob:
+            name: test
+            condition: SUCCESSFUL
+            projects:
+                - name: 'kvmfornfv-Stress_Idle-daily-test-{stream}'
+                  current-parameters: false
+                  node-parameters: false
+                  git-revision: true
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+        - multijob:
+            name: build
+            condition: SUCCESSFUL
+            projects:
+                - name: 'kvmfornfv-Packet_Forwarding-daily-test-{stream}'
+                  current-parameters: false
+                  node-parameters: false
+                  git-revision: true
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+
+
+- job-template:
+    name: 'kvmfornfv-{testname}-daily-{phase}-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    wrappers:
+        - ssh-agent-credentials:
+            users:
+                - '{ssh-credentials}'
+        - timeout:
+            timeout: 360
+            fail: true
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - '{slave-label}-defaults'
+        - 'kvmfornfv-defaults':
+            gs-pathname: '{gs-pathname}'
+
+    builders:
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - '{project}-{testname}-daily-{phase}-macro'
+########################
+# parameter macros
+########################
+- parameter:
+    name: 'kvmfornfv-Idle_Idle-daily-test-{stream}'
+    parameters:
+        - string:
+            name: TEST_NAME
+            default: 'idle_idle'
+            description: "Daily job to run cyclictest without applying any stress"
+- parameter:
+    name: 'kvmfornfv-Stress_Idle-daily-test-{stream}'
+    parameters:
+        - string:
+            name: TEST_NAME
+            default: 'stress_idle'
+            description: "Daily job to run cyclictest with stress applied"
+- parameter:
+    name: 'kvmfornfv-Packet_Forwarding-daily-test-{stream}'
+    parameters:
+        - string:
+            name: TEST_NAME
+            default: 'packet_forward'
+            description: "Daily job to run packet forwarding test cases"
+#####################################
+# builder macros
+#####################################
+- builder:
+    name: 'kvmfornfv-verify-build-macro'
+    builders:
+        - shell:
+            !include-raw: ./kvmfornfv-build.sh
+        - shell:
+            !include-raw: ./kvmfornfv-upload-artifact.sh
+- builder:
+    name: 'kvmfornfv-verify-test-macro'
+    builders:
+        - shell:
+            !include-raw: ./kvmfornfv-download-artifact.sh
+        - shell:
+            !include-raw: ./kvmfornfv-test.sh
+- builder:
+    name: 'kvmfornfv-Idle_Idle-daily-build-macro'
+    builders:
+        - shell:
+            !include-raw: ./kvmfornfv-build.sh
+        - shell:
+            !include-raw: ./kvmfornfv-upload-artifact.sh
+- builder:
+    name: 'kvmfornfv-Stress_Idle-daily-build-macro'
+    builders:
+        - shell:
+            !include-raw: ./kvmfornfv-build.sh
+        - shell:
+            !include-raw: ./kvmfornfv-upload-artifact.sh
+- builder:
+    name: 'kvmfornfv-Packet_Forwarding-daily-build-macro'
+    builders:
+        - shell:
+            !include-raw: ./kvmfornfv-build.sh
+        - shell:
+            !include-raw: ./kvmfornfv-upload-artifact.sh
+- builder:
+    name: 'kvmfornfv-Idle_Idle-daily-test-macro'
+    builders:
+        - shell:
+            !include-raw: ./kvmfornfv-download-artifact.sh
+        - shell:
+            !include-raw: ./kvmfornfv-test.sh
+- builder:
+    name: 'kvmfornfv-Stress_Idle-daily-test-macro'
+    builders:
+        - shell:
+            !include-raw: ./kvmfornfv-download-artifact.sh
+        - shell:
+            !include-raw: ./kvmfornfv-test.sh
+- builder:
+    name: 'kvmfornfv-Packet_Forwarding-daily-test-macro'
+    builders:
+        - shell:
+            !include-raw: ./kvmfornfv-download-artifact.sh
+        - shell:
+            !include-raw: ./kvmfornfv-test.sh
+
+#####################################
+# parameter macros
+#####################################
+- parameter:
+    name: 'kvmfornfv-defaults'
+    parameters:
+        - string:
+            name: GS_URL
+            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
+            description: "URL to Google Storage."