Merge "support ODT format creation in docs-build.sh"
[releng.git] / jjb / bottlenecks / bottlenecks.yml
index 582fbec..828fd21 100644 (file)
@@ -4,89 +4,45 @@
 - project:
     name: bottlenecks
     jobs:
-        - 'bottlenecks-test'
-        - 'bottlenecks-verify'
-        - 'bottlenecks-daily-{stream}'
-        - 'bottlenecks-merge'
+        - 'bottlenecks-verify-{stream}'
+        - 'bottlenecks-daily-{installer}-{suite}-{pod}-{stream}'
+        - 'bottlenecks-{suite}-upload-artifacts-{stream}'
+    pod:
+        - lf:
+            node: 'opnfv-jump-2'
+            installer_type: 'fuel'
+            installer_ip: '10.20.0.2'
 
-    # stream:    branch with - in place of / (eg. stable-arno)
-    # branch:    branch (eg. stable/arno)
+    installer:
+        - 'fuel'
+
+    suite:
+        - 'rubbos'
+        - 'vstf'
+
+# only master branch is enabled at the moment to keep no of jobs sane
     stream:
         - master:
-            branch: 'master'
+            branch: '{stream}'
+            gs-pathname: ''
+#        - brahmaputra:
+#            branch: 'stable/{stream}'
+#            gs-pathname: '/{stream}'
 
     project: 'bottlenecks'
-    somevar: 'foo'
 ###############################
 # Job templates
 ##############################
 - job-template:
-    name: 'bottlenecks-test'
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
-
-    builders:
-        - shell: |
-            echo "Hello world from bottlenecks"
-
-- job-template:
-    name: 'bottlenecks-daily-{stream}'
-
-    # Job template for daily builders
-    #
-    # Required Variables:
-    #     stream:    branch with - in place of / (eg. stable)
-    #     branch:    branch (eg. stable)
-
-    varsetabove: '{somevar}'
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
+    name: 'bottlenecks-verify-{stream}'
 
     parameters:
         - project-parameter:
             project: '{project}'
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
+        - gerrit-parameter:
             branch: '{branch}'
+        - 'opnfv-build-defaults'
 
-    triggers:
-        - timed: 'H H * * *'
-
-    prebuilders:
-        - test-macro
-
-    builders:
-        - shell: |
-            echo "hello world"
-
-    postbuilders:
-        - test-macro
-
-- job-template:
-    name: 'bottlenecks-verify'
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-        - gerrit-parameter:
-            branch: 'master'
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
                 project-pattern: '{project}'
                 branches:
                   - branch-compare-type: 'ANT'
-                    branch-pattern: '**/master'
+                    branch-pattern: '**/{branch}'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**|.gitignore'
 
     builders:
         - shell: |
-            echo "hello world"
+            echo "Nothing to verify!"
 
 - job-template:
-    name: 'bottlenecks-merge'
+    name: 'bottlenecks-{suite}-upload-artifacts-{stream}'
+
+    node: ericsson-build
 
-    # builder-merge job to run JJB update
-    #
-    # This job's purpose is to update all the JJB
+    concurrent: true
 
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 1
+            max-per-node: 1
 
     parameters:
         - project-parameter:
             project: '{project}'
-        - gerrit-parameter:
-            branch: 'master'
+        - 'ericsson-ca-build-1-defaults'
+        - bottlenecks-parameter:
+            gs-pathname: '{gs-pathname}'
+            suite: '{suite}'
 
     scm:
-        - gerrit-trigger-scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    builders:
+        - 'bottlenecks-builder-upload-artifact'
+        - 'bottlenecks-workspace-cleanup'
+
+- job-template:
+    name: 'bottlenecks-daily-{installer}-{suite}-{pod}-{stream}'
+
+    disabled: false
+
+    node: '{node}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - 'opnfv-jump-2-defaults'
+        - string:
+            name: POD_NAME
+            default: '{pod}'
+            description: "POD where the job runs"
+        - string:
+            name: INSTALLER_TYPE
+            default: '{installer_type}'
+            description: "Installer name that is used for deployment."
+        - string:
+            name: INSTALLER_IP
+            default: '{installer_ip}'
+            description: "Installer IP."
+        - string:
+            name: GERRIT_REFSPEC_DEBUG
+            default: ''
+            description: "Gerrit refspec for debug."
+
+    scm:
+        - git-scm:
             credentials-id: '{ssh-credentials}'
             refspec: ''
-            choosing-strategy: 'default'
+            branch: '{branch}'
+
+    wrappers:
+        - timeout:
+            timeout: 120
+            fail: true
 
     triggers:
+        - 'bottlenecks-trigger-{pod}'
+
+    builders:
+        - 'bottlenecks-fetch-os-creds'
+        - 'bottlenecks-run-{suite}'
+
+    publishers:
+        - email:
+            recipients: hongbo.tianhongbo@huawei.com matthew.lijun@huawei.com liangqi1@huawei.com liyiting@huawei.com
+
+####################
+# parameter macros
+####################
+- parameter:
+    name: bottlenecks-parameter
+    parameters:
+        - string:
+           name: CACHE_DIR
+           default: $WORKSPACE/cache/{suite}
+           description: "the cache to store packages downloaded from public IP"
+        - string:
+           name: SUITE_URL
+           default: gs://artifacts.opnfv.org/bottlenecks/{suite}{gs-pathname}
+           description: "LF artifacts url for storage of bottlenecks packages"
+        - string:
+           name: PACKAGE_URL
+           default: http://205.177.226.237:9999/bottlenecks/{suite}/
+           description: "the url where we store the packages used for bottlenecks rubbos"
+
+###################################
+#builders for bottlenecks project
+###################################
+- builder:
+    name: bottlenecks-fetch-os-creds
+    builders:
+        - shell:
+            !include-raw ../../utils/fetch_os_creds.sh
+
+- builder:
+    name: bottlenecks-run-rubbos
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+
+            echo "Bottlenecks: rubbos running now..."
+            cd $WORKSPACE
+            ./ci/run.sh $GERRIT_REFSPEC_DEBUG
+
+- builder:
+    name: bottlenecks-run-vstf
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+
+            echo "Bottlenecks: vstf running now..."
+            cd $WORKSPACE
+            ./ci/vstf_run.sh $GERRIT_REFSPEC_DEBUG
+- builder:
+    name: bottlenecks-builder-upload-artifact
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+
+            echo "Bottlenecks: upload to artifacts from the public IP"
+
+            [[ -d $CACHE_DIR ]] || mkdir -p $CACHE_DIR
+
+            for file in $(curl -s $PACKAGE_URL |
+                               grep href |
+                               sed 's/.*href="//' |
+                               sed 's/".*//' |
+                               grep '^[a-zA-Z].*'); do
+                 curl --connect-timeout 10 -o $CACHE_DIR/$file $PACKAGE_URL$file -v
+                 echo "bottlenecks: copy file $CACHE_DIR/$file to $SUITE_URL"
+                 gsutil cp $CACHE_DIR/$file $SUITE_URL
+            done
+
+- builder:
+    name: bottlenecks-workspace-cleanup
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+
+            echo "Bottlenecks: cleanup cache used for storage downloaded packages"
+
+            /bin/rm -rf $CACHE_DIR
+
+#######################
+#trigger macros
+#######################
+- trigger:
+    name: 'bottlenecks-trigger-lf'
+    triggers:
+        - timed: '0 6 * * *'
         - gerrit:
             trigger-on:
-                - change-merged-event
+                - 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: 'remerge'
+                    comment-contains-value: 'reverify'
             projects:
               - project-compare-type: 'ANT'
-                project-pattern: 'bottlenecks'
+                project-pattern: '{project}'
                 branches:
-                    - branch-compare-type: 'ANT'
-                      branch-pattern: '**/master'
-
-    builders:
-        - shell: |
-            echo "hello world"
-
+                  - branch-compare-type: 'ANT'
+                    branch-pattern: '**/{branch}'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**|.gitignore'