当前位置: 首页 > news >正文

Jenkins pipeline触发下游流水线

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、观察效果

http://www.lryc.cn/news/594946.html

相关文章:

  • 用Java 代码实现一个简单的负载均衡逻辑
  • 2025最新版PyCharm for Mac统一版安装使用指南
  • springcloud -- 微服务02
  • 【Unity优化】Unity多场景加载优化与资源释放完整指南:解决Additive加载卡顿、预热、卸载与内存释放问题
  • 【c++】leetcode438 找到字符串中所有字母异位词
  • Three.js 从零入门:构建你的第一个 Web 3D 世界
  • 小孙学变频学习笔记(十一)关于V/F曲线的讨论
  • 本地部署AI新选择!LocalAI+cpolar轻松实现隐私安全的远程访问
  • 深入解析Hadoop YARN:三层调度模型与资源管理机制
  • 星游路-个人日志-学习积累法
  • 【PTA数据结构 | C语言版】验证六度空间理论
  • Unity VR多人手术系统恢复3:Agora语音通讯系统问题解决全记录
  • Hadoop数据完整性校验机制深度解析:CRC32校验和与后台扫描线程
  • 低空经济展 | 约克科技携小型化测试设备亮相2025深圳eVTOL展
  • Spring Boot 3核心技术面试指南:从迁移升级到云原生实战,9轮技术攻防(含架构解析)
  • 树链剖分-苹果树
  • EMBMS1820芯祥科技18单元电池监控器芯片数据手册
  • 有关Spring的总结
  • 网络编程之 UDP:用户数据报协议详解与实战
  • 19.TaskExecutor与ResourceManager建立连接
  • Openlayers 面试题及答案180道(161-180)
  • 线上问题排查之【CPU飙高100%】
  • 在幸狐RV1106板子上用gcc14.2本地编译安装mysql-8.0.42数据库
  • 一维DP深度解析
  • ElasticSearch是什么
  • 如何使用Ansible一键部署Nacos集群?
  • Android 蓝牙通讯全解析:从基础到实战
  • 【STM32】485接口原理
  • 元图 CAD:PDF 与 CAD 格式互转的完美解决方案
  • 部署 Zabbix 企业级分布式监控