【发布时间】:2018-04-19 16:41:59
【问题描述】:
是否可以在 Jenkins 管道中获取以前的构建完成时间? 并在下一次构建中使用它。而不是将其存储在某个文件中,然后获取下一个构建。
【问题讨论】:
标签: jenkins jenkins-plugins jenkins-pipeline
是否可以在 Jenkins 管道中获取以前的构建完成时间? 并在下一次构建中使用它。而不是将其存储在某个文件中,然后获取下一个构建。
【问题讨论】:
标签: jenkins jenkins-plugins jenkins-pipeline
大概是这样
currentBuild.rawBuild.getPreviousBuild().getTimestamp()
参考http://javadoc.jenkins-ci.org/hudson/model/Run.html#getTimestamp--
【讨论】:
以下管道打印此管道上次运行的持续时间:
pipeline {
agent any
options {
//keep only 10 last builds
buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '1'))
disableConcurrentBuilds()
}
stages {
stage('Test') {
steps {
sh 'sleep 5';
}
}
stage('Get time of previous build') {
steps {
script {
def duration = currentBuild.previousBuild.duration;
print duration;
}
}
}
}
post {
always {
cleanWs()
}
}
}
但持续时间值不会是“人类可读”值,因此您仍需要使用awk 或python 转换该值:解释here。
【讨论】: