如何为单一存储库中的一个应用程序安排 Gitlab 构建/部署

问题描述 投票:0回答:1

我们有一个大型单一存储库,其中包含多个单独的应用程序,每个应用程序都有自己的

.gitlab-ci.yml
文件。他们都定义了这个规则:

.change-only:
  rules:
    - if: $CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE != "schedule"

是否可以定义一个时间表,仅让其中一个应用程序在特定时间运行,而不触发所有其他应用程序?

如果我尝试在 Gitlab 中创建新的计划管道,我只能选择哪个分支,而不能选择所有都位于同一主分支中的各个应用程序。例如,我不想将所有活动安排在上午 8:00 - 只安排一个。

gitlab gitlab-ci
1个回答
0
投票

我已经做了类似的事情,也许对你也有帮助。作为 Mono 存储库,如果您有多个应用程序,则为存储库中的这些应用程序创建一个唯一的占位符,这对于在指定规则时区分不同的作业至关重要。

此后您可以添加或修改您的规则条件:

  .change-only:
  rules:
    - if: $CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE != "schedule" && $CI_JOB_NAME == "my_unique_app"

创建一个计划管道,但将分支设置为master。由于 .gitlab-ci.yml 文件中的规则现在包含条件 $CI_JOB_NAME == "my_unique_app",因此只有名为 my_unique_app 的作业才会被计划管道触发,其余作业将在其他 .gitlab-ci 中触发。 yml 文件不会受到影响。

尝试这样做,它将确保只有您想要在特定时间运行的特定作业被计划的管道触发,而其余的作业不受影响。

© www.soinside.com 2019 - 2024. All rights reserved.