仅合并后在gitlab上运行集成测试

问题描述

假设我有一个测试套件,其中99%的测试是快速的(总共运行2分钟),而1%的集成测试的运行时间是20分钟。

GitLab是否提供任何方法在合并到主数据库之前在管道中运行快速测试,而只有在合并完成后才在管道中运行快速测试?

这里的想法是每隔几个月恢复一次就值得更快合并。

解决方法

您可以根据分支名称限制GitLab作业。如果您将集成测试独立于他们自己的工作并以此方式进行限制,则在您按some_feature_bracnh时它们将不会运行,但是如果将该分支合并到master中,它们将运行。例如:

stages:
  - dev
  - postmerge

unit-test:
  stage: dev
  scripts:
    - ./run_unit_tests.sh

integration-test
  stage: postmerge
  scripts:
    - ./run_integration_tests.sh
  only:
    refs:
    - master