我有一个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