【问题标题】:Skip stage if there are no changes to a subdirectory如果子目录没有更改,则跳过阶段
【发布时间】:2018-09-29 11:06:38
【问题描述】:

我有一个 Jenkins(非声明性)管道构建,有几个阶段。该构建包含几个组件,它们都是从同一个 git 存储库构建的。其中一个阶段(构建 Linux 内核)非常缓慢,而且很少更改。

当特定子目录没有更改时,如何跳过某个阶段?

(Artifactory 用于在阶段之间传输二进制文件)

例如: 如果 Linux 目录发生变化: 1.执行阶段“build Linux”,上传到artifactory 2.执行剩下的pipeline,从artifactory下载新建的Linux镜像

如果没有更改 Linux 目录: 1. 无变化,跳过“build Linux”阶段 2. 执行管道的其余部分,从 artifactory 下载最新构建的 Linux 映像

【问题讨论】:

    标签: github continuous-integration jenkins-pipeline artifactory


    【解决方案1】:

    检查您是否可以只为您想要的子文件夹创建pipeline sparse checkout:如果该内容发生更改,则在流程的其余部分触发子作业。

    【讨论】:

    • 感谢您的建议。关于如何检查自上次构建以来的更改的任何想法?
    • @Eloff 的想法(待测试)是只有在该文件夹的元素发生更改时才会触发配置有稀疏签出 repo 的条目作业。
    • 我不认为它是这样工作的。以前,在管道之前,我使用稀疏检出,但还必须配置:“轮询忽略某些路径中的提交”以避免触发作业。如果我从管道触发子作业,我认为此检查将被忽略
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 2012-04-19
    • 2020-05-29
    • 2019-01-15
    • 1970-01-01
    • 2018-08-15
    相关资源
    最近更新 更多