gitlab 静态应用程序安全测试出现错误“sast job:选择的阶段不存在;可用的阶段是”

Mic*_*sky 2 gitlab gitlab-ci

我尝试按照这些相当简单的说明将静态应用程序安全测试 (SAST) 集成到 Gitlab 上的 Android CI/CD 管道中。但是,我在使用CI lint 工具时遇到以下错误:

sast job: chosen stage does not exist; available stages are .pre, stg_build, stg_test, .post
Run Code Online (Sandbox Code Playgroud)

这是我的 .gitlab-ci.yml 的最简单版本,它重现了错误:

sast job: chosen stage does not exist; available stages are .pre, stg_build, stg_test, .post
Run Code Online (Sandbox Code Playgroud)

我在 GitLab 中发现了类似的错误:选择的阶段不存在,但这是关于尝试使用环境变量作为阶段名称。

如何防止此错误并让 SAST 处理 Gitlab 上的合并请求?

Mic*_*sky 8

问题是Security/SAST.gitlab-ci.yml模板期望有一个名为的阶段test,但 .gitlab-ci.yml 中的测试阶段已重命名为“stg_test”。

我找到了两种方法来满足 CI Lint 工具的要求:

  1. 将“stg_test”重命名为“测试”
  2. 配置 sast 脚本在“stg_test”期间运行,但将以下内容添加到 .gitlab-ci.yml 中:
sast:
  stage: stg_test
Run Code Online (Sandbox Code Playgroud)

资料来源:

  1. gitlab开发者社区
  2. 获取错误消息 sast job:阶段参数应该是 [此处的某个阶段名称]