create onosfw CI jobs 27/5027/2
authormeimei <meimei@huawei.com>
Tue, 22 Dec 2015 07:30:36 +0000 (15:30 +0800)
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>
Tue, 22 Dec 2015 11:10:12 +0000 (11:10 +0000)
JIRA: ONOSFW-151

Change-Id: I0d7f1f77733cdda5d1b6c429d84de7eaa4a7a759
Signed-off-by: meimei <meimei@huawei.com>
jjb/onosfw/onosfw.yml [new file with mode: 0644]
jjb/opnfv/slave-params.yml
jjb/releng-defaults.yaml
jjb/releng-macros.yaml

diff --git a/jjb/onosfw/onosfw.yml b/jjb/onosfw/onosfw.yml
new file mode 100644 (file)
index 0000000..fbeec08
--- /dev/null
@@ -0,0 +1,180 @@
+- project:
+
+    name: onosfw
+
+    jobs:
+        - 'onosfw-verify-{stream}'
+        - 'onosfw-daily-{stream}'
+        - 'onosfw-build-{stream}'
+
+# only master branch is enabled at the moment to keep no of jobs sane
+    stream:
+        - master:
+            branch: 'master'
+            gs-pathname: ''
+#        - brahmaputra:
+#            branch: 'stable/brahmaputra'
+#            gs-pathname: '/brahmaputra'
+
+    project: 'onosfw'
+
+########################
+# job templates
+########################
+- job-template:
+    name: 'onosfw-verify-{stream}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - 'opnfv-build-defaults'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    triggers:
+        - gerrit:
+            trigger-on:
+                - 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: 'reverify'
+            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'
+
+    builders:
+        - 'builder-onosfw-build'
+
+- job-template:
+    name: 'onosfw-daily-{stream}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - 'opnfv-build-defaults'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    triggers:
+        - timed: '@midnight'
+
+    builders:
+        - trigger-builds:
+          - project: 'onosfw-build-{stream}'
+            git-revision: true
+            block: true
+
+- job-template:
+    name: 'onosfw-build-{stream}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - 'opnfv-build-defaults'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    builders:
+        - 'builder-onosfw-build'
+        - 'builder-onosfw-upload-artifact'
+
+
+
+########################
+# builder macros
+########################
+- builder:
+    name: 'builder-onosfw-build'
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+
+            # log info to console
+            echo "Starting the build of $PROJECT. This could take some time..."
+            echo "--------------------------------------------------------"
+            echo
+
+            # create the cache directory if it doesn't exist
+            [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
+            [[ -d $BUILD_DIRECTORY ]] || mkdir -p $BUILD_DIRECTORY
+
+            # set OPNFV_ARTIFACT_VERSION
+            export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
+
+            # start the build
+            cd $WORKSPACE/
+            ./ci/build.sh  $BUILD_DIRECTORY/
+
+            # list the build artifacts
+            ls -al $BUILD_DIRECTORY
+
+            # save information regarding artifact into file
+            (
+                echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
+                echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
+                echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
+                echo "OPNFV_ARTIFACT_URL=$GS_BASE/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
+                echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/onosfw.iso | cut -d' ' -f1)"
+                echo "OPNFV_BUILD_URL=$BUILD_URL"
+            ) > $BUILD_DIRECTORY/opnfv.properties
+            echo
+            echo "--------------------------------------------------------"
+            echo "Done!"
+
+
+- builder:
+    name: 'builder-onosfw-upload-artifact'
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+
+            # log info to console
+            echo "Uploading the $INSTALLER artifact. This could take some time..."
+            echo "--------------------------------------------------------"
+            echo
+
+            # source the opnfv.properties to get ARTIFACT_VERSION
+            source $BUILD_DIRECTORY/opnfv.properties
+
+            # upload artifact and additional files to google storage
+            gsutil cp $BUILD_DIRECTORY/onosfw.iso gs://$GS_BASE/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
+            gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_BASE/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
+            gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_BASE/latest.properties > gsutil.latest.log 2>&1
+
+            echo
+            echo "--------------------------------------------------------"
+            echo "Done!"
+            echo "Artifact is available as http://$GS_BASE/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
+
+
index ddc1786..576f605 100644 (file)
             name: GIT_BASE
             default: https://gerrit.opnfv.org/gerrit/$PROJECT
             description: 'Git URL to use on this Jenkins Slave'
+        - string:
+            name: BUILD_DIRECTORY
+            default: $WORKSPACE/build_output
+            description: "Directory where the build artifact will be located upon the completion of the build."
 
 - parameter:
     name: 'intel-us-build-1-defaults'
index fed1056..a15a3c6 100644 (file)
@@ -18,3 +18,4 @@
     project-type: freestyle
 
     node: master
+
index f9cb952..b94fd8f 100644 (file)
@@ -7,6 +7,14 @@
             name: PROJECT
             default: '{project}'
             description: "JJB configured PROJECT parameter to identify an opnfv Gerrit project"
+        - string:
+            name: GS_BASE
+            default: artifacts.opnfv.org/$PROJECT/
+            description: "URL to Google Storage."
+        - string:
+            name: GS_BASE_PROXY
+            default: build.opnfv.org/artifacts/$PROJECT/
+            description: "URL to Google Storage proxy"
 
 - parameter:
     name: gerrit-parameter