如何测试GitLab CI/CD流水线

5
我们在私有GitLab服务器上使用GitLab CI/CD,并维护一个包含includes和rules的相当复杂的gitlab-ci.yaml文件:
  • 一些流水线作业仅在特定分支上运行
  • 一些流水线作业仅在设置了特定变量时运行
  • 一些流水线作业是直接从include中获取而没有更改
  • 一些流水线作业是从include中获取的,但在当前文件中被覆盖
  • 等等。
目前,我们的质量保证步骤是:
  • 使用GitLab API对文件进行linting
  • 构建、测试和部署测试项目以测试pipeline(smoke tests)
我们想要添加的是单元测试,其中我们可以在特定条件下测试pipeline的行为(特定分支、变量、其他条件),以便确保特定设置会导致特定的pipeline配置。不幸的是,我无法找到有关如何正确测试GitLab CI流水线的任何信息。我们该怎么做?

1
我们在同一艘船上,在这里寻找工具/流程。你的问题有任何进展吗? - Jacob
1个回答

0

管道编辑器可以提供你所寻找的一些功能,但截至目前(v16.2),除了默认分支外,还没有好的方法来模拟管道。

除了基本的代码检查之外,自从这个问题被提出以来,还有一些新功能可用:

模拟CICD管道(针对默认分支)在15.3版本中添加

管道模拟可以帮助发现诸如错误规则和作业依赖等问题

查看包含的CICD配置通过特性标志在15.0版本中添加。在15.1版本中移除了该标志

查看所有包含的[通过include关键字]配置文件的列表

可视化 CI 配置 通过特性标志在13.5中添加。标志在13.12中移除

可视化显示所有阶段和作业。任何needs关系都会显示为连接作业的线,展示执行的层次结构。

查看完整配置 通过特性标志在13.9中添加。标志在13.12中移除

显示扩展的 YAML 配置,其中:

  • 使用 include 导入的配置被复制到视图中。
  • 使用 extends 的作业将显示合并到作业中的扩展配置。
  • YAML 锚点将被替换为链接的配置。
  • YAML 的 !reference 标签也将被替换为链接的配置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接