gitlab 的预定义变量 CI_PIPELINE_SOURCE 的值是什么意思?

What do the values for gitlab's predefiner variable CI_PIPELINE_SOURCE mean?

在 gitlab 文档中,您可以找到预定义变量列表 HERE,其中变量 CI_PIPELINE_SOURCE 被解释为具有可能的值“push、web、schedule、api,外部、聊天、网页、merge_request_event、external_pull_request_event、parent_pipeline、触发器或管道。

但是,没有解释,它们是什么意思。

如果有人知道它的文档藏在哪里,请告诉我在哪里可以找到它,我将不胜感激。

此外,我如何才能知道某些更改何时真正合并到一个分支中?如何在该事件中触发管道?

关于您的第一组问题,我必须向您指出 gitlab CI 文档和 rules:if 部分。他们对状态有很好的解释,还有一些补充 https://docs.gitlab.com/ee/ci/jobs/job_control.html#common-if-clauses-for-rules - 我只是截屏这个,所以如果 link 过时了,人们可以在将来与它联系起来:

关于您的附加问题:

合并是一次推送。我们不检查 CI_PIPELINE_SOURCE 的某些分支,而是检查分支名称并简单地检查它,例如:

    rules:
        - if: '$CI_COMMIT_BRANCH == "master"'
        - if: '$CI_COMMIT_BRANCH == "develop"'
        - if: '$CI_COMMIT_BRANCH =~ /^release.*$/i'
        - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'

这在我们的 gitflow 案例中非常有效。但是您可以改变您的规则并根据自己的需要轻松定义它们 - 规则文档提供了很多很好的示例,请参阅:https://docs.gitlab.com/ee/ci/jobs/job_control.html#common-if-clauses-for-rules