From 70d3cc23be2868d31f6bde68bc59211c5fdf084c Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Tue, 30 Jan 2018 18:21:49 +0100 Subject: [PATCH 1/7] Jenkinsfile : regenerated with zproject support for DO_DIST_DOCS option --- Jenkinsfile | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4f293248..75b4511d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -34,6 +34,10 @@ pipeline { defaultValue: true, description: 'Attempt a build with docs in this run? (Note: corresponding tools are required in the build environment)', name: 'DO_BUILD_DOCS') + booleanParam ( + defaultValue: false, + description: 'Publish as an archive a "dist" tarball from a build with docs in this run? (Note: corresponding tools are required in the build environment; enabling this enforces DO_BUILD_DOCS too)', + name: 'DO_DIST_DOCS') booleanParam ( defaultValue: true, description: 'Attempt "make check" in this run?', @@ -132,12 +136,19 @@ pipeline { } } stage ('build with DOCS') { - when { expression { return ( params.DO_BUILD_DOCS ) } } + when { expression { return ( params.DO_BUILD_DOCS || params.DO_DIST_DOCS ) } } steps { dir("tmp/build-DOCS") { deleteDir() unstash 'prepped' sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; ./configure --enable-drafts=yes --with-docs=yes' + script { + if ( params.DO_DIST_DOCS ) { + sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; make dist-gzip || exit ; DISTFILE="`ls -1tc *.tar.gz | head -1`" && [ -n "$DISTFILE" ] && [ -s "$DISTFILE" ] || exit ; mv -f "$DISTFILE" __dist.tar.gz' + archiveArtifacts artifacts: '__dist.tar.gz' + sh "rm -f __dist.tar.gz" + } + } sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; make -k -j4 || make' sh 'echo "Are GitIgnores good after make with docs? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' stash (name: 'built-docs', includes: '**/*', excludes: '**/cppcheck.xml') @@ -332,10 +343,13 @@ pipeline { if ( env.BRANCH_NAME =~ myDEPLOY_BRANCH_PATTERN ) { def GIT_URL = sh(returnStdout: true, script: """git remote -v | egrep '^origin' | awk '{print \$2}' | head -1""").trim() def GIT_COMMIT = sh(returnStdout: true, script: 'git rev-parse --verify HEAD').trim() + def DIST_ARCHIVE = "" + if ( params.DO_DIST_DOCS ) { DIST_ARCHIVE = env.BUILD_URL + "artifact/__dist.tar.gz" } build job: "${myDEPLOY_JOB_NAME}", parameters: [ string(name: 'DEPLOY_GIT_URL', value: "${GIT_URL}"), string(name: 'DEPLOY_GIT_BRANCH', value: env.BRANCH_NAME), - string(name: 'DEPLOY_GIT_COMMIT', value: "${GIT_COMMIT}") + string(name: 'DEPLOY_GIT_COMMIT', value: "${GIT_COMMIT}"), + string(name: 'DEPLOY_DIST_ARCHIVE', value: "${DIST_ARCHIVE}") ], quietPeriod: 0, wait: myDEPLOY_REPORT_RESULT, propagate: myDEPLOY_REPORT_RESULT } else { echo "Not deploying because branch '${env.BRANCH_NAME}' did not match filter '${myDEPLOY_BRANCH_PATTERN}'" From 59347f68b837f1cbda53717ced014889be8f1bd0 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Tue, 30 Jan 2018 18:24:29 +0100 Subject: [PATCH 2/7] Jenkinsfile : regenerated with zproject support for cppcheck among other tests --- Jenkinsfile | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 75b4511d..863dcd9c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -77,17 +77,6 @@ pipeline { // Note: your Jenkins setup may benefit from similar setup on side of agents: // PATH="/usr/lib64/ccache:/usr/lib/ccache:/usr/bin:/bin:${PATH}" stages { - stage ('cppcheck') { - when { expression { return ( params.DO_CPPCHECK ) } } - steps { - dir("tmp") { - deleteDir() - } - sh 'cppcheck --std=c++11 --enable=all --inconclusive --xml --xml-version=2 . 2>cppcheck.xml' - archiveArtifacts artifacts: '**/cppcheck.xml' - sh 'rm -f cppcheck.xml' - } - } stage ('prepare') { steps { dir("tmp") { @@ -164,6 +153,23 @@ pipeline { } stage ('check') { parallel { + stage ('cppcheck') { + when { expression { return ( params.DO_CPPCHECK ) } } + steps { + dir("tmp/test-cppcheck") { + deleteDir() + unstash 'prepped' + sh 'cppcheck --std=c++11 --enable=all --inconclusive --xml --xml-version=2 . 2>cppcheck.xml' + archiveArtifacts artifacts: '**/cppcheck.xml' + sh 'rm -f cppcheck.xml' + script { + if ( params.DO_CLEANUP_AFTER_BUILD ) { + deleteDir() + } + } + } + } + } stage ('check with DRAFT') { when { expression { return ( params.DO_BUILD_WITH_DRAFT_API && params.DO_TEST_CHECK ) } } steps { From 4110c6b7518a825eeccc2a82657b50212823e022 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Tue, 30 Jan 2018 18:27:12 +0100 Subject: [PATCH 3/7] Jenkinsfile : regenerated with zproject support for configurable test timeout --- Jenkinsfile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 863dcd9c..97f50eb4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,6 +66,10 @@ pipeline { defaultValue: true, description: 'Require that there are no files not discovered changed/untracked via .gitignore after builds and tests?', name: 'REQUIRE_GOOD_GITIGNORE') + string ( + defaultValue: "30", + description: 'When running tests, use this timeout (in minutes; be sure to leave enough for double-job of a distcheck too)', + name: 'USE_TEST_TIMEOUT') booleanParam ( defaultValue: true, description: 'When using temporary subdirs in build/test workspaces, wipe them after successful builds?', @@ -176,7 +180,7 @@ pipeline { dir("tmp/test-check-withDRAFT") { deleteDir() unstash 'built-draft' - timeout (time: 20, unit: 'MINUTES') { + timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" check' } sh 'echo "Are GitIgnores good after make check with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -194,7 +198,7 @@ pipeline { dir("tmp/test-check-withoutDRAFT") { deleteDir() unstash 'built-nondraft' - timeout (time: 20, unit: 'MINUTES') { + timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" check' } sh 'echo "Are GitIgnores good after make check without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -212,7 +216,7 @@ pipeline { dir("tmp/test-memcheck-withDRAFT") { deleteDir() unstash 'built-draft' - timeout (time: 20, unit: 'MINUTES') { + timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" memcheck && exit 0 ; echo "Re-running failed ($?) memcheck with greater verbosity" >&2 ; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" VERBOSE=1 memcheck-verbose' } sh 'echo "Are GitIgnores good after make memcheck with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -230,7 +234,7 @@ pipeline { dir("tmp/test-memcheck-withoutDRAFT") { deleteDir() unstash 'built-nondraft' - timeout (time: 20, unit: 'MINUTES') { + timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" memcheck && exit 0 ; echo "Re-running failed ($?) memcheck with greater verbosity" >&2 ; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" VERBOSE=1 memcheck-verbose' } sh 'echo "Are GitIgnores good after make memcheck without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -248,7 +252,7 @@ pipeline { dir("tmp/test-distcheck-withDRAFT") { deleteDir() unstash 'built-draft' - timeout (time: 30, unit: 'MINUTES') { + timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; DISTCHECK_CONFIGURE_FLAGS="--enable-drafts=yes --with-docs=no" ; export DISTCHECK_CONFIGURE_FLAGS; make DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" distcheck' } sh 'echo "Are GitIgnores good after make distcheck with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -266,7 +270,7 @@ pipeline { dir("tmp/test-distcheck-withoutDRAFT") { deleteDir() unstash 'built-nondraft' - timeout (time: 30, unit: 'MINUTES') { + timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; DISTCHECK_CONFIGURE_FLAGS="--enable-drafts=no --with-docs=no" ; export DISTCHECK_CONFIGURE_FLAGS; make DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" distcheck' } sh 'echo "Are GitIgnores good after make distcheck without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -284,7 +288,7 @@ pipeline { dir("tmp/test-install-withDRAFT") { deleteDir() unstash 'built-draft' - timeout (time: 20, unit: 'MINUTES') { + timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh """CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:\${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}" DESTDIR="${params.USE_TEST_INSTALL_DESTDIR}/withDRAFT" install""" } sh """cd "${params.USE_TEST_INSTALL_DESTDIR}/withDRAFT" && find . -ls""" @@ -303,7 +307,7 @@ pipeline { dir("tmp/test-install-withoutDRAFT") { deleteDir() unstash 'built-nondraft' - timeout (time: 20, unit: 'MINUTES') { + timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh """CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:\${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}" DESTDIR="${params.USE_TEST_INSTALL_DESTDIR}/withoutDRAFT" install""" } sh """cd "${params.USE_TEST_INSTALL_DESTDIR}/withoutDRAFT" && find . -ls""" @@ -322,7 +326,7 @@ pipeline { dir("tmp/test-install-withDOCS") { deleteDir() unstash 'built-docs' - timeout (time: 20, unit: 'MINUTES') { + timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh """CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:\${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}" DESTDIR="${params.USE_TEST_INSTALL_DESTDIR}/withDOCS" install""" } sh """cd "${params.USE_TEST_INSTALL_DESTDIR}/withDOCS" && find . -ls""" From c6a6ec39a66eefabdeea16e86c47375eaa985a17 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Tue, 30 Jan 2018 18:28:17 +0100 Subject: [PATCH 4/7] Jenkinsfile : regenerated with zproject support for better workspace cleanup before test preparation --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 97f50eb4..754e4fcf 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -84,6 +84,8 @@ pipeline { stage ('prepare') { steps { dir("tmp") { + sh 'if [ -s Makefile ]; then make -k distclean || true ; fi' + sh 'chmod -R u+w .' deleteDir() } sh './autogen.sh' From 7186cd515d9bc14f0d81ef1f4b8713ef1901c009 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Tue, 30 Jan 2018 18:31:42 +0100 Subject: [PATCH 5/7] Jenkinsfile : regenerated with zproject support for failed-test retries --- Jenkinsfile | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 754e4fcf..c1f113c8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -182,9 +182,11 @@ pipeline { dir("tmp/test-check-withDRAFT") { deleteDir() unstash 'built-draft' + retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" check' } + } sh 'echo "Are GitIgnores good after make check with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' script { if ( params.DO_CLEANUP_AFTER_BUILD ) { @@ -200,9 +202,11 @@ pipeline { dir("tmp/test-check-withoutDRAFT") { deleteDir() unstash 'built-nondraft' + retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" check' } + } sh 'echo "Are GitIgnores good after make check without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' script { if ( params.DO_CLEANUP_AFTER_BUILD ) { @@ -218,9 +222,11 @@ pipeline { dir("tmp/test-memcheck-withDRAFT") { deleteDir() unstash 'built-draft' + retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" memcheck && exit 0 ; echo "Re-running failed ($?) memcheck with greater verbosity" >&2 ; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" VERBOSE=1 memcheck-verbose' } + } sh 'echo "Are GitIgnores good after make memcheck with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' script { if ( params.DO_CLEANUP_AFTER_BUILD ) { @@ -236,9 +242,11 @@ pipeline { dir("tmp/test-memcheck-withoutDRAFT") { deleteDir() unstash 'built-nondraft' + retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" memcheck && exit 0 ; echo "Re-running failed ($?) memcheck with greater verbosity" >&2 ; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" VERBOSE=1 memcheck-verbose' } + } sh 'echo "Are GitIgnores good after make memcheck without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' script { if ( params.DO_CLEANUP_AFTER_BUILD ) { @@ -254,9 +262,11 @@ pipeline { dir("tmp/test-distcheck-withDRAFT") { deleteDir() unstash 'built-draft' + retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; DISTCHECK_CONFIGURE_FLAGS="--enable-drafts=yes --with-docs=no" ; export DISTCHECK_CONFIGURE_FLAGS; make DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" distcheck' } + } sh 'echo "Are GitIgnores good after make distcheck with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' script { if ( params.DO_CLEANUP_AFTER_BUILD ) { @@ -272,9 +282,11 @@ pipeline { dir("tmp/test-distcheck-withoutDRAFT") { deleteDir() unstash 'built-nondraft' + retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; DISTCHECK_CONFIGURE_FLAGS="--enable-drafts=no --with-docs=no" ; export DISTCHECK_CONFIGURE_FLAGS; make DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" distcheck' } + } sh 'echo "Are GitIgnores good after make distcheck without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' script { if ( params.DO_CLEANUP_AFTER_BUILD ) { @@ -290,9 +302,11 @@ pipeline { dir("tmp/test-install-withDRAFT") { deleteDir() unstash 'built-draft' + retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh """CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:\${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}" DESTDIR="${params.USE_TEST_INSTALL_DESTDIR}/withDRAFT" install""" } + } sh """cd "${params.USE_TEST_INSTALL_DESTDIR}/withDRAFT" && find . -ls""" sh 'echo "Are GitIgnores good after make install with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' script { @@ -309,9 +323,11 @@ pipeline { dir("tmp/test-install-withoutDRAFT") { deleteDir() unstash 'built-nondraft' + retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh """CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:\${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}" DESTDIR="${params.USE_TEST_INSTALL_DESTDIR}/withoutDRAFT" install""" } + } sh """cd "${params.USE_TEST_INSTALL_DESTDIR}/withoutDRAFT" && find . -ls""" sh 'echo "Are GitIgnores good after make install without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' script { @@ -328,9 +344,11 @@ pipeline { dir("tmp/test-install-withDOCS") { deleteDir() unstash 'built-docs' + retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { sh """CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:\${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}" DESTDIR="${params.USE_TEST_INSTALL_DESTDIR}/withDOCS" install""" } + } sh """cd "${params.USE_TEST_INSTALL_DESTDIR}/withDOCS" && find . -ls""" sh 'echo "Are GitIgnores good after make install with Docs? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' script { From aec6ea78c51ebbbe81f43f19d17ca5a48fb72586 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Tue, 30 Jan 2018 18:32:46 +0100 Subject: [PATCH 6/7] Jenkinsfile : regenerated with zproject support for logging test-suite results --- Jenkinsfile | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index c1f113c8..59473018 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -184,7 +184,16 @@ pipeline { unstash 'built-draft' retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { + script { + try { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" check' + } + catch (Exception e) { + dir("..") { + archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true + } + } + } } } sh 'echo "Are GitIgnores good after make check with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -204,7 +213,16 @@ pipeline { unstash 'built-nondraft' retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { + script { + try { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" check' + } + catch (Exception e) { + dir("..") { + archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true + } + } + } } } sh 'echo "Are GitIgnores good after make check without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -224,7 +242,16 @@ pipeline { unstash 'built-draft' retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { + script { + try { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" memcheck && exit 0 ; echo "Re-running failed ($?) memcheck with greater verbosity" >&2 ; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" VERBOSE=1 memcheck-verbose' + } + catch (Exception e) { + dir("..") { + archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true + } + } + } } } sh 'echo "Are GitIgnores good after make memcheck with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -244,7 +271,16 @@ pipeline { unstash 'built-nondraft' retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { + script { + try { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" memcheck && exit 0 ; echo "Re-running failed ($?) memcheck with greater verbosity" >&2 ; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" VERBOSE=1 memcheck-verbose' + } + catch (Exception e) { + dir("..") { + archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true + } + } + } } } sh 'echo "Are GitIgnores good after make memcheck without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -264,7 +300,16 @@ pipeline { unstash 'built-draft' retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { + script { + try { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; DISTCHECK_CONFIGURE_FLAGS="--enable-drafts=yes --with-docs=no" ; export DISTCHECK_CONFIGURE_FLAGS; make DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" distcheck' + } + catch (Exception e) { + dir("..") { + archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true + } + } + } } } sh 'echo "Are GitIgnores good after make distcheck with drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' @@ -284,7 +329,16 @@ pipeline { unstash 'built-nondraft' retry(3) { timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') { + script { + try { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; DISTCHECK_CONFIGURE_FLAGS="--enable-drafts=no --with-docs=no" ; export DISTCHECK_CONFIGURE_FLAGS; make DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" distcheck' + } + catch (Exception e) { + dir("..") { + archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true + } + } + } } } sh 'echo "Are GitIgnores good after make distcheck without drafts? (should have no output below)"; git status -s || if [ "${params.REQUIRE_GOOD_GITIGNORE}" = false ]; then echo "WARNING GitIgnore tests found newly changed or untracked files" >&2 ; exit 0 ; else echo "FAILED GitIgnore tests" >&2 ; exit 1; fi' From 21b0628cd156abd6ae3cf1ee6f501300ba4fe26f Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Tue, 30 Jan 2018 19:51:40 +0100 Subject: [PATCH 7/7] Jenkinsfile : regenerated with zproject support for logging test-suite results (revised) --- Jenkinsfile | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 59473018..14ee607a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -189,9 +189,9 @@ pipeline { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" check' } catch (Exception e) { - dir("..") { - archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true - } + sh 'D="`pwd`"; B="`basename "$D"`" ; tar czf test-suite_"$B".tgz `find . -name '*.trs'` `find . -name '*.log'`' + archiveArtifacts artifacts: "**/test-suite*.tgz", allowEmpty: true + throw e } } } @@ -218,9 +218,9 @@ pipeline { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" check' } catch (Exception e) { - dir("..") { - archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true - } + sh 'D="`pwd`"; B="`basename "$D"`" ; tar czf test-suite_"$B".tgz `find . -name '*.trs'` `find . -name '*.log'`' + archiveArtifacts artifacts: "**/test-suite*.tgz", allowEmpty: true + throw e } } } @@ -247,9 +247,9 @@ pipeline { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" memcheck && exit 0 ; echo "Re-running failed ($?) memcheck with greater verbosity" >&2 ; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" VERBOSE=1 memcheck-verbose' } catch (Exception e) { - dir("..") { - archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true - } + sh 'D="`pwd`"; B="`basename "$D"`" ; tar czf test-suite_"$B".tgz `find . -name '*.trs'` `find . -name '*.log'`' + archiveArtifacts artifacts: "**/test-suite*.tgz", allowEmpty: true + throw e } } } @@ -276,9 +276,9 @@ pipeline { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" memcheck && exit 0 ; echo "Re-running failed ($?) memcheck with greater verbosity" >&2 ; make LD_LIBRARY_PATH="$LD_LIBRARY_PATH" VERBOSE=1 memcheck-verbose' } catch (Exception e) { - dir("..") { - archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true - } + sh 'D="`pwd`"; B="`basename "$D"`" ; tar czf test-suite_"$B".tgz `find . -name '*.trs'` `find . -name '*.log'`' + archiveArtifacts artifacts: "**/test-suite*.tgz", allowEmpty: true + throw e } } } @@ -305,9 +305,9 @@ pipeline { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; DISTCHECK_CONFIGURE_FLAGS="--enable-drafts=yes --with-docs=no" ; export DISTCHECK_CONFIGURE_FLAGS; make DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" distcheck' } catch (Exception e) { - dir("..") { - archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true - } + sh 'D="`pwd`"; B="`basename "$D"`" ; tar czf test-suite_"$B".tgz `find . -name '*.trs'` `find . -name '*.log'`' + archiveArtifacts artifacts: "**/test-suite*.tgz", allowEmpty: true + throw e } } } @@ -334,9 +334,9 @@ pipeline { sh 'CCACHE_BASEDIR="`pwd`" ; export CCACHE_BASEDIR; LD_LIBRARY_PATH="`pwd`/src/.libs:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH; DISTCHECK_CONFIGURE_FLAGS="--enable-drafts=no --with-docs=no" ; export DISTCHECK_CONFIGURE_FLAGS; make DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS" LD_LIBRARY_PATH="$LD_LIBRARY_PATH" distcheck' } catch (Exception e) { - dir("..") { - archiveArtifacts artifacts: "**/test-suite.log", allowEmpty: true - } + sh 'D="`pwd`"; B="`basename "$D"`" ; tar czf test-suite_"$B".tgz `find . -name '*.trs'` `find . -name '*.log'`' + archiveArtifacts artifacts: "**/test-suite*.tgz", allowEmpty: true + throw e } } }