【发布时间】:2021-01-23 16:40:13
【问题描述】:
我正在使用以下两个gitlab存储库
- 父 Gitlab 存储库 - 应用程序代码,例如 - Angular 应用程序
- 子 Gitlab 存储库 - 对于 Gitlab 管道,只有 gitlab-ci.yml 文件,其中包含运行管道的脚本
我正在使用以下步骤从父级调用管道/子项目 gitlab-ci.yml 文件
父 Gitlab 存储库 - gitlab-ci.yml 文件
include:
- project: 'my-group/child-project'
ref: master
file: '/templates/.gitlab-ci-template.yml'
子项目 - gitlab-ci.yml 文件
stages:
- test
- build
before_script:
- export PARENT_PROJECT_NAME = ?
- export PARENT_PROJECT_PIPELINE_ID = ?
- export PARENT_PROJECT_BRANCH_NAME = ?
job 1:
stage: test
script:
- echo "Runnig test for project ${PARENT_PROJECT_NAME}"
- node_modules/.bin/ng test
release_job:
stage: build
script: node_modules/.bin/ng build --prod
artifacts:
name: "project-$CI_COMMIT_REF_NAME"
paths:
- dist/
only:
- tags
如何在运行管道的子项目中获取父项目名称、管道 ID 和分支名称等父项目详细信息?
一种方法是在父项目中定义变量并在子项目中使用,但还有其他方法可以直接访问子项目中的父项目详细信息吗?
【问题讨论】:
-
如果您可以使用真正的“父子”管道 gitlab 功能(这里不是这种情况),您可以 pass variables 到下游管道。
-
为什么不能把子管道(实际的管道)放在父管道中?
-
因为架构设计,我们让所有项目的流水线配置通用。使事情保持一致。
标签: gitlab gitlab-ci gitlab-api