Gitlab CI / CD管道。推入某些文件夹执行相关阶段

时间:2020-01-14 09:57:01

标签: continuous-integration gitlab gitlab-ci gitlab-ci-runner

我有C个学习者的资料库。我的目标是当有人推送某些代码时,将对该代码进行测试。我的存储库中有几个文件夹-每个作业都有一个文件夹。现在,当有人按下时,我可以建立并测试所有文件夹中的所有分配。我只想测试已推送的作业。 例如:

我的仓库中有3个文件夹:

-Task1
-Task2
-Task3

当有人推动时,我会完成所有任务并测试所有任务。

我想要的是:如果有人只推送Task1,那么我只想编译和测试Task1,而不是整个仓库。这可能吗?告诉我是否需要提供更多信息。

1 个答案:

答案 0 :(得分:2)

使用Gitlab CI的only:changes功能应该可以实现。您可以指定一个目录,更改将在其中触发作业。 示例:

task_1_test:
  script: <compile & run test for this directory>
  only:
    changes:
      - Task1/*.{c,cc,cpp,o,h}

然后默认情况下,该作业将在推送事件中触发,该推送事件包含一个对目录Task1中具有扩展名c,cc,cpp,o,h的文件的更改的提交。

希望这会有所帮助