如何在Jenkins中有条件地触发构建

如何在Jenkins中有条件地触发构建,jenkins,continuous-integration,jenkins-pipeline,jenkins-plugins,Jenkins,Continuous Integration,Jenkins Pipeline,Jenkins Plugins,我有两份工作都会在周一触发,但第一个项目在第一个周一,第二个项目在第二个周一。我无法使用Jenkins cron根据条件触发项目 因为cron可以单独用于在一天或一周的特定时间触发项目(例如0 6**1在周一早上6点触发项目),而不是基于条件 我正在寻找一种解决方案,我可以使用cron来触发项目,但只有当它通过时它才会有一些条件。项目才会被触发。您可以触发生成,检查条件,如果条件不成立,则退出生成。在这种情况下,您可以选择使生成失败。您可以触发生成,检查条件,如果条件不成立,则退出生成。在这种情

我有两份工作都会在周一触发,但第一个项目在第一个周一,第二个项目在第二个周一。我无法使用Jenkins cron根据条件触发项目 因为cron可以单独用于在一天或一周的特定时间触发项目(例如0 6**1在周一早上6点触发项目),而不是基于条件


我正在寻找一种解决方案,我可以使用cron来触发项目,但只有当它通过时它才会有一些条件。项目才会被触发。

您可以触发生成,检查条件,如果条件不成立,则退出生成。在这种情况下,您可以选择使生成失败。

您可以触发生成,检查条件,如果条件不成立,则退出生成。在这种情况下,您可以选择使构建失败。

目前jenkins cron不支持基于条件触发项目。 你可以用两种方法来做

  • i) 最简单的方法是创建两个项目,一个用于偶数周运行,另一个用于奇数周运行
  • ii)一旦触发项目,您可以使用windows批处理命令或shell脚本编写条件,以检查当前周是否符合预期(奇数/偶数),如果符合条件,则继续执行下一步或失败

    但是这个解决方案的问题是你会有一个不必要的项目

  • i) 有点困难但稳定的方法是有一个父项目和两个依赖(子)项目-即一个用于偶数,另一个用于奇数
  • ii)在父项目中,执行shell/windows批处理命令,检查当前周是奇数周还是偶数周-根据此命令,创建一个变量,将值设置为true或false,然后将值写入属性文件

    iii)然后使用Jenkins环境注入器插件(url-)将该值转换为环境变量,以获取有关如何转换的详细信息。现在,您可以在整个项目中访问该值

    iv)创建新的条件构建步骤(插件url-)
    在这种情况下,基于环境变量与预期条件的比较触发您的子项目(即如果为“TRUE”,则触发奇数周项目)

    当前jenkins cron不支持基于条件触发项目。 你可以用两种方法来做

  • i) 最简单的方法是创建两个项目,一个用于偶数周运行,另一个用于奇数周运行
  • ii)一旦触发项目,您可以使用windows批处理命令或shell脚本编写条件,以检查当前周是否符合预期(奇数/偶数),如果符合条件,则继续执行下一步或失败

    但是这个解决方案的问题是你会有一个不必要的项目

  • i) 有点困难但稳定的方法是有一个父项目和两个依赖(子)项目-即一个用于偶数,另一个用于奇数
  • ii)在父项目中,执行shell/windows批处理命令,检查当前周是奇数周还是偶数周-根据此命令,创建一个变量,将值设置为true或false,然后将值写入属性文件

    iii)然后使用Jenkins环境注入器插件(url-)将该值转换为环境变量,以获取有关如何转换的详细信息。现在,您可以在整个项目中访问该值

    iv)创建新的条件构建步骤(插件url-)
    在这种情况下,基于环境变量与预期条件的比较触发您的子项目(即如果“真”,则触发奇数周项目)

    我已将第二个选项用于类似条件我已将第二个选项用于类似条件