根据文件类型或扩展名触发gitlab管道

时间:2018-07-09 12:26:47

标签: gitlab-ci

我试图建立一个仅在特定文件类型或扩展名被推送时触发的条件管道。

例如,当推送我的markdown文件时,我想编译并生成html,txt,...

看文档,我看到有对only or except的支持,但是它们仅依赖标记,提交消息等,但是无法指定在提交中修改的文件。唯一/例外的扩展名如下:

only:
    files:
        - *.md

1 个答案:

答案 0 :(得分:1)

这不是内置的。您可以编写自己的实现,但要注意,如果要与以前的提交进行比较,并且一次推送多个提交,则可能会跳过构建,因为默认情况下,作业仅针对最新的提交运行。始终仅构建静态站点会容易得多。

最简单的实现方法是grep git diff的结果,并在文件不匹配时结束工作。

 before_script:
   - if  ! grep "\.md$" <(git diff --name-only HEAD~1); then exit; fi;