summaryrefslogtreecommitdiffstats
path: root/jjb/infra
diff options
context:
space:
mode:
authorMarkos Chandras <mchandras@suse.de>2017-01-18 14:54:07 +0000
committerMarkos Chandras <mchandras@suse.de>2017-01-19 23:51:28 +0000
commit65954c4dd99697344fca78ef2c6dda50416f55f0 (patch)
treeeefefe4f0e8463dddc077ee36cff946f1a5cde1b /jjb/infra
parent8c47f582083ab6ddde1a2fa8e02bbaf9ab27f592 (diff)
jjb: infra: bifrost-upload-logs.sh: Consolidate upload step to main job
In case of job failures, the upload builder is not executed so the published links are dead. We move the upload step to the EXIT handler which is always executed despite the main job exit code. Moreover, The gsutil tool can compress the files itself but in such a way that the web browser can still display the contents without the need for the user to download and uncompress the file himself. This makes debugging more convenient. We also make the whole upload process somewhat less noisy. Finally, we include the $GERRIT_PATCHSET_NUMBER in the title and hyperlink since we provide and retain build results for each patchset instead of a single set just for the latest one. Change-Id: I43efd519a5743661d1f258aa338fb0769f59b6ed Suggested-by: Julien Zhang <zhang.jun3g@zte.com.cn> # compression only Signed-off-by: Markos Chandras <mchandras@suse.de>
Diffstat (limited to 'jjb/infra')
-rwxr-xr-xjjb/infra/bifrost-upload-logs.sh52
-rw-r--r--jjb/infra/bifrost-verify-jobs.yml7
-rwxr-xr-xjjb/infra/bifrost-verify.sh51
3 files changed, 50 insertions, 60 deletions
diff --git a/jjb/infra/bifrost-upload-logs.sh b/jjb/infra/bifrost-upload-logs.sh
deleted file mode 100755
index 8e1982dff..000000000
--- a/jjb/infra/bifrost-upload-logs.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 SUSE.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-set -eu
-set -o pipefail
-
-BIFROST_CONSOLE_LOG="${BUILD_URL}/consoleText"
-BIFROST_GS_URL=${BIFROST_LOG_URL/http:/gs:}
-BIFROST_COMPRESS_SUFFIX="tar.gz"
-BIFROST_COMPRESSED_LOGS=()
-
-echo "Uploading build logs to ${BIFROST_LOG_URL}"
-
-echo "Uploading console output"
-curl -L ${BIFROST_CONSOLE_LOG} | gsutil cp - ${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"
- tar -czf - $x | gsutil cp - ${BIFROST_GS_URL}/${x}.${BIFROST_COMPRESS_SUFFIX} 1>/dev/null
- BIFROST_COMPRESSED_LOGS+=(${x}.${BIFROST_COMPRESS_SUFFIX})
-done
-popd &> /dev/null
-
-echo "Generating the landing page"
-cat > index.html << EOF
-<html>
-<h1>Build results for <a href=https://$GERRIT_NAME/#/c/$GERRIT_CHANGE_NUMBER>$GERRIT_NAME/$GERRIT_CHANGE_NUMBER</a></h1>
-<h2>Job: $JOB_NAME</h2>
-<ul>
-<li><a href=${BIFROST_LOG_URL}/build_log.txt>build_log.txt</a></li>
-EOF
-
-for x in ${BIFROST_COMPRESSED_LOGS[@]}; do
- echo "<li><a href=${BIFROST_LOG_URL}/${x}>${x}</a></li>" >> index.html
-done
-
-cat >> index.html << EOF
-</ul>
-</html>
-EOF
-
-gsutil cp index.html ${BIFROST_GS_URL}/index.html
diff --git a/jjb/infra/bifrost-verify-jobs.yml b/jjb/infra/bifrost-verify-jobs.yml
index 6232859ee..8184b6343 100644
--- a/jjb/infra/bifrost-verify-jobs.yml
+++ b/jjb/infra/bifrost-verify-jobs.yml
@@ -142,7 +142,6 @@
builders:
- bifrost-set-name
- bifrost-build
- - bifrost-artifacts-upload
publishers:
- email:
@@ -220,9 +219,3 @@
builders:
- shell:
!include-raw: ./bifrost-verify.sh
-
-- builder:
- name: bifrost-artifacts-upload
- builders:
- - shell:
- !include-raw: ./bifrost-upload-logs.sh
diff --git a/jjb/infra/bifrost-verify.sh b/jjb/infra/bifrost-verify.sh
index 9fbb1d0d9..2cb41a45b 100755
--- a/jjb/infra/bifrost-verify.sh
+++ b/jjb/infra/bifrost-verify.sh
@@ -11,7 +11,49 @@ set -o errexit
set -o nounset
set -o pipefail
-trap fix_ownership EXIT
+trap cleanup_and_upload EXIT
+
+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
+
+ echo "Generating the landing page"
+ cat > 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>
+<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
+
+ cat >> index.html << EOF
+</ul>
+</html>
+EOF
+
+ gsutil -q cp index.html ${BIFROST_GS_URL}/index.html
+
+ rm index.html
+
+ popd &> /dev/null
+}
function fix_ownership() {
if [ -z "${JOB_URL+x}" ]; then
@@ -25,6 +67,13 @@ function fix_ownership() {
fi
}
+function cleanup_and_upload() {
+ original_exit=$?
+ fix_ownership
+ upload_logs
+ exit $original_exit
+}
+
# check distro to see if we support it
if [[ ! "$DISTRO" =~ (trusty|centos7|suse) ]]; then
echo "Distro $DISTRO is not supported!"