当前位置: 首页 > 知识库问答 >
问题:

詹金斯管道划分

贾飞章
2023-03-14

我们有多个詹金斯管道工作,步骤如下:

  1. 构建->单元-测试->推送到ArtiFactory
  2. 构建->单元-测试->部署
  3. 构建->单元-测试->集成测试

这样做的缺点是,我们不需要将每个构建部署或发布到artifactory,因此内部会有一些if语句在需要时跳过阶段--这将使构建历史变得一团糟--因为一个构建可以做与另一个不同的事情(例如,build#1发布二进制文件,而build#2运行集成测试)。优点是我们在一个工作区和JenkinsFile中都有。

b)为每个任务单元创建一个单独的作业。

例如“构建”、“集成测试”、“发布”和“部署”,然后创建一个orchestrator作业,该作业将按阶段包装的顺序调用较小的作业。这样做的缺点是,我们仍然将CI分散在不同的工作中,工件必须在两者之间传递。当然,好处是,如果需要,我们可以独立运行它们,所以如果您只需要单元测试,您只运行单元测试作业,这也将导致正常和有意义的构建历史。

你能指出你是用a还是用b,或者否则你会怎么做吗?

共有1个答案

龚凯泽
2023-03-14

如果统一它们的原因是代码重复,那么看看共享库。您的buildunit-tests可以进入共享库,您只需从不同的管道调用库代码即可。

 类似资料:
  • 问题内容: 已解决 :感谢S.Richmond的以下答复我需要取消所有类型的存储映射,这意味着将变量和使用后作废。 附加 :搜索此错误的人员可能有兴趣使用Jenkins管道步骤- 在此处查找更多信息。 我正在尝试使用Jenkins Pipeline从用户那里获取输入,该输入作为json字符串传递给作业。管道然后使用隔离器对此进行解析,然后选择重要信息。然后,它将使用该信息与不同的作业参数并行运行1

  • 下面是我简单的jenkins pipeline groovy脚本,它将用这两个阶段和我们想要构建的作业创建一个管道,我希望在job configuration下的脚本中每次都更新用于构建和代码分析的作业名,方法是从用户界面中获取数据,用户将使用Eclipse提供构建作业名和代码分析作业名- jenkinsfile脚本:-

  • 问题内容: 我们有几个Java项目。每个项目都有自己的交付管道。 所有管道都具有以下共同的步骤(简化): 建立项目 发布项目 部署到测试环境 部署到生产环境 项目管道仅在项目特定的属性(例如服务名称或测试和生产环境的IP地址)上有所不同。 问题是:我们如何避免所有项目都有共同之处?Jenkins的“管道作为代码”是否提供类似管道模板的内容? 我可以想象一个模板将在我们的项目管道中节省很多冗余代码/

  • 问题内容: 我已经使用Jenkins为我的node js应用程序创建了CI管道。我的管道包括诸如构建,单元测试,集成测试,代码分析等工作。我知道默认情况下,即使一个测试用例失败,构建也会失败。 问题答案: 您的单元测试脚本将需要处理数学和逻辑,以确定失败的测试百分比足以使整个工作失败。然后,您的单元测试脚本可以返回通过(零)或失败(其他任何结果),詹金斯将相应地标记构建。

  • 问题内容: 这是我要执行的Jenkins管道。我正在关注本教程: 但是作业失败,并显示以下消息。 有人可以帮我解决为什么失败了。 问题答案: 您需要在阶段声明之后添加一个step块。

  • 问题内容: 我正在尝试在詹金斯(Jenkins)中运行以下内容,但我得到任何建议的错误? 错误-为什么在shell脚本中不使用文件名重新填充? 问题答案: 我建议在双引号中运行bash命令,并转义和字符。考虑以下Jenkins管道示例脚本: 我在此示例中使用的文件包含: 当我运行它时,我得到以下控制台输出: 运行脚本文件后,将其内容更改为: 希望能帮助到你。

  • 我试图从流水线步骤中运行一个job-dsl脚本。一般来说,这应该是可能的,正如这里所描述的,在管道步骤中添加了以下代码片段: null 我如何知道脚本的真实位置,以及如何指定一个jobDsl作为目标,它本身位于不同的repo中?还是我完全走错了方向? 编辑 经过进一步的研究,共享库存储库被签出到“真实”工作区旁边的一个目录中,后缀为@libs,这似乎是事实。所以我认为使用以下方法是个好主意: 与此

  • 我们可以使用GitHub个人令牌进行git推送吗?