Jenkins触发器--在其他项目执行后构建

前言:

jenkins中有多种触发器可用,可以方便的控制构建的启动

这里简单介绍下项目后构建的配置方法

1. 解释:

Build after other projects are built

Set up a trigger so that when some other projects finish building, a new build is scheduled for this project. This is convenient for running an extensive test after a build is complete, for example. This configuration complements the "Build other projects" section in the "Post-build Actions" of an upstream project, but is preferable when you want to configure the downstream project.

设置一个触发器,当其他项目完成构建后,会为该项目安排一个新的构建。例如,这对于在构建完成后运行全面测试非常方便。

此配置与上游项目的"构建后操作"部分中的"构建其他项目"相辅相成,但在需要配置下游项目时更为优选。

2. 配置项目后构建的触发器的方法

方法 1: 使用 Upstream/Downstream 配置

  1. 设置触发关系:

    • 在目标构建项目(比如 A)中:
      • 进入项目配置。
      • 找到 Build Triggers 部分。
      • 勾选 Build after other projects are built。
      • 在输入框中填写需要触发的项目名称(比如 B)。
    • 在被触发项目(比如 B)中,不需要额外配置。
  2. 效果:

    • 每当 A 完成构建时,会自动触发 B 的构建。

方法 2: 使用 Pipeline 脚本触发

如果需要在一个目录下通过脚本触发另一个目录中的项目,可以使用 Jenkins Pipeline:

  1. 在构建配置中 :

    • 配置 Pipeline 类型项目。
    • 使用以下 Jenkinsfile 示例代码:

    pipeline {
    agent any
    stages {
    stage('Trigger Another Build') {
    steps {
    build job: '../other-folder/other-project', wait: false
    }
    }
    }
    }

  • ../other-folder/other-project 表示另一个目录中的构建项目路径。
  • wait: false 表示不等待被触发项目完成。

方法 3: 使用插件触发

可以通过插件实现复杂的触发场景:

  1. Parameterized Trigger Plugin:

    • 安装 Parameterized Trigger Plugin 插件。
    • 配置 Build Triggers,勾选 Build after other projects are built。
    • 在输入框中填写需要触发的项目,并配置参数(如果需要)。
  2. Multibranch Pipeline:

    • 如果你使用的是多分支流水线,也可以使用 Jenkins Multibranch Pipeline 插件设置分支间的依赖。

方法 4: 脚本化触发

如果在某个构建中通过脚本触发另一个项目:

  • 使用 curl 或 Jenkins 的 REST API:

    curl -X POST -u user:apiToken http:///job//build

将此命令集成到你的构建脚本中。


注意事项

  • 确保 Jenkins 的安全设置允许相应的触发操作。
  • 在引用同一个jenkins实例上的其他构建时,使用该构建的Full project name
  • 如果项目之间路径涉及不同的文件系统目录,请检查构建权限和路径映射。

根据你的实际需求和 Jenkins 的使用环境,可以选择上述方法之一来实现跨目录触发。



相关推荐
Decay__13 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
贞明电子15 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
万联WANFLOW15 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
Ruiery17 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
Decay__18 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
江华森20 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼20 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
by2099921 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
螺丝钉tina21 小时前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
迪菲赫尔曼1 天前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测