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

Gitlab CI/CD pipeline. Push in some folder executes related stage

我有 C 学习者的存储库。我的目标是当有人推送一些代码时,这段代码将被测试。我的回购协议中有几个文件夹 - 每个任务的每个文件夹。现在,当有人推动时,我可以构建和测试所有文件夹中的所有作业。我只想测试被推送的作业。 例如:

我的存储库中有 3 个文件夹:

-Task1
-Task2
-Task3

当有人推动我构建所有任务并测试它们时。

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

这应该可以使用 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 的文件进行更改的提交。

希望对您有所帮助