jjb: Set disable-strict-forbidden-file-verification to 'true'
[releng.git] / jjb / infra / bifrost-verify.sh
index 2cb41a4..4115ffc 100755 (executable)
@@ -17,42 +17,56 @@ function upload_logs() {
     BIFROST_CONSOLE_LOG="${BUILD_URL}/consoleText"
     BIFROST_GS_URL=${BIFROST_LOG_URL/http:/gs:}
 
-    echo "Uploading build logs to ${BIFROST_LOG_URL}"
-
-    echo "Uploading console output"
-    curl -s -L ${BIFROST_CONSOLE_LOG} | gsutil -q cp -Z - ${BIFROST_GS_URL}/build_log.txt
-
-    [[ ! -d ${WORKSPACE}/logs ]] && exit 0
-
-    pushd ${WORKSPACE}/logs/ &> /dev/null
-    for x in *.log; do
-        echo "Compressing and uploading $x"
-        gsutil -q cp -Z ${x} ${BIFROST_GS_URL}/${x}
-    done
+    # Make sure the old landing page is gone in case
+    # we break later on. We don't want to publish
+    # stale information.
+    # TODO: Maybe cleanup the entire $BIFROST_GS_URL directory
+    # before we upload the new data.
+    gsutil -q rm ${BIFROST_GS_URL}/index.html || true
+
+    echo "Uploading collected bifrost build logs to ${BIFROST_LOG_URL}"
+
+    if [[ -d ${WORKSPACE}/logs ]]; then
+        pushd ${WORKSPACE}/logs &> /dev/null
+        for x in *.log; do
+            echo "Compressing and uploading $x"
+            gsutil -q cp -Z ${x} ${BIFROST_GS_URL}/${x}
+        done
+        popd &> /dev/null
+    fi
 
-    echo "Generating the landing page"
-    cat > index.html <<EOF
+    echo "Generating the ${BIFROST_LOG_URL}/index.html landing page"
+    cat > ${WORKSPACE}/index.html <<EOF
 <html>
 <h1>Build results for <a href=https://$GERRIT_NAME/#/c/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER>$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER</a></h1>
-<h2>Job: $JOB_NAME</h2>
+<h2>Job: <a href=${BUILD_URL}>$JOB_NAME</a></h2>
 <ul>
 <li><a href=${BIFROST_LOG_URL}/build_log.txt>build_log.txt</a></li>
 EOF
 
-    for x in *.log; do
-        echo "<li><a href=${BIFROST_LOG_URL}/${x}>${x}</a></li>" >> index.html
-    done
+    if [[ -d ${WORKSPACE}/logs ]]; then
+        pushd ${WORKSPACE}/logs &> /dev/null
+        for x in *.log; do
+            echo "<li><a href=${BIFROST_LOG_URL}/${x}>${x}</a></li>" >> ${WORKSPACE}/index.html
+        done
+        popd &> /dev/null
+    fi
 
-    cat >> index.html << EOF
+    cat >> ${WORKSPACE}/index.html << EOF
 </ul>
 </html>
 EOF
 
-    gsutil -q cp index.html ${BIFROST_GS_URL}/index.html
-
-    rm index.html
+    # Finally, download and upload the entire build log so we can retain
+    # as much build information as possible
+    echo "Uploading the final console output"
+    curl -s -L ${BIFROST_CONSOLE_LOG} > ${WORKSPACE}/build_log.txt
+    gsutil -q cp -Z ${WORKSPACE}/build_log.txt ${BIFROST_GS_URL}/build_log.txt
+    rm ${WORKSPACE}/build_log.txt
 
-    popd &> /dev/null
+    # Upload landing page
+    gsutil -q cp ${WORKSPACE}/index.html ${BIFROST_GS_URL}/index.html
+    rm ${WORKSPACE}/index.html
 }
 
 function fix_ownership() {