我想安排一个Jenkins工作,但只有在对SCM进行了新的提交时。或者最好是更灵活的案例:如何运行预定作业,但仅在另一个作业已经(成功)运行时才会运行。
一个典型的用例:在夜间部署应用程序,但仅在进行了更改时才会部署。
答案 0 :(得分:5)
您所描述的有点是默认行为。有两种方法可以实现它。在作业配置中,您具有“构建触发器”设置。
选择“查询源代码管理”选项。然后以与配置cron作业相同的方式给出时序。例如。每天上午02:00开放:
0 2 * * *
自上次构建以来没有任何新提交时,不会触发任何构建。詹金斯记得它。这种方法适用于长期运行的构建和测试。
在SCM中安装构建挂钩,并在创建新提交时使用它来触发构建。然后在“构建触发器”选项中选择“从外部开始构建(通过脚本)”。在这种情况下,您必须使用构建令牌,以便脚本可以针对Jenkins API进行身份验证。如果您希望向提交者提供关于构建结果的相对快速的反馈(例如,任何错误或构建失败的信息),这种方法是很好的。