Updates Apex jjb to execute build 19/2119/4
authorTim Rozet <trozet@redhat.com>
Tue, 29 Sep 2015 19:08:26 +0000 (15:08 -0400)
committerTim Rozet <trozet@redhat.com>
Wed, 30 Sep 2015 16:27:24 +0000 (12:27 -0400)
JIRA: RELENG-40

Change-Id: I49c0876a9ff5081190edf1cb526e17209cefa7ee
Signed-off-by: Tim Rozet <trozet@redhat.com>
jjb/apex/apex.yml

index 46e578b..7c91a5c 100644 (file)
@@ -1,8 +1,8 @@
 - project:
     name: apex
     jobs:
-        - 'apex-verify'
-        - 'apex-merge'
+        - 'apex-verify-{stream}'
+        - 'apex-merge-{stream}'
         - 'apex-daily-{stream}'
 
     # stream:    branch with - in place of / (eg. stable-arno)
     stream:
         - master:
             branch: 'master'
+            gs-pathname: ''
+            flags: '-fM'
+            disabled: false
 
     project: 'apex'
 
 - job-template:
-    name: 'apex-verify'
+    name: 'apex-verify-{stream}'
 
-    node: ericsson-build
+    node: opnfv-jump-1
 
     project-type: freestyle
 
         artifactNumToKeep: -1
 
     parameters:
+        - apex-parameter:
+            gs-pathname: '{gs-pathname}'
+            flags: '{flags}'
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
-            branch: 'master'
+            branch: '{branch}'
         - 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."
+            default: ssh://gerrit.opnfv.org:29418/$PROJECT
+            description: "Used for overriding the GIT URL coming from parameters macro."
 
     scm:
         - gerrit-trigger-scm:
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/master'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**'
 
     builders:
-        - shell:
-            echo "Hello World"
+        - 'apex-build'
+        - 'apex-workspace-cleanup'
 
 - job-template:
-    name: 'apex-merge'
+    name: 'apex-merge-{stream}'
 
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    node: master
+    node: opnfv-jump-1
 
     project-type: freestyle
 
         artifactNumToKeep: 5
 
     parameters:
+        - apex-parameter:
+            gs-pathname: '{gs-pathname}'
+            flags: '{flags}'
         - project-parameter:
             project: '{project}'
         - gerrit-parameter:
-            branch: 'master'
+            branch: '{branch}'
         - 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."
+            default: ssh://gerrit.opnfv.org:29418/$PROJECT
+            description: "Used for overriding the GIT URL coming from parameters macro."
 
     scm:
         - gerrit-trigger-scm:
                 branches:
                     - branch-compare-type: 'ANT'
                       branch-pattern: '**/master'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**'
 
     builders:
-        - shell:
-            echo "Hello World"
-
+        - 'apex-build'
+        - 'apex-workspace-cleanup'
 
 - job-template:
     name: 'apex-daily-{stream}'
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
-    node: master
+    node: opnfv-jump-1
 
     disabled: true
 
     parameters:
         - project-parameter:
             project: '{project}'
+        - apex-parameter:
+            gs-pathname: '{gs-pathname}'
+            flags: '{flags}'
 
     scm:
         - git-scm:
             user: '{ssh-credentials}'
 
     triggers:
-        - timed: 'H H * * *'
+        - 'apex-{stream}'
 
     builders:
-        - shell:
-             echo "Hello World"
+        - 'apex-build'
+        - 'apex-upload-artifact'
+        - 'apex-workspace-cleanup'
+
+########################
+# parameter macros
+########################
+- parameter:
+    name: apex-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/{gs-pathname}
+            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."
+        - string:
+            name: FLAGS
+            default: '{flags}'
+            description: "Build Flags"
+
+########################
+# builder macros
+########################
+- builder:
+    name: 'apex-build'
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+            # log info to console
+            echo "Starting the build of Apex using OpenStack Master packages. This will take some time..."
+            echo "---------------------------------------------------------------------------------------"
+            echo
+            # create the cache directory if it doesn't exist
+            [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_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 $FLAGS -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
+            # list the contents of BUILD_OUTPUT directory
+            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_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
+                echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
+                echo "OPNFV_BUILD_URL=$BUILD_URL"
+            ) > $WORKSPACE/opnfv.properties
+            echo
+            echo "--------------------------------------------------------"
+
+- builder:
+    name: 'apex-workspace-cleanup'
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+
+            # delete everything that is in $WORKSPACE
+            /bin/rm -rf $WORKSPACE
+
+- builder:
+    name: 'apex-upload-artifact'
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+
+            # log info to console
+            echo "Uploading the Apex artifact. This could take some time..."
+            echo "--------------------------------------------------------"
+            echo
+
+            # source the opnfv.properties to get ARTIFACT_VERSION
+            source $WORKSPACE/opnfv.properties
+
+            # upload artifact and additional files to google storage
+            gsutil cp $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
+            gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
+            gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
+
+            echo
+            echo "--------------------------------------------------------"
+            echo "Done!"
+            echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
+
+
+#######################
+# trigger macros
+########################
+- trigger:
+    name: 'apex-master'
+    triggers:
+        - timed: '0 11 * * *'
+