我正在尝试根据 .gitlab-ci.yml 文件中设置的变量动态生成 .yml 文件的一部分,然后将生成的文件作为工件包含在内,以便在未来阶段(例如构建)进行评估。
我在尝试通过包含在构建阶段加载 .pre 阶段中生成的 yml 时遇到问题。这确实是有道理的,这在同一次运行中是不可能的,但也许我可以利用一些可能的特性,这些特性可能会使生成的文件在后续运行中加载,也许以某种方式缓存它。
是否可以在后续阶段包含生成的模板(artifacts),也许通过缓存工件?
您可以设置一个工件作为 .yml 模板包含在以后的阶段吗?
回答1
我刚刚发现父子 pipelines 可能是一个可能的解决方案,我会尝试这个。
https://docs.gitlab.com/ee/ci/pipelines/parent_child_pipelines.html#dynamic-child-pipelines
来自文档:
您可以从动态生成的配置文件中触发子 pipeline :
generate-config:
stage: build
script: generate-ci-config > generated-config.yml
artifacts:
paths:
- generated-config.yml
child-pipeline:
stage: test
trigger:
include:
- artifact: generated-config.yml
job: generate-config