我的Gitlab管道由几个阶段组成。第二阶段到最后阶段测试和最后阶段进行清理。即使测试失败,也必须始终执行最后阶段。管道在创建合并请求时启动,目标是主分支。管道必须成功,否则开发人员无法合并。不幸的是,如果测试失败,管道将中止,并且不会运行最后阶段。"allow_failure“不是一种选择。如果测试阶段失败,则管道是成功的,因此开发人员能够合并分支。有人能给我个提示吗?
#other stages
...
myTests:
stage: test
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
script:
- ...# Do some tests
tags:
- bla
myCleaner:
stage: clean
script:
- ... //delete everything
tags:
- bla
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
- when: always发布于 2022-02-22 14:21:22
我会以这种方式合并测试和清理作业(未经测试):
# other stages
...
myTests:
stage: test
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
script:
- ./run_tests || retcode=$? # Do some tests
- ... # delete everything
- [ -n "$retcode" ] && false # "false" or "exit 1"
tags:
- blahttps://stackoverflow.com/questions/71218076
复制相似问题