我是詹金斯的新手。我看到一些工作有其他工作作为下游工作。同样,很少有其他工作有其他工作作为子项目。
两者似乎都在做同样的事情(即运行其他工作)。两种方法有什么区别,何时使用哪种方法?
答案 0 :(得分:0)
我面临着现在首先出现差异的一些后果。
以下答案基于我读过的一些材料,所以我并不认为这是一个完整的解释。希望它有所帮助!
默认情况下,使用“构建其他项目”构建后步骤触发构建时,会自动将其视为下游项目。
根据the official Jenkins glossary对下游项目的定义是:
下游配置的管道或项目,作为执行单独的管道或项目的一部分触发。
不幸的是,这个非常模糊的描述并不完全适合the Parametrized Trigger plugin作为有效构建步骤的存在。
由于两个原因,我使用the Parametrized Trigger plugin来调用我的其他工作(这是一个简单的自由式项目)。
我引用了“从另一个项目中复制工件”构建步骤(来自the Copy Artifact plugin)的“下游构建”选项的工具提示:
从构建的下游构建中复制构件 指定的项目。您可以使用变量表达式。
使用文件指纹找到下游构建。这是一个 不总是考虑从构建触发的构建 下游,但您需要指定构建中使用的指纹文件 詹金斯跟踪他们。
注意:“Downsteram build of”仅适用于AbstractProject 基于项目(上游和下游项目)。
基于AbstractProject的项目:自由式项目多配置 项目Maven项目非AbstractProject项目:管道 工作(又称工作流程工作)
很有趣!虽然这个解释很技术性,但我看不出它对我或你有什么帮助。 我最终做的是使用该步骤的“特定构建”选项。 由于使用此选项需要 Build Number 参数,我使用了由the Parametrized Trigger plugin注入的变量:
TRIGGERED_BUILD_NUMBER _ =“触发上次内部版本号”
总之:Jenkins了解下游项目是什么,但是像Parametrized Trigger插件这样的插件以他们自己的方式做事情所以他们以不同的方式对待他们我们必须保持在将工作链接在一起时,请记住这一点。