2017-09-13 77 views
1

Gitlab CI/CD新手。有没有办法让Gitlab CI只在我提交实际文件时运行?

什么是我的.gitlab-ci.yml文件中使用的正确结构,以确保我的验证作业仅在发生“真实”检入时才运行?

我的意思是,我观察到创建合并请求的那一刻 - 这当然会创建一个新分支 - CI/CD进程运行。也就是说,分支创建本身,尽管事实上没有文件已经改变,导致.gitlab-ci.yml文件被处理并且流水线被启动。

理想情况下,我只希望发生这样的事情时,实际上有一个文件或文件添加等的变化 - 在常识上,我不希望CI/CD上运行愚蠢的操作实际上并没有真正改变正在开发的软件的状态。

我很熟悉exceptonly,但这些似乎不能按我想要的方式限制事情。我是否缺少基本类别或配方?

+0

您可能想要订阅并在其追踪器上投票处理此问题:https://gitlab.com/gitlab-org/gitlab-ce/issues/19232 – Alfageme

回答

3

恐怕你问的问题在Gitlab CI中是不可能的。

可能有一种方法可以使用CI_COMMIT_SHA预定义变量,因为在您的新分支中与您的源分支相比相同。

尽管如此,管道将运行之前,它可以确定或比较自定义脚本或条件中的SHA。

Gitlab为分支机构或标签运行管道,而不是提交。推动回购触发管道,分支实际上是推动对回购的改变。

+0

非常感谢您的回答:至少现在我知道在这里使用正确的心智模式。也许我可以使用提交消息“过滤”?寻找正确的模式在这里使用。 –

+0

是的,你可以,只要记住过滤也将发生在管道工作内部,因此它需要先运行。如果你有足够的跑步者,我个人不介意管道运行。如果它适合您,也可以随时注册并标记答案。 –

相关问题