fuel: Adjust build blockers and reconfigure generic-deploy job
[releng.git] / jjb / fuel / fuel-project-jobs.yml
index 3ad28c1..e42aa90 100644 (file)
@@ -8,39 +8,86 @@
 
     installer: 'fuel'
 
-# only master branch is enabled at the moment to keep no of jobs sane
     stream:
         - master:
             branch: '{stream}'
             gs-pathname: ''
-#        - brahmaputra:
-#            branch: 'stable/{stream}'
-#            gs-pathname: '/{stream}'
+            disabled: false
+        - brahmaputra:
+            branch: 'stable/{stream}'
+            gs-pathname: '/{stream}'
+            disabled: false
 
     jobs:
+        - 'fuel-build-daily-{stream}'
         - 'fuel-verify-build-{stream}'
         - 'fuel-merge-build-{stream}'
         - 'fuel-merge-deploy-virtual-{stream}'
+        - 'fuel-deploy-generic-daily-{stream}'
 
 ########################
 # job templates
 ########################
 - job-template:
-    name: 'fuel-verify-build-{stream}'
+    name: 'fuel-build-daily-{stream}'
 
-    concurrent: true
+    concurrent: false
 
     properties:
         - throttle:
             enabled: true
-            max-total: 3
+            max-total: 1
+            max-per-node: 1
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - 'ericsson-build-defaults'
+        - '{installer}-defaults'
+        - fuel-project-parameter:
+            gs-pathname: '{gs-pathname}'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    triggers:
+        - pollscm:
+            cron: '0 H/4 * * *'
+
+    wrappers:
+        - timeout:
+            timeout: 360
+            fail: true
+
+    builders:
+        - shell:
+            !include-raw-escape: ./fuel-build.sh
+        - shell:
+            !include-raw-escape: ./fuel-upload-artifact.sh
+        - shell:
+            !include-raw-escape: ./fuel-workspace-cleanup.sh
+
+    publishers:
+        - email:
+            recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
+
+- job-template:
+    name: 'fuel-verify-build-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: true
 
     parameters:
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
             branch: '{branch}'
-        - 'ericsson-ca-build-1-defaults'
+        - 'ericsson-build-defaults'
+        - '{installer}-defaults'
         - fuel-project-parameter:
             gs-pathname: '{gs-pathname}'
 
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
+                file-paths:
+                  - compare-type: ANT
+                    pattern: 'ci/**'
+                  - compare-type: ANT
+                    pattern: 'build/**'
+                  - compare-type: ANT
+                    pattern: 'deploy/**'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**'
             readable-message: true
 
     builders:
         - shell:
-            !include-raw ./fuel-build.sh
+            !include-raw-escape: ./fuel-build.sh
         - shell:
-            !include-raw ./fuel-workspace-cleanup.sh
+            !include-raw-escape: ./fuel-workspace-cleanup.sh
 
 - job-template:
     name: 'fuel-merge-build-{stream}'
 
-    concurrent: true
+    disabled: '{obj:disabled}'
 
-    properties:
-        - throttle:
-            enabled: true
-            max-total: 2
+    concurrent: true
 
     parameters:
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
             branch: '{branch}'
-        - 'ericsson-ca-build-1-defaults'
+        - 'ericsson-build-defaults'
+        - '{installer}-defaults'
         - fuel-project-parameter:
             gs-pathname: '{gs-pathname}'
+
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
                 branches:
                     - branch-compare-type: 'ANT'
                       branch-pattern: '**/{branch}'
+                file-paths:
+                  - compare-type: ANT
+                    pattern: 'ci/**'
+                  - compare-type: ANT
+                    pattern: 'build/**'
+                  - compare-type: ANT
+                    pattern: 'deploy/**'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**'
 
     builders:
         - shell:
-            !include-raw ./fuel-build.sh
+            !include-raw-escape: ./fuel-build.sh
         - shell:
-            !include-raw ./fuel-upload-artifact.sh
+            !include-raw-escape: ./fuel-upload-artifact.sh
         - shell:
-            !include-raw ./fuel-workspace-cleanup.sh
+            !include-raw-escape: ./fuel-workspace-cleanup.sh
 
 - job-template:
     name: 'fuel-merge-deploy-virtual-{stream}'
 
+    disabled: true
+
     concurrent: true
 
     properties:
             enabled: true
             max-total: 2
             max-per-node: 1
+        - build-blocker:
+            use-build-blocker: true
+            blocking-jobs:
+                - 'fuel-os-.*?-virtual-daily-.*'
+                - 'fuel-merge-deploy-virtual-.*'
+            block-level: 'NODE'
 
     parameters:
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
             branch: '{branch}'
-        - 'fuel-deploy-virtual-defaults'
+        - 'virtual-defaults':
+            installer: '{installer}'
+        - '{installer}-defaults'
         - fuel-project-parameter:
             gs-pathname: '{gs-pathname}'
     scm:
 
     wrappers:
         - ssh-agent-credentials:
-            user: '{ssh-credentials}'
+            users: '{ssh-credentials}'
 
     triggers:
         - gerrit:
                 branches:
                     - branch-compare-type: 'ANT'
                       branch-pattern: '**/{branch}'
+                file-paths:
+                  - compare-type: ANT
+                    pattern: 'ci/**'
+                  - compare-type: ANT
+                    pattern: 'build/**'
+                  - compare-type: ANT
+                    pattern: 'deploy/**'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**'
             dependency-jobs: 'fuel-merge-build-{stream}'
 
     builders:
         - shell:
-            !include-raw ./fuel-download-artifact.sh
+            !include-raw-escape: ./fuel-download-artifact.sh
         - shell:
-            !include-raw ./fuel-deploy-virtual.sh
+            !include-raw-escape: ./fuel-deploy.sh
         - shell:
-            !include-raw ./fuel-workspace-cleanup.sh
+            !include-raw-escape: ./fuel-workspace-cleanup.sh
 
     publishers:
         - email:
             recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
 
+- job-template:
+    name: 'fuel-deploy-generic-daily-{stream}'
+
+    concurrent: true
+
+    disabled: false
+
+    properties:
+        - throttle:
+            enabled: true
+            max-per-node: 1
+        - build-blocker:
+            use-build-blocker: true
+            blocking-jobs:
+                - 'fuel-os-.*?-daily-.*'
+                - 'fuel-deploy-generic-daily-.*'
+            block-level: 'NODE'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - '{installer}-defaults'
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/$PROJECT
+            description: 'Git URL to use on this Jenkins Slave'
+        - string:
+            name: DEPLOY_SCENARIO
+            default: 'os-odl_l2-nofeature-ha'
+        - node:
+            name: SLAVE_NAME
+            description: 'Slave name on Jenkins'
+            allowed-slaves:
+                - ericsson-pod2
+                - opnfv-jump-2
+                - ericsson-pod1
+            default-slaves:
+                - ericsson-pod2
+        - fuel-project-parameter:
+            gs-pathname: '{gs-pathname}'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    wrappers:
+        - build-name:
+            name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO'
+
+    builders:
+        - shell:
+            !include-raw-escape: ./fuel-download-artifact.sh
+        - shell:
+            !include-raw-escape: ./fuel-deploy.sh
+
 ########################
 # parameter macros
 ########################
             description: "Directory where the build artifact will be located upon the completion of the build."
         - string:
             name: CACHE_DIRECTORY
-            default: $HOME/opnfv/cache/$INSTALLER
+            default: $HOME/opnfv/cache/$INSTALLER_TYPE
             description: "Directory where the cache to be used during the build is located."
         - string:
             name: GS_URL