1、选择关注的上游项目
2、Pipeline脚本参考如下
pipeline {
agent {
label {
label 'slave_nodepoint_22'
retries 3
}
}
stages {
stage('Clean Workspace') {
steps {
cleanWs()
}
}
stage("Test") {
steps {
script {
// 获取上游构建信息
def upstreamBuilds = currentBuild.getBuildCauses('hudson.model.Cause$UpstreamCause')
if (upstreamBuilds) {
// 获取第一个上游构建信息
def upstreamCause = upstreamBuilds[0]
// 获取上游项目名称和构建号
def upstreamProject = upstreamCause.upstreamProject
def upstreamBuildNumber = upstreamCause.upstreamBuild
// 获取上游构建对象
def upstreamRun = Jenkins.instance.getItemByFullName(upstreamProject)
.getBuildByNumber(upstreamBuildNumber as int)
// 获取上游构建开始时间
def upstreamStartTime = upstreamRun.getTime()
// 获取上游构建持续时间(毫秒)
def upstreamDuration = upstreamRun.getDuration()
// 计算上游构建结束时间
def upstreamEndTime = new Date(upstreamStartTime.time + upstreamDuration)
echo "上游项目: ${upstreamProject}"
echo "上游构建号: ${upstreamBuildNumber}"
echo "上游构建开始时间: ${upstreamStartTime}"
echo "上游构建持续时间: ${upstreamDuration}ms"
echo "上游构建结束时间: ${upstreamEndTime}"
} else {
echo "当前构建不是由上游项目触发的"
}
}
}
}
}
}
3、管理员批准脚本签名,对应位置添加如下内容
method hudson.model.Job getBuildByNumber int
method hudson.model.Run getDuration
method hudson.model.Run getTime
method jenkins.model.Jenkins getItemByFullName java.lang.String
staticMethod jenkins.model.Jenkins getInstance
staticMethod jenkins.model.Jenkins getInstance
4、观察效果