【问题标题】:How to create conditional logic in gitlab ci如何在 gitlab ci 中创建条件逻辑
【发布时间】:2021-08-20 20:37:14
【问题描述】:

我是 GitLab ci 的新手,我很好奇是否可以在 .gitlab-ci.yml 中做些什么。对于我们的项目,我们希望根据两个动作发生两种不同的事情。例如,当一个新文件添加到主分支时,我们希望 Job1 运行。但是,当主分支中的文件更新时,我们希望 Job2 改为运行。

根据阅读 Gitlab 在 ci/cd 上的文档,您似乎可以通过使用变量和规则来做到这一点。

那么,这是否可以在 yml 文件中实现,还是您必须以其他方式进行?

感谢您的回复。

【问题讨论】:

    标签: gitlab gitlab-ci


    【解决方案1】:

    您可能已经注意到有一个rule named changes,您可以尝试一下。如果这还不够,您仍然可以在容器内执行类似git diff-tree 的操作,然后决定要做什么。

    【讨论】:

      【解决方案2】:

      我怀疑您是否可以直接对文件使用条件,因为提交推送(最终触发包含作业的管道的操作)可能包含多个文件。

      话虽如此,您有一堆预定义的变量,其中包含有关提交本身的信息,因此也许您可以就提交描述模板与团队达成一致,以便他们何时添加文件,另一个用于更新情况。然后,您可以轻松地使用规则来确定必须运行的作业。对于这种特殊情况,您将使用 CI_COMMIT_DESCRIPTION 变量。

      你也可以将你的条件基于一个标签,但我认为这会使存储库太脏。

      我知道忘记这条规则很容易,但它仍然是一个简单的解决方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-02
        • 1970-01-01
        • 1970-01-01
        • 2018-10-27
        • 1970-01-01
        • 2022-08-18
        • 2022-10-18
        • 2021-02-14
        相关资源
        最近更新 更多