Update return value from postbuildscript 03/53203/2
authorJulien <zhang.jun3g@zte.com.cn>
Wed, 7 Mar 2018 04:03:57 +0000 (12:03 +0800)
committerJulien <zhang.jun3g@zte.com.cn>
Wed, 7 Mar 2018 11:41:35 +0000 (19:41 +0800)
PostBuildScript plugin's result affects Jenkins pipeline, so we should
return the original job running status in the postbuildscript in the end

Update macros:
1. from $POD_NAME to $NODE_NAME
2. from $SCENARIO to $DEPLOY_SCENARIO
2. {installer} to $INSTALLER_TYPE for {installer} is not existed in
   trigger job
3. add parameters definition for they can not be used in trigger jobs by
   predefined-parameters
4. missing TIMESTAMP_END

Change-Id: I354be3d5ad02e53bb988995adc09b59e92a1640a
Signed-off-by: Julien <zhang.jun3g@zte.com.cn>
jjb/daisy4nfv/daisy-daily-jobs.yml
jjb/global/installer-report.sh
jjb/global/releng-macros.yml

index fbbb086..c354ca6 100644 (file)
       - string:
           name: DEPLOY_SCENARIO
           default: '{scenario}'
+      - string:
+          name: INSTALLER_VERSION
+          default: ''
+      - string:
+          name: UPSTREAM_JOB_NAME
+          default: ''
+      - string:
+          name: UPSTREAM_BUILD_ID
+          default: ''
       - 'daisy-project-parameter':
           gs-pathname: '{gs-pathname}'
 
index c9c7305..6cd83f1 100755 (executable)
@@ -15,10 +15,10 @@ gen_content()
 {
     "installer": "$INSTALLER",
     "version": "$INSTALLER_VERSION",
-    "pod_name": "$POD_NAME",
+    "pod_name": "$NODE_NAME",
     "job_name": "$JOB_NAME",
     "build_id": "$BUILD_ID",
-    "scenario": "$SCENARIO",
+    "scenario": "$DEPLOY_SCENARIO",
     "upstream_job_name": "$UPSTREAM_JOB_NAME",
     "upstream_build_id":"$UPSTREAM_BUILD_ID",
     "criteria": "$PROVISION_RESULT",
@@ -33,4 +33,14 @@ echo "Installer: $INSTALLER provision result: $PROVISION_RESULT"
 echo $(gen_content)
 
 set -o xtrace
-curl -H "Content-Type: application/json" -X POST -v -d "$(gen_content)" $TESTAPI_URL/deployresults
+curl -H "Content-Type: application/json" -X POST -v -d "$(gen_content)" \
+    $TESTAPI_URL/deployresults || true
+
+# INFO
+# postbuildscript plugin shall always return the original job running status,
+# for the result returned from postbuildscript affects the CI pipeline.
+if [ "$PROVISION_RESULT" == "PASS" ]; then
+    exit 0
+else
+    exit 1
+fi
index e172d85..8f03234 100644 (file)
           builders:
             - shell: |
                 echo "export PROVISION_RESULT=PASS" >> $WORKSPACE/installer_track.sh
-                echo "export INSTALLER={installer}" >> $WORKSPACE/installer_track.sh
+                echo "export INSTALLER=$INSTALLER_TYPE" >> $WORKSPACE/installer_track.sh
+                echo "export TIMESTAMP_END="\'`date '+%Y-%m-%d %H:%M:%S.%3N'`\' > $WORKSPACE/installer_track.sh
             - shell:
                 !include-raw: installer-report.sh
       - postbuildscript:
           builders:
             - shell: |
                 echo "export PROVISION_RESULT=FAIL" >> $WORKSPACE/installer_track.sh
-                echo "export INSTALLER={installer}" >> $WORKSPACE/installer_track.sh
+                echo "export INSTALLER=$INSTALLER_TYPE" >> $WORKSPACE/installer_track.sh
+                echo "export TIMESTAMP_END="\'`date '+%Y-%m-%d %H:%M:%S.%3N'`\' > $WORKSPACE/installer_track.sh
             - shell:
                 !include-raw: installer-report.sh