我有一个以这种方式配置的 Gitlab 管道:构建 >> 测试 >> 发布
我想要实现的是:
跳过测试如果:
在以下情况下也总是运行测试:
这可能吗?如果是,如何?
答案 0 :(得分:0)
如果您不介意使用其他工具,我们通过 Reliza Hub 为任何 CI/CD 支持此功能(免责声明:我正在开发该工具)。
本质上,您将添加一些 yaml,如下所示(这是来自正在构建舵图的演示项目之一的工作示例):
- # get latest completed release to see if there are diffs in helm chart
- do_helm_release="true"
- last_commit=$(docker run --rm relizaio/reliza-cli getlatestrelease -i $RELIZA_API_ID -k $RELIZA_API_KEY --branch $CI_COMMIT_REF_NAME| jq -r ".sourceCodeEntryDetails.commit")
- if [ ! -z "$last_commit" ]; then changes=$(git log $last_commit..$CI_COMMIT_SHA helm/ | wc -l); if [ $changes -eq 0 ]; then do_helm_release="false"; fi; fi
- echo "do helm release = $do_helm_release"
- if [ "true" == "$do_helm_release" ]; then ...
稍后在您的 yaml 中,您将向 Reliza Hub 提交发布详细信息。这是一个基本示例 - https://github.com/relizaio/reliza-hub-integrations/blob/master/GitLab/standard-docker-registry/.gitlab-ci.yml
Reliza Hub 会自动丢弃任何失败的发布,因此您只会与成功的发布进行 Git 比较。
如果您想要构建但跳过测试,您可以利用批准逻辑,其中自动化流程设置某些批准,然后您仅获得具有某些所需批准的构建以进行比较。请参阅此处了解更多详情 - https://worklifenotes.com/2020/04/09/approvals-for-any-ci-cd-in-reliza-hub-demo-video/
Reliza Hub 的社区支持 - https://discord.gg/UTxjBf9juQ