Gitlab CI是否可以触发其他项目管道阶段



我有一个A项目和一个E2E项目。我想部署一个项目触发器E2E管道运行测试,但我只想要触发器测试阶段。我们不需要触发器E2E来构建部署。。。etc

e2e_tests:
stage: test
trigger:
project: project/E2E
branch: master
strategy: depend
stage: test

我已尝试在配置中使用阶段。但得到错误未知密钥:阶段

有什么建议吗?

在接收触发器的E2E项目中,您可以使用rules语法告诉作业仅在管道源是触发器时运行:

build-from-trigger:
stage: build
when: never
rules:
- if: "$CI_COMMIT_REF_NAME == 'master' && $CI_PIPELINE_SOURCE == 'trigger'
when: always
script:
- ./build.sh # this is just an example, you'd run whatever you normally would here

第一个when语句when: never设置作业的默认值。默认情况下,此作业永远不会运行。然后使用rule语法,我们设置一个允许作业运行的条件。如果CI_COMMIT_REF_NAME变量(分支或标记名称(是master,而CI_PIPELINE_SOURCE变量(启动此管道的任何变量(是trigger,那么我们运行此作业。

您可以在此处阅读有关when关键字的信息:https://docs.gitlab.com/ee/ci/yaml/#when,您可以在此处阅读rules文档:https://docs.gitlab.com/ee/ci/yaml/#rules

相关内容

最新更新