在 GitLab CI 中,如果我使用
trigger
关键字触发下游管道,我如何访问有关下游管道的信息,以便我可以将其传递给上游管道中的后续作业?
例如,假设我希望此管道中的
later-job
作业引用由trigger-job
触发的下游管道的管道ID:
stages:
- early-stage
- late-stage
trigger-job:
stage: early-stage
trigger:
project: my-group/my-other-project
strategy: depend
later-job:
stage: late-stage
script:
- echo "The pipeline id of the downstream pipeline triggered by trigger-job is ????????"
这可能吗?
据我所知,没有内置的方法可以实现这一点。
以下是您可以采取的一些想法:
触发初始管道(最原生的方式)。在项目 2 的管道末尾,对管道 1 进行另一个触发器,该触发器使用变量仅运行缺失的步骤。
尝试过滤掉触发的管道。如果您可以确定您的项目1是唯一触发项目2的项目,您可以构建一个管道作业,这将为您提供已启动项目的最新管道通过使用 Pipelines API:
的触发器curl -q --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.com/api/v4/projects/1/pipelines?source=trigger" | jq '.[0].id'