【问题标题】:Gitlab CI - How to trigger a build only if changes happen on particular set of filesGitlab CI - 如何仅在特定文件集发生更改时触发构建
【发布时间】:2016-11-21 03:24:23
【问题描述】:

在 Gitlab CI 中,如何仅在特定文件集发生更改时触发构建?

有没有办法在触发构建时包含或排除某些文件?例如:更新README.md, .gitignore 文件不应导致构建触发。

【问题讨论】:

    标签: git build continuous-integration gitlab gitlab-ci


    【解决方案1】:

    更新 2

    Only/except 似乎是一个不稳定的功能。文档建议改用rules:changes

    job:
      script:
        - build # replace with your build command
      rules:
        - changes:
          - /*.{java, py} # ... or whatever your file extension is
          - dockerfiles/**/* # all files under folder 'dockerfiles'
    

    更新 1

    就像cmets中提到的Gajus,现在可以了!

    合并请求https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21981

    文档https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-basic(感谢 Connor Shea 在 cmets 中的提示)

    原帖

    不,不可能——现在不行!

    我认为这就是您要寻找的问题:https://gitlab.com/gitlab-org/gitlab-ce/issues/19232 – 这是一个非常高评价的问题(超过 100 次重击)。

    里程碑已更改为 未来 3-6 个月,4 个月前。 (https://gitlab.com/gitlab-org/gitlab-ce/issues/19232#note_31943850) 我希望我们很快就会看到这个功能。

    【讨论】:

    • 在每次 README 编辑时,我们都需要提升 lib 的版本,否则管道将失败。我的意思是他们在想什么 :(
    • 首次添加相关文件时似乎不会触发此事件。
    【解决方案2】:

    更新:现在可以从 11.4 开始,请参阅 https://docs.gitlab.com/ee/ci/yaml/#onlychangesexceptchanges

    原帖:

    目前没有任何方法可以根据已编辑的文件有条件地触发 GitLab CI 中的构建。

    我之前自己也考虑过这个功能,我认为它可能对许多不同的用例都非常有用。

    我能找到的最接近的问题是https://gitlab.com/gitlab-org/gitlab-ce/issues/23010

    无论如何,回答你的问题:

    您现在无法真正做到这一点 - 甚至手动 - 因为 CI 没有合并请求的概念,所以无法确定合并请求是否更改了文件。

    “理解”什么是合并请求的管道应尽快添加。

    【讨论】:

      【解决方案3】:

      无意中发现了您的问题。我认为这有点晚了:),但该功能从 11.4 版开始提供

      docs

      【讨论】:

        【解决方案4】:

        当与only 规则结合使用时,这对我有用

        build-web-dev:
          stage: build
          script:
            - build.sh
          only:
            - develop
            - changes
              web/*
              Dockerfile.web
        

        【讨论】:

          猜你喜欢
          • 2011-07-11
          • 2016-10-05
          • 2018-07-17
          • 1970-01-01
          • 2015-02-07
          • 2010-11-22
          • 1970-01-01
          • 1970-01-01
          • 2019-10-17
          相关资源
          最近更新 更多