Refactoring daisy CI Jobs 39/28039/10
authorJulien <zhang.jun3g@zte.com.cn>
Sat, 4 Feb 2017 16:48:30 +0000 (00:48 +0800)
committerJulien <zhang.jun3g@zte.com.cn>
Tue, 7 Feb 2017 03:41:33 +0000 (11:41 +0800)
Refactoring for:
1. Delete unuseful jobs;
does nothing but echo;
2. Daily build and Daily deployment jobs are missing;
3. Change include-raw-escape including multiple files into multiple
include-raw-escape for better troubleshooting;

JIRA: DAISY-25
JIRA: DAISY-26, fixed by add period building job

Change-Id: I3a1fc64f6416546b5bd1a7730629ad5ed88140b1
Signed-off-by: Julien <zhang.jun3g@zte.com.cn>
jjb/daisy4nfv/daisy-project-jobs.yml [new file with mode: 0644]
jjb/daisy4nfv/daisy4nfv-deploy.sh [new file with mode: 0755]
jjb/daisy4nfv/daisy4nfv-merge-jobs.yml

diff --git a/jjb/daisy4nfv/daisy-project-jobs.yml b/jjb/daisy4nfv/daisy-project-jobs.yml
new file mode 100644 (file)
index 0000000..9df732f
--- /dev/null
@@ -0,0 +1,221 @@
+######################################################################
+# Add daily jobs, for buidoing, deploying and testing
+# TODO:
+# - [ ] Add yardstick and functest for test stage
+######################################################################
+
+#############################
+# Job configuration for daisy
+#############################
+- project:
+    name: daisy-project-jobs
+
+    project: 'daisy'
+
+    installer: 'daisy'
+
+    stream:
+        - master:
+            branch: '{stream}'
+            gs-pathname: ''
+            disabled: false
+        - danube:
+            branch: 'stable/{stream}'
+            gs-pathname: '/{stream}'
+            disabled: true
+
+    phase:
+        - 'build':
+            slave-label: 'opnfv-build-centos'
+        - 'deploy':
+            slave-label: 'opnfv-build-centos'
+        - 'test':
+            slave-label: 'opnfv-build-centos'
+    jobs:
+        - '{installer}-daily-{stream}'
+        - '{installer}-{phase}-daily-{stream}'
+
+########################
+# job templates
+########################
+- job-template:
+    name: '{installer}-daily-{stream}'
+
+    project-type: multijob
+
+    disabled: false
+
+    concurrent: true
+
+    properties:
+        - logrotate-default
+        - throttle:
+            enabled: true
+            max-total: 4
+            option: 'project'
+
+    scm:
+        - git-scm
+
+    triggers:
+        - timed: '0 H/8 * * *'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+            branch: '{branch}'
+        - 'opnfv-build-centos-defaults'
+        - '{installer}-project-parameter':
+            gs-pathname: '{gs-pathname}'
+
+    wrappers:
+        - ssh-agent-wrapper
+        - timeout:
+            timeout: 360
+            fail: true
+
+    builders:
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - multijob:
+            name: build
+            condition: SUCCESSFUL
+            projects:
+                - name: '{installer}-build-daily-{stream}'
+                  current-parameters: false
+                  predefined-parameters: |
+                    BRANCH=$BRANCH
+                    GERRIT_REFSPEC=$GERRIT_REFSPEC
+                    GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+                    GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                  node-parameters: false
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+        - multijob:
+            name: deploy
+            condition: SUCCESSFUL
+            projects:
+                - name: '{installer}-deploy-daily-{stream}'
+                  current-parameters: false
+                  predefined-parameters: |
+                    BRANCH=$BRANCH
+                    GERRIT_REFSPEC=$GERRIT_REFSPEC
+                    GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+                    GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                  node-parameters: false
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+        - multijob:
+            name: test
+            condition: SUCCESSFUL
+            projects:
+                - name: '{installer}-test-daily-{stream}'
+                  current-parameters: false
+                  predefined-parameters: |
+                    BRANCH=$BRANCH
+                    GERRIT_REFSPEC=$GERRIT_REFSPEC
+                    GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+                    GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                  node-parameters: false
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+
+    publishers:
+        - '{installer}-recipients'
+
+- job-template:
+    name: '{installer}-{phase}-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: true
+
+    properties:
+        - logrotate-default
+        - throttle:
+            enabled: true
+            max-total: 6
+            option: 'project'
+        - build-blocker:
+            use-build-blocker: true
+            blocking-jobs:
+                - '{installer}-.*deploy-.*'
+            block-level: 'NODE'
+
+    scm:
+        - git-scm
+
+    wrappers:
+        - ssh-agent-wrapper
+        - timeout:
+            timeout: 360
+            fail: true
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+            branch: '{branch}'
+        - '{slave-label}-defaults'
+        - '{installer}-project-parameter':
+            gs-pathname: '{gs-pathname}'
+
+    builders:
+        - description-setter:
+              description: "Built on $NODE_NAME"
+        - '{installer}-{phase}-daily-macro'
+
+#####################################
+# builder macros
+#####################################
+- builder:
+    name: 'daisy-build-daily-macro'
+    builders:
+        - shell:
+            !include-raw-escape: ./daisy4nfv-basic.sh
+        - shell:
+            !include-raw-escape: ./daisy4nfv-build.sh
+        - shell:
+            !include-raw-escape: ./daisy4nfv-upload-artifact.sh
+        - shell:
+            !include-raw-escape: ./daisy4nfv-workspace-cleanup.sh
+
+- builder:
+    name: 'daisy-deploy-daily-macro'
+    builders:
+        - shell:
+            !include-raw-escape: ./daisy4nfv-download-artifact.sh
+        - shell:
+            !include-raw-escape: ./daisy4nfv-deploy.sh
+
+- builder:
+    name: 'daisy-test-daily-macro'
+    builders:
+        - shell: |
+            #!/bin/bash
+
+            echo "Not activated!"
+
+#####################################
+# parameter macros
+#####################################
+- publisher:
+    name: 'daisy-recipients'
+    publishers:
+        - email:
+            recipients: hu.zhijiang@zte.com.cn lu.yao135@zte.com.cn zhou.ya@zte.com.cn yangyang1@zte.com.cn julienjut@gmail.com
+
+- parameter:
+    name: 'daisy-project-parameter'
+    parameters:
+        - 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_TYPE
+            description: "Directory where the cache to be used during the build is located."
+        - string:
+            name: GS_URL
+            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
+            description: "URL to Google Storage."
diff --git a/jjb/daisy4nfv/daisy4nfv-deploy.sh b/jjb/daisy4nfv/daisy4nfv-deploy.sh
new file mode 100755 (executable)
index 0000000..cc2c103
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+echo "Daisy deployment WIP"
index 72e25b2..11cdc1b 100644 (file)
@@ -2,6 +2,14 @@
     name: 'daisy4nfv-merge-jobs'
 
     project: 'daisy'
+
+    installer: 'daisy'
+
+###########################################################
+# use alias to keep the jobs'name existed already unchanged
+###########################################################
+    alias: 'daisy4nfv'
+
 #####################################
 # branch definitions
 #####################################
             branch: '{stream}'
             gs-pathname: ''
             disabled: false
+        - danube:
+            branch: 'stable/{stream}'
+            gs-pathname: '/{stream}'
+            disabled: true
 #####################################
 # patch merge phases
 #####################################
     phase:
-        - 'basic':
-            slave-label: 'opnfv-build-centos'
         - 'build':
             slave-label: 'opnfv-build-centos'
         - 'deploy-virtual':
             slave-label: 'opnfv-build-centos'
-        - 'smoke-test':
-            slave-label: 'opnfv-build-centos'
-        - 'promote':
-            slave-label: 'opnfv-build-centos'
 #####################################
 # jobs
 #####################################
     jobs:
-        - 'daisy4nfv-merge-{stream}'
-        - 'daisy4nfv-merge-{phase}-{stream}'
+        - '{alias}-merge-{stream}'
+        - '{alias}-merge-{phase}-{stream}'
 #####################################
 # job templates
 #####################################
 - job-template:
-    name: 'daisy4nfv-merge-{stream}'
+    name: '{alias}-merge-{stream}'
 
     project-type: multijob
 
                 - comment-added-contains-event:
                     comment-contains-value: 'remerge'
             projects:
-              - project-compare-type: 'ANT'
-                project-pattern: '{project}'
-                branches:
-                  - branch-compare-type: 'ANT'
-                    branch-pattern: '**/{branch}'
-                forbidden-file-paths:
-                  - compare-type: ANT
-                    pattern: 'docs/**|.gitignore'
+                - project-compare-type: 'ANT'
+                  project-pattern: '{project}'
+                  branches:
+                      - branch-compare-type: 'ANT'
+                        branch-pattern: '**/{branch}'
+                  file-paths:
+                      - compare-type: ANT
+                        pattern: 'ci/**'
+                      - compare-type: ANT
+                        pattern: 'code/**'
+                      - compare-type: ANT
+                        pattern: 'deploy/**'
+                  forbidden-file-paths:
+                      - compare-type: ANT
+                        pattern: 'docs/**'
+                      - compare-type: ANT
+                        pattern: '.gitignore'
             readable-message: true
 
     parameters:
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - 'opnfv-build-defaults'
-        - 'daisy4nfv-merge-defaults':
+        - 'opnfv-build-centos-defaults'
+        - '{alias}-merge-defaults':
             gs-pathname: '{gs-pathname}'
 
     builders:
         - description-setter:
             description: "Built on $NODE_NAME"
-        - multijob:
-            name: basic
-            condition: SUCCESSFUL
-            projects:
-                - name: 'daisy4nfv-merge-basic-{stream}'
-                  current-parameters: false
-                  predefined-parameters: |
-                    BRANCH=$BRANCH
-                    GERRIT_REFSPEC=$GERRIT_REFSPEC
-                    GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
-                    GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
-                  node-parameters: false
-                  kill-phase-on: FAILURE
-                  abort-all-job: true
         - multijob:
             name: build
             condition: SUCCESSFUL
             projects:
-                - name: 'daisy4nfv-merge-build-{stream}'
+                - name: '{alias}-merge-build-{stream}'
                   current-parameters: false
                   predefined-parameters: |
                     BRANCH=$BRANCH
             name: deploy-virtual
             condition: SUCCESSFUL
             projects:
-                - name: 'daisy4nfv-merge-deploy-virtual-{stream}'
-                  current-parameters: false
-                  predefined-parameters: |
-                    BRANCH=$BRANCH
-                    GERRIT_REFSPEC=$GERRIT_REFSPEC
-                    GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
-                    GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
-                  node-parameters: false
-                  kill-phase-on: FAILURE
-                  abort-all-job: true
-        - multijob:
-            name: smoke-test
-            condition: SUCCESSFUL
-            projects:
-                - name: 'daisy4nfv-merge-smoke-test-{stream}'
-                  current-parameters: false
-                  predefined-parameters: |
-                    BRANCH=$BRANCH
-                    GERRIT_REFSPEC=$GERRIT_REFSPEC
-                    GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
-                    GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
-                  node-parameters: false
-                  kill-phase-on: FAILURE
-                  abort-all-job: true
-        - multijob:
-            name: promote
-            condition: SUCCESSFUL
-            projects:
-                - name: 'daisy4nfv-merge-promote-{stream}'
+                - name: '{alias}-merge-deploy-virtual-{stream}'
                   current-parameters: false
                   predefined-parameters: |
                     BRANCH=$BRANCH
                   abort-all-job: true
 
 - job-template:
-    name: 'daisy4nfv-merge-{phase}-{stream}'
+    name: '{alias}-merge-{phase}-{stream}'
 
     disabled: '{obj:disabled}'
 
         - logrotate-default
         - throttle:
             enabled: true
-            max-total: 6
+            max-total: 4
             option: 'project'
         - build-blocker:
             use-build-blocker: true
             blocking-jobs:
-                - 'daisy4nfv-merge-deploy-.*'
-                - 'daisy4nfv-merge-test-.*'
+                - '{alias}-merge-deploy-.*'
             block-level: 'NODE'
 
     scm:
             project: '{project}'
             branch: '{branch}'
         - '{slave-label}-defaults'
-        - 'daisy4nfv-merge-defaults':
+        - '{alias}-merge-defaults':
             gs-pathname: '{gs-pathname}'
 
     builders:
         - description-setter:
             description: "Built on $NODE_NAME"
         - '{project}-merge-{phase}-macro'
+
 #####################################
 # builder macros
 #####################################
-- builder:
-    name: 'daisy-merge-basic-macro'
-    builders:
-        - shell:
-            !include-raw: ./daisy4nfv-basic.sh
-
 - builder:
     name: 'daisy-merge-build-macro'
     builders:
         - shell:
-            !include-raw:
-                - ./daisy4nfv-build.sh
-                - ./daisy4nfv-upload-artifact.sh
-                - ./daisy4nfv-workspace-cleanup.sh
+            !include-raw-escape: ./daisy4nfv-basic.sh
+        - shell:
+            !include-raw-escape: ./daisy4nfv-build.sh
+        - shell:
+            !include-raw-escape: ./daisy4nfv-upload-artifact.sh
+        - shell:
+            !include-raw-escape: ./daisy4nfv-workspace-cleanup.sh
 
 - builder:
     name: 'daisy-merge-deploy-virtual-macro'
     builders:
         - shell:
-            !include-raw:
-                - ./daisy4nfv-download-artifact.sh
-                - ./daisy4nfv-virtual-deploy.sh
-                - ./daisy4nfv-workspace-cleanup.sh
-
-- builder:
-    name: 'daisy-merge-smoke-test-macro'
-    builders:
-        - shell: |
-            #!/bin/bash
-
-            echo "Not activated!"
-
-- builder:
-    name: 'daisy-merge-promote-macro'
-    builders:
-        - shell: |
-            #!/bin/bash
+            !include-raw-escape: ./daisy4nfv-download-artifact.sh
+        - shell:
+            !include-raw-escape: ./daisy4nfv-virtual-deploy.sh
+        - shell:
+            !include-raw-escape: ./daisy4nfv-workspace-cleanup.sh
 
-            echo "Not activated!"
 #####################################
 # parameter macros
 #####################################