如果 gitlab 中的 Alpha 测试失败,则阻止 QA 部署

问题描述 投票:0回答:1

我们遇到的问题是,有时,即使我们的测试失败,仍然可以手动触发 QA 管道。为了解决这个问题,我正在努力实现一种机制,以便在我们的初始 alpha 测试未成功通过时自动阻止 QA 部署。我们有从 master 分支出来的发布/其他管道,它们没有 alpha 阶段,但只有 qa。有没有办法让我们在新分支中运行 qa 之前返回并检查 alpha 阶段测试是否通过或失败?

以下是技术细分:

当前设置:我们有一个由多个阶段组成的软件开发管道。这些阶段之一是 alpha 测试阶段。

目标:我们的目标是确保在 alpha 测试失败的情况下阻止 alpha 测试阶段之后的 QA 部署阶段。

问题:目前,即使 alpha 测试失败,也没有内置机制可以防止 QA 部署发生。

解决方法:

我们正在考虑的一种方法是实施一个系统来检查 alpha 测试的状态,如果未成功通过,则阻止 QA 部署继续进行。 为了实现这一目标,我们还在探索将 alpha 测试的状态与版本被删除的分支相关联的想法。 如果某个分支的 alpha 测试成功,则发布管道可以继续进行;否则应该被屏蔽。

我正在尝试弄清楚如何在 gitlab 中执行此操作,但不确定是否有本地方法或简单的方法来完成此操作

我们尝试使用allow_failure: true,还尝试使用needs:project指令,它允许我们从不同管道中的其他作业中获取工件,并且可以配置为从同一项目中获取。

gitlab gitlab-ci-runner
1个回答
0
投票

为了确保 QA 部署阶段在 alpha 测试失败时被阻止,您可以在 GitLab CI/CD 管道中实现一种机制。这是建议的方法:

修改您的 alpha 测试阶段,以包含运行 alpha 测试并报告状态(通过/失败)的作业。 将 alpha 测试的状态存储为工件,可供后续阶段访问。 在 QA 部署阶段,添加一个作业来检查工件中 alpha 测试的状态。 如果 alpha 测试未成功通过,请使用条件语句(例如 GitLab CI/CD 中的规则)来阻止 QA 部署作业运行。 以下是如何在 GitLab CI/CD 管道配置中实现此功能的示例: 阶段:

  • alpha_测试
  • qa_部署

alpha_测试: 阶段:alpha_test 脚本: - # 运行 alpha 测试 - # 将 alpha 测试的状态存储为工件 文物: 路径: - alpha_test_status.txt

qa_部署: 阶段:qa_deployment 脚本: - # 检查来自工件的 alpha 测试的状态 - if [ "$(cat alpha_test_status.txt)" != "通过" ];然后退出1;菲 依赖项: - 阿尔法测试 规则: - if: '$CI_COMMIT_BRANCH == "master"' # 仅阻止主分支的 QA 部署

在此示例中,alpha_test 阶段运行 alpha 测试并将状态存储在文件 (alpha_test_status.txt) 中。然后,qa_deployment 阶段检查此工件的状态,如果 alpha 测试未成功通过,则退出并显示错误。此外,条件语句(规则)用于仅阻止主分支的 QA 部署。

通过实施此方法,您可以确保在 alpha 测试失败时阻止 QA 部署,从而帮助维护软件版本的质量。

© www.soinside.com 2019 - 2024. All rights reserved.