簡體   English   中英

Gitlab CI 僅在將分支合並到 master 時執行 SAST 作業

[英]Gitlab CI execute SAST jobs only when merging branch to master

您好,我正在嘗試弄清楚如何僅在將分支合並到 master 時運行 SAST 作業,因為它們持續 5 分鍾並且在任何分支的每次推送中都在運行。

這意味着每次有人向他們的 MR 分支推送時,安全階段都會與所有 SAST 作業一起執行。

我想要實現的是當分支要合並到 master 時執行 SAST 作業。

gitlab-ci.yml:

include:
  - template: Jobs/SAST.gitlab-ci.yml

stages:
  - security
  - tests

my_tests:
  stage: tests
  script:
    - echo Running tests ...

sast:
  stage: security

到目前為止我嘗試使用的是:

sast:
  stage: security
  only: 
    - master

但它失敗了,因為包含的模板Jobs/SAST.gitlab-ci.yml已經使用規則和規則與 only/except 不能一起使用。

jobs:sast 配置密鑰不能與rules一起使用:僅

源代碼Jobs/SAST.gitlab-ci.yml中不使用except but rules ,這些規則也與only不兼容。

但您也可以切換到規則語法:

sast:
  stage: security
  rules:
    - if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
      when: always

這應該夠了吧

您可以使用此配置:

include:
  - template: Jobs/SAST.gitlab-ci.yml

phpcs-security-audit-sast:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' 
      exists:
        - '**/*.php'

semgrep-sast:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
      exists:
         - '**/*.go'
         - '**/*.html'
         - '**/*.js'
         - '**/*.jsx'
         - '**/*.ts'
         - '**/*.tsx'

gosec-sast:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
      exists:
        - '**/*.go'

nodejs-scan-sast:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
      exists:
        - '**/package.json'

bandit-sast:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
      exists:
        - '**/*.py'

flawfinder-sast:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
      exists:
        - '**/*.c'
        - '**/*.cpp'

eslint-sast:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
      exists:
        - '**/*.html'
        - '**/*.js'
        - '**/*.jsx'
        - '**/*.ts'
        - '**/*.tsx'

spotbugs-sast:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
      exists:
        - '**/*.groovy'
        - '**/*.java'
        - '**/*.scala'
        - '**/*.kt'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM