gpt4 book ai didi

Jenkins下游和子项目之间的区别

转载 作者:行者123 更新时间:2023-12-03 21:43:12 25 4
gpt4 key购买 nike

我是 Jenkins 的新手。我见过一些工作有其他工作作为下游工作。同样,很少有其他工作有其他工作作为子项目。

两者似乎都在做同样的事情(即运行其他工作)。这两种方法有什么区别,什么时候使用?

最佳答案

我现在面临着首先存在差异的一些后果。

下面的答案是基于我读过的一些 Material ,所以我不认为这是一个完整的解释。希望它有所帮助!

默认情况下,当使用“ 构建其他项目 ”构建后步骤触发构建时,它会自动被视为下游项目。

根据the official Jenkins glossary对下游项目的定义是:

Downstream A configured Pipeline or Project which is triggered as part of the execution of a separate Pipeline or Project.



不幸的是,这个非常模糊的描述并不完全适合 the Parametrized Trigger plugin 的存在。作为有效的构建步骤。

由于两个原因,我使用 the Parametrized Trigger plugin调用我的其他工作(这是一个简单的自由式项目)。
  • 原因 #1 - 触发/调用/下游作业具有输入参数 - 我无法使用“ 构建其他项目 ”构建后步骤
  • 传递它们
  • 原因 #2 - 我需要触发/调用/下游作业中的工件来完成我的作业的另外 2 个步骤,因此使用构建后步骤对我来说不是一个选项。

  • 我引用了“ 从另一个项目复制工件”构建步骤(来自 the Copy Artifact plugin)的“ 的下游构建|”选项的工具提示:

    Copy artifacts from a build that is a downstream of a build of the specified project. You can use variable expressions.

    Downstream builds are found using fingerprints of files. That is, a build that is triggerd from a build isn't always considered downstream, but you need to fingerprint files used in builds to let Jenkins track them.

    Note: "Downsteram build of" is applicable only to AbstractProject based projects (both upstream and downstream projects).

    AbstractProject based projects: Freestyle projects Multi-configuration projects Maven projects Non AbstractProject based projects: Pipeline jobs (aka. Workflow jobs)



    超有趣!虽然这个解释是相当技术性的,但我看不出它对我或你有什么帮助。
    我最终做的是使用该步骤的“ 特定构建 ”选项。
    作为 内部版本号 使用此选项所需的参数 我使用了 the Parametrized Trigger plugin 注入(inject)的变量:

    TRIGGERED_BUILD_NUMBER_="Last build number triggered"



    总之 : Jenkins 了解下游项目是什么,但一些插件(如参数化触发器插件)以自己的方式做事,因此它们以不同的方式处理,我们在将作业链接在一起时必须牢记这一点。

    关于Jenkins下游和子项目之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34923416/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com