就我而言,我只想smoke-test
在作业成功完成时才运行作业deploy
。有一个关键字需要,应该做到这一点。
但是在文档中也写了:
In GitLab 13.9 and older, if needs: refers to a job that might not be added to a pipeline because of only, except, or rules, the pipeline might fail to create.
这正是我的情况(管道甚至没有启动,因为deploy
工作不存在)。这项deploy
工作是有条件的,使用一个非常复杂的rules
条件:
rules:
- if: $CI_KUBERNETES_DEPLOYMENT_ENABLED != "true"
when: never
- if: $STAGING_CHART_DIRECTORY == ""
when: never
- if: $STAGING_NAMESPACE == ""
when: never
- if: $CI_REVIEW_DEPLOYMENT_ENABLED != "true" && $CI_MERGE_REQUEST_ID
when: never
- if: $CI_MERGE_REQUEST_ID && $CI_COMMIT_REF_PROTECTED == "true"
when: never
- when: on_success
我不想rules
也为这项工作定义双重条件smoke-test
——保持一致性会很痛苦。
在这种情况下,如何简单地说“smoke-test
仅在deploy
作业成功完成时才运行作业”?这里的最佳做法是什么?
- 可能在部署作业中设置一些环境变量并在作业中
DEPLOY_JOB_SUCCESS=true
依赖它smoke-test
- 或使用一些 yaml 锚(但是在这种情况下,管道定义不在一个 yaml 文件中)
- 或者是其他东西?
我会感谢任何提示:)
// gitlab 版本:GitLab 企业版 14.4.2-ee