Jenkins 如何设置;“其他项目建成后再建设”;及;轮询SCM“;同时在詹金斯

Jenkins 如何设置;“其他项目建成后再建设”;及;轮询SCM“;同时在詹金斯,jenkins,jenkins-plugins,Jenkins,Jenkins Plugins,我有一些关于詹金斯的工作。其中一个与数据库相关,我希望在其子版本发生更改时构建它。同时,我希望它能在其他项目之后建成。更清楚的是,考虑到我有两个项目A和B,我希望B成功构建后,如果B的子版本发生了变化。如何配置它 编辑1: 如果我将某个其他项目(例如C)的生成设置为在项目B中作为生成后操作触发,则如果B没有SCM更改,则不会生成C。如何解决这个问题 编辑2: 为了澄清我的问题,我这样说。我有一些名为A、B和C的项目。我想把它们放在一个构建队列中,因为它们相互依赖:A->B->C。但是有一些考虑因

我有一些关于詹金斯的工作。其中一个与数据库相关,我希望在其子版本发生更改时构建它。同时,我希望它能在其他项目之后建成。更清楚的是,考虑到我有两个项目A和B,我希望B成功构建后,如果B的子版本发生了变化。如何配置它

编辑1:

如果我将某个其他项目(例如C)的生成设置为在项目B中作为生成后操作触发,则如果B没有SCM更改,则不会生成C。如何解决这个问题

编辑2:

为了澄清我的问题,我这样说。我有一些名为A、B和C的项目。我想把它们放在一个构建队列中,因为它们相互依赖:A->B->C。但是有一些考虑因素。B是一个数据库项目,它应该在数据库中有任何升级时构建,否则它会给我一些错误。此外,如果B的SCM有任何变化,我们必须在C之前构建B;因为它会影响C项目的功能。所以,简单地说,我希望Jenkins遵循以下步骤:

  • 建造A
  • 检查B的SCM
  • 如果B的SCM中有任何更改,请生成B,否则跳过生成B
  • 建造C
  • 有人能帮我做这个吗?

    似乎正是你想要的。我没有使用过它,因为我从未觉得有必要使用它。:)

    安装后,在作业的配置页面中,转到
    Post build Actions>build other projects(extended)
    。其余部分可以从下面的快照中看到。我已指定我的下游作业B,启用复选框
    仅当下游项目有SCM更改时触发
    &在“生成结果”下拉列表中选择“相等”,因为我希望仅当我的父作业A始终成功且B有SCM(在您的情况下为SVN)更改时触发作业B


    我只想在B工作中处理它

    让您的工作流始终触发A->B->C


    现在在B作业中,使用运行一个脚本,该脚本将验证B项目没有SCM更改。如果没有更改,请跳过构建步骤并继续触发C。否则,构建B并继续触发C。

    这确实很有用,但我遇到了一些与主题相关的其他问题。你能复习一下这个问题吗?我找到了答案;请核对斯拉夫的答案。谢谢你给我帮助。我不明白你的问题。你的意思是说,如果B没有SCM更改,你不希望生成C吗?@Technext,请查看我在问题中所做的编辑。对于作业B,我希望当你在数据库中说升级时,你是在使用SCM(在你的情况下是SVN)检测更改,对吗?在作业B中,数据库升级和SCM更改的检测是否不同?是的@Technext,你说得对!对于我提出的两个问题,只有一个“是”是相互矛盾的。请回答这两个问题。只有到那时我才能提供一些帮助。这正是我所需要的。谢谢你的回答。