1. 概念
每个工程里可编写.gitlab-ci.yml
, 对应一个流水线(pipeline),流水线分不同阶段(stage),每个阶段包含不同作业(job)
每个作业有产物(artifacts)
默认情况下,后期阶段的作业会自动下载早期阶段作业创建的所有产物。可以使用 dependencies
控制作业中的产物下载行为,只取部分产物。使用 needs
关键字时,作业只能从 needs
配置中定义的作业下载产物。
2. 多工程构建 - 产物依赖
多工程构建,如果一个工程依赖另外一个工程,比如usm-electron-client依赖usm-front生成的js、css、html等文件,
usm-electron-client的配置可以这样写:依赖usm/usm-front工程,build_usm_front这个作业,分支为$CI_COMMIT_BRANCH(当前usm-electron-client提交分支,这样写表示usm-front也需要有相应分支),分支得是分支名或者tag,不能是hash。
needs:
- project: usm/usm-front
job: build_usm_front
ref: $CI_COMMIT_BRANCH
artifacts: true
而usm_front的配置可这样写:
build_usm_front:
image: openeuler/openeuler:20.03-lts—sp3-x86_64
stage: build