mirror of
https://github.com/zeromq/libzmq.git
synced 2025-04-02 19:03:42 +00:00
Improve handling of Jenkinsfile failed testlog archives
Port from zproject / czmq : Jenkinsfile : * add RETRY_NUMBER suffix to test-suite tarballs * and set build UNSTABLE if retries were needed
This commit is contained in:
parent
c6bd123650
commit
2559a99570
126
Jenkinsfile
vendored
126
Jenkinsfile
vendored
@ -182,20 +182,23 @@ pipeline {
|
||||
dir("tmp/test-check-withDRAFT") {
|
||||
deleteDir()
|
||||
unstash 'built-draft'
|
||||
retry(3) {
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
script {
|
||||
try {
|
||||
script {
|
||||
def RETRY_NUMBER = 0
|
||||
retry(3) {
|
||||
RETRY_NUMBER++
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
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) {
|
||||
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
|
||||
}
|
||||
catch (Exception e) {
|
||||
currentBuild.result = 'UNSTABLE' // Jenkins should not let the verdict "improve"
|
||||
sh """D="`pwd`"; B="`basename "\$D"`" ; [ "${RETRY_NUMBER}" -gt 0 ] && T="_try-${RETRY_NUMBER}" || T="" ; tar czf "test-suite_${BUILD_TAG}_\${B}\${T}.tar.gz" `find . -name '*.trs'` `find . -name '*.log'`"""
|
||||
archiveArtifacts artifacts: "**/test-suite*.tar.gz", allowEmpty: true
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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 ) {
|
||||
@ -211,20 +214,23 @@ pipeline {
|
||||
dir("tmp/test-check-withoutDRAFT") {
|
||||
deleteDir()
|
||||
unstash 'built-nondraft'
|
||||
retry(3) {
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
script {
|
||||
try {
|
||||
script {
|
||||
def RETRY_NUMBER = 0
|
||||
retry(3) {
|
||||
RETRY_NUMBER++
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
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) {
|
||||
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
|
||||
}
|
||||
catch (Exception e) {
|
||||
currentBuild.result = 'UNSTABLE' // Jenkins should not let the verdict "improve"
|
||||
sh """D="`pwd`"; B="`basename "\$D"`" ; [ "${RETRY_NUMBER}" -gt 0 ] && T="_try-${RETRY_NUMBER}" || T="" ; tar czf "test-suite_${BUILD_TAG}_\${B}\${T}.tar.gz" `find . -name '*.trs'` `find . -name '*.log'`"""
|
||||
archiveArtifacts artifacts: "**/test-suite*.tar.gz", allowEmpty: true
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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 ) {
|
||||
@ -240,20 +246,23 @@ pipeline {
|
||||
dir("tmp/test-memcheck-withDRAFT") {
|
||||
deleteDir()
|
||||
unstash 'built-draft'
|
||||
retry(3) {
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
script {
|
||||
try {
|
||||
script {
|
||||
def RETRY_NUMBER = 0
|
||||
retry(3) {
|
||||
RETRY_NUMBER++
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
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) {
|
||||
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
|
||||
}
|
||||
catch (Exception e) {
|
||||
currentBuild.result = 'UNSTABLE' // Jenkins should not let the verdict "improve"
|
||||
sh """D="`pwd`"; B="`basename "\$D"`" ; [ "${RETRY_NUMBER}" -gt 0 ] && T="_try-${RETRY_NUMBER}" || T="" ; tar czf "test-suite_${BUILD_TAG}_\${B}\${T}.tar.gz" `find . -name '*.trs'` `find . -name '*.log'`"""
|
||||
archiveArtifacts artifacts: "**/test-suite*.tar.gz", allowEmpty: true
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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 ) {
|
||||
@ -269,20 +278,23 @@ pipeline {
|
||||
dir("tmp/test-memcheck-withoutDRAFT") {
|
||||
deleteDir()
|
||||
unstash 'built-nondraft'
|
||||
retry(3) {
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
script {
|
||||
try {
|
||||
script {
|
||||
def RETRY_NUMBER = 0
|
||||
retry(3) {
|
||||
RETRY_NUMBER++
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
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) {
|
||||
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
|
||||
}
|
||||
catch (Exception e) {
|
||||
currentBuild.result = 'UNSTABLE' // Jenkins should not let the verdict "improve"
|
||||
sh """D="`pwd`"; B="`basename "\$D"`" ; [ "${RETRY_NUMBER}" -gt 0 ] && T="_try-${RETRY_NUMBER}" || T="" ; tar czf "test-suite_${BUILD_TAG}_\${B}\${T}.tar.gz" `find . -name '*.trs'` `find . -name '*.log'`"""
|
||||
archiveArtifacts artifacts: "**/test-suite*.tar.gz", allowEmpty: true
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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 ) {
|
||||
@ -298,20 +310,23 @@ pipeline {
|
||||
dir("tmp/test-distcheck-withDRAFT") {
|
||||
deleteDir()
|
||||
unstash 'built-draft'
|
||||
retry(3) {
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
script {
|
||||
try {
|
||||
script {
|
||||
def RETRY_NUMBER = 0
|
||||
retry(3) {
|
||||
RETRY_NUMBER++
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
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) {
|
||||
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
|
||||
}
|
||||
catch (Exception e) {
|
||||
currentBuild.result = 'UNSTABLE' // Jenkins should not let the verdict "improve"
|
||||
sh """D="`pwd`"; B="`basename "\$D"`" ; [ "${RETRY_NUMBER}" -gt 0 ] && T="_try-${RETRY_NUMBER}" || T="" ; tar czf "test-suite_${BUILD_TAG}_\${B}\${T}.tar.gz" `find . -name '*.trs'` `find . -name '*.log'`"""
|
||||
archiveArtifacts artifacts: "**/test-suite*.tar.gz", allowEmpty: true
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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 ) {
|
||||
@ -327,20 +342,23 @@ pipeline {
|
||||
dir("tmp/test-distcheck-withoutDRAFT") {
|
||||
deleteDir()
|
||||
unstash 'built-nondraft'
|
||||
retry(3) {
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
script {
|
||||
try {
|
||||
script {
|
||||
def RETRY_NUMBER = 0
|
||||
retry(3) {
|
||||
RETRY_NUMBER++
|
||||
timeout (time: "${params.USE_TEST_TIMEOUT}".toInteger(), unit: 'MINUTES') {
|
||||
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) {
|
||||
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
|
||||
}
|
||||
catch (Exception e) {
|
||||
currentBuild.result = 'UNSTABLE' // Jenkins should not let the verdict "improve"
|
||||
sh """D="`pwd`"; B="`basename "\$D"`" ; [ "${RETRY_NUMBER}" -gt 0 ] && T="_try-${RETRY_NUMBER}" || T="" ; tar czf "test-suite_${BUILD_TAG}_\${B}\${T}.tar.gz" `find . -name '*.trs'` `find . -name '*.log'`"""
|
||||
archiveArtifacts artifacts: "**/test-suite*.tar.gz", allowEmpty: true
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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 ) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user