Merge "make the doc builder to pass project param for pdf filename"
[releng.git] / jjb / fuel / fuel.yml
index 1694909..60a69c6 100644 (file)
@@ -1,24 +1,45 @@
+########################
+# Job configuration for fuel
+########################
 - project:
+
     name: fuel
+
+    project: 'fuel'
+
+    installer: 'fuel'
+
     jobs:
-        - 'fuel-verify'
-        - 'fuel-merge'
+        - 'fuel-verify-build-{stream}'
+        - 'fuel-merge-build-{stream}'
+        - 'fuel-merge-deploy-virtual-{stream}'
         - 'fuel-daily-{stream}'
+        - 'fuel-build-{stream}'
+        - 'fuel-deploy-{stream}'
+        - 'fuel-lab-reconfig-{stream}'
 
-    # stream:    branch with - in place of / (eg. stable-arno)
-    # branch:    branch (eg. stable/arno)
     stream:
         - master:
             branch: 'master'
+            gs-pathname: ''
 
-    project: 'fuel'
+########################
+# job templates
+########################
 
 - job-template:
-    name: 'fuel-verify'
+    name: 'fuel-verify-build-{stream}'
+
+    project-type: freestyle
 
     node: ericsson-build
 
-    project-type: freestyle
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 3
 
     logrotate:
         daysToKeep: 30
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
-            branch: 'master'
+            branch: '{branch}'
+        - fuel-parameter:
+            installer: '{installer}'
+            gs-pathname: '{gs-pathname}'
+
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
@@ -40,6 +65,9 @@
     wrappers:
         - ssh-agent-credentials:
             user: '{ssh-credentials}'
+        - timeout:
+            timeout: 360
+            fail: true
 
     triggers:
         - gerrit:
                     comment-contains-value: 'reverify'
             projects:
               - project-compare-type: 'ANT'
-                project-pattern: 'fuel'
+                project-pattern: '{project}'
                 branches:
                   - branch-compare-type: 'ANT'
-                    branch-pattern: '**/master'
+                    branch-pattern: '**/{branch}'
 
     builders:
         - shell:
-            echo "Hello World"
+            !include-raw ./fuel-build.sh
+        - shell:
+            !include-raw ./fuel-workspace-cleanup.sh
 
 - job-template:
-    name: 'fuel-merge'
+    name: 'fuel-merge-build-{stream}'
 
-    # builder-merge job to run JJB update
-    #
-    # This job's purpose is to update all the JJB
+    project-type: freestyle
 
-    node: master
+    node: ericsson-build
 
-    project-type: freestyle
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 2
 
     logrotate:
         daysToKeep: 30
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
-            branch: 'master'
+            branch: '{branch}'
+        - fuel-parameter:
+            installer: '{installer}'
+            gs-pathname: ''
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    wrappers:
+        - ssh-agent-credentials:
+            user: '{ssh-credentials}'
+        - timeout:
+            timeout: 360
+            fail: true
+
+    triggers:
+        - gerrit:
+            trigger-on:
+                - change-merged-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'remerge'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: '{project}'
+                branches:
+                    - branch-compare-type: 'ANT'
+                      branch-pattern: '**/{branch}'
 
+    builders:
+        - shell:
+            !include-raw ./fuel-build.sh
+        - shell:
+            !include-raw ./fuel-upload-artifact.sh
+        - shell:
+            !include-raw ./fuel-workspace-cleanup.sh
+
+- job-template:
+    name: 'fuel-merge-deploy-virtual-{stream}'
+
+    project-type: freestyle
+
+    node: fuel-deploy-virtual
+
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 2
+            max-per-node: 1
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 40
+        artifactDaysToKeep: -1
+        artifactNumToKeep: 5
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - fuel-parameter:
+            installer: '{installer}'
+            gs-pathname: ''
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
                     comment-contains-value: 'remerge'
             projects:
               - project-compare-type: 'ANT'
-                project-pattern: 'fuel'
+                project-pattern: '{project}'
                 branches:
                     - branch-compare-type: 'ANT'
-                      branch-pattern: '**/master'
+                      branch-pattern: '**/{branch}'
+            dependency-jobs: 'fuel-merge-build-{stream}'
 
     builders:
         - shell:
-            echo "Hello World"
+            !include-raw ./fuel-download-artifact.sh
+        - shell:
+            !include-raw ./fuel-deploy-virtual.sh
+        - shell:
+            !include-raw ./fuel-workspace-cleanup.sh
 
+    publishers:
+        - email:
+            recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
 
 - job-template:
     name: 'fuel-daily-{stream}'
 
-    # Job template for daily builders
-    #
-    # Required Variables:
-    #     stream:    branch with - in place of / (eg. stable)
-    #     branch:    branch (eg. stable)
-    node: master
+    project-type: freestyle
 
-    disabled: true
+    node: ericsson-build
 
-    project-type: freestyle
+    disabled: false
+
+    triggers:
+        - 'fuel-{strem}-trigger'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - fuel-parameter:
+            installer: '{installer}'
+            gs-pathname: '{gs-pathname}'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
 
     logrotate:
         daysToKeep: '{build-days-to-keep}'
         artifactDaysToKeep: '{build-artifact-days-to-keep}'
         artifactNumToKeep: '{build-artifact-num-to-keep}'
 
+    builders:
+        - trigger-builds:
+          - project: 'fuel-build-{stream}'
+            git-revision: true
+            block: true
+        - trigger-builds:
+          - project: 'fuel-deploy-{stream}'
+            git-revision: true
+            block: true
+        - trigger-builds:
+          - project: 'functest-fuel-{stream}'
+            block: true
+            block-thresholds:
+                build-step-failure-threshold: 'never'
+                failure-threshold: 'never'
+                unstable-threshold: 'FAILURE'
+        - trigger-builds:
+          - project: 'yardstick-fuel-lf-{stream}'
+            block: true
+            block-thresholds:
+                build-step-failure-threshold: 'never'
+                failure-threshold: 'never'
+                unstable-threshold: 'FAILURE'
+
+    triggers:
+        - 'fuel-{stream}-daily-trigger'
+
+- job-template:
+    name: 'fuel-build-{stream}'
+
+    project-type: freestyle
+
+    node: ericsson-build
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
     parameters:
         - project-parameter:
             project: '{project}'
+        - fuel-parameter:
+            installer: '{installer}'
+            gs-pathname: '{gs-pathname}'
 
     scm:
         - git-scm:
             branch: '{branch}'
 
     wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
+        - timeout:
+            timeout: 360
+            fail: true
 
-    triggers:
-        - timed: 'H H * * *'
+    builders:
+        - shell:
+            !include-raw ./fuel-build.sh
+        - shell:
+            !include-raw ./fuel-upload-artifact.sh
+        - shell:
+            !include-raw ./fuel-workspace-cleanup.sh
+
+    publishers:
+        - email:
+            recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
+
+- job-template:
+    name: 'fuel-deploy-{stream}'
+
+    project-type: freestyle
+
+    disabled: false
+
+    node: opnfv-jump-2
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - fuel-parameter:
+            installer: '{installer}'
+            gs-pathname: '{gs-pathname}'
+        - string:
+            name: GIT_BASE
+            default: ssh://gerrit.opnfv.org:29418/$PROJECT
+            description: "POD2 has some issues with cloning using https so that's why GIT_BASE is overriden here again."
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - shell:
+            !include-raw ./fuel-download-artifact.sh
+        - shell:
+            !include-raw ./fuel-deploy.sh
+
+    publishers:
+        - email:
+            recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
+
+- job-template:
+    name: 'fuel-lab-reconfig-{stream}'
+
+    project-type: freestyle
+
+    disabled: true
+
+    node: master
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - fuel-parameter:
+            installer: '{installer}'
+            gs-pathname: '{gs-pathname}'
+        - string:
+            name: GIT_BASE
+            default: ssh://gerrit.opnfv.org:29418/$PROJECT
+            description: "Used for overriding the GIT URL coming from parameters macro."
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    properties:
+        - build-blocker:
+            use-build-blocker: true
+            blocking-jobs:
+                - "apex-daily.*"
 
     builders:
         - shell:
-             echo "Hello World"
+            !include-raw ./fuel-lab-reconfig.sh
+
+########################
+# parameter macros
+########################
+- parameter:
+    name: fuel-parameter
+    parameters:
+        - string:
+            name: INSTALLER
+            default: '{installer}'
+            description: "Installer to use."
+        - string:
+            name: BUILD_DIRECTORY
+            default: $WORKSPACE/build_output
+            description: "Directory where the build artifact will be located upon the completion of the build."
+        - string:
+            name: CACHE_DIRECTORY
+            default: $HOME/opnfv/cache/$INSTALLER
+            description: "Directory where the cache to be used during the build is located."
+        - 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."
+        - string:
+            name: GS_URL
+            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
+            description: "URL to Google Storage."
+
+########################
+# trigger macros
+########################
+- trigger:
+    name: 'fuel-master-daily-trigger'
+    triggers:
+        - timed: '0 3 * * *'