Continuous integration Gitlab CI允许在前一阶段失败时手动操作
我有一个Gitlab CI/CD管道,它通常工作正常。Continuous integration Gitlab CI允许在前一阶段失败时手动操作,continuous-integration,gitlab,gitlab-ci,Continuous Integration,Gitlab,Gitlab Ci,我有一个Gitlab CI/CD管道,它通常工作正常。 我的问题是,我的测试需要超过10分钟,而且它不稳定(但…),所以偶尔会在我不关心的小测试中随机失败 通常,在重试后,它会工作,但如果我需要紧急部署,我需要再等待10分钟。 当我们遇到一个紧急bug时,再花10分钟就太多时间了,所以我正在寻找一种方法来强制部署,即使测试失败 我有下一个伪ci-yaml场景,我没有找到一种方法来实现它 stages: - build - test - deploy setup_and_build:
我的问题是,我的测试需要超过10分钟,而且它不稳定(但…),所以偶尔会在我不关心的小测试中随机失败 通常,在重试后,它会工作,但如果我需要紧急部署,我需要再等待10分钟。
当我们遇到一个紧急bug时,再花10分钟就太多时间了,所以我正在寻找一种方法来强制部署,即使测试失败 我有下一个伪ci-yaml场景,我没有找到一种方法来实现它
stages:
- build
- test
- deploy
setup_and_build:
stage: build
script:
- build.sh
test_branch:
stage: test
script:
- test.sh
deploy:
stage: deploy
script:
- deploy.sh
only:
- master
我正在寻找一种在测试阶段失败时手动部署的方法。
但是如果我将when:manual
添加到部署中,那么部署永远不会自动发生
因此,像when:auto\u或manual\u on\u previous\u fail这样的标志将非常有用
目前,Gitlab ci中没有此类标志
您对解决方法或实现方法有何想法?另一种方法是在紧急发布时跳过测试 为此,请按照“”和:
- 在触发紧急释放的提交消息中添加“跳过测试”
- 在测试阶段检查一个变量
.test-template: &test-template
stage: tests
except:
variables:
- $CI_COMMIT_MESSAGE =~ /\[skip[ _-]tests?\]/i
- $SKIP_TESTS
如上所述,我们还在模板的except块中包含变量$SKIP_TESTS
。这在从GitLab的web界面手动触发管道时非常有用。
下面是一个例子:
您找到解决方案了吗?