Ven*_*tta 1 gitlab gitlab-ci gitlab-ci-runner
我有一个项目,它在遵循特定约定的文件夹中生成 go main 文件。问题是,当有代码推送时,我需要在 Gitlab CI 管道中并行构建这些项目,并且我无法对它们进行硬编码,.gitlab-ci.yml因为它们是动态生成的。我需要并行构建这些 go 项目,并且如果所有单个项目构建都成功,则需要通过构建阶段。有人可以告诉我在 Gitlab 中是否可行吗?
小智 6
现在使用子管道功能也可以实现这一点。您可以使用 YTT 为子管道生成 YAML 配置文件 - 但只要您提供有效的 YAML 文件,就可以使用任何生成方法。
.gitlab-ci.yml
generate-config:
stage: build
script: ytt -f config-template.yml -f config-template-values.yml --data-value-yaml services="[${SERVICES}]" > generated-config.yml # with SERVICES=service1,service2
artifacts:
paths:
- generated-config.yml
child-pipeline:
stage: test
trigger:
include:
- artifact: generated-config.yml
job: generate-config
Run Code Online (Sandbox Code Playgroud)
配置模板.yml
#@ load("@ytt:data", "data")
stages:
- test
#@ for service in data.values.services:
#@yaml/text-templated-strings
(@= service @)-test:
stage: test
script:
- #@ "test " + service
#@ end
Run Code Online (Sandbox Code Playgroud)
配置模板值.yml
#@data/values
---
services: []
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4668 次 |
| 最近记录: |