gitlab CICD 管道(Sonarqube)仅针对合并请求触发

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

当我们将代码推送到“cicd-setup”分支时,下面的 CICD 代码会自动触发。这里,当我们每次将代码推送到“cicd-setup”分支时,“build-stage”和“sonar-stage”都会自动触发。 当我们推送代码时,我不想自动触发“声纳阶段”。 我添加了 仅有的: - 合并请求 如果我添加上面的代码,“声纳阶段”仅在我们提高 MR 时触发,而其他阶段在我们提高 MR 时不会运行,这是解决方案的一半!!.

我的问题是,当我们每次推送代码时,“声纳阶段”不应该自动执行/触发。仅当我们提出合并请求时才会触发。

stages:
  - build-stage
  - sonar-stage

variables:
  SONAR_HOST: "http://asdftestserver01.abc.com:9000"
  SONAR_PROJECT_KEY: "test-api"
  SONAR_LOGIN_TOKEN: "aaabbbbbbcccccccddddddddd"

build_stage:
  stage: build-stage
  only:
    - cicd-setup
  environment:
    name: stage
  script:
    - echo "build stage started"
    - mvn clean install
    
api_sonarqube_analysis:
  stage: sonar-stage
  only:
    - merge_requests
    - cicd-setup    
  script:
    - pwd
    - echo "sonarqube started"
    - mvn sonar:sonar -Dsonar.projectKey=$PROJECT_KEY -Dsonar.host.url=$SONAR_HOST -Dsonar.login=$SONAR_LOGIN_TOKEN 
gitlab sonarqube cicd merge-request
1个回答
0
投票

正如您可能在文档中看到的那样,

only
except
已被弃用,取而代之的是
rules
。因此,也许您最好迁移到新语法 - 并不是说您无法使用
only
实现相同的效果 - 因为它看起来也会更清晰。

也就是说,您可以像这样适应新格式:

stages:
  - build-stage
  - sonar-stage

variables:
  SONAR_HOST: "http://asdftestserver01.abc.com:9000"
  SONAR_PROJECT_KEY: "test-api"
  SONAR_LOGIN_TOKEN: "aaabbbbbbcccccccddddddddd"

build_stage:
  stage: build-stage
  rules:
    - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "cicd-setup"
  environment:
    name: stage
  script:
    - echo "build stage started"
    - mvn clean install
    
api_sonarqube_analysis:
  stage: sonar-stage
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "cicd-setup"
  script:
    - pwd
    - echo "sonarqube started"
    - mvn sonar:sonar -Dsonar.projectKey=$PROJECT_KEY -Dsonar.host.url=$SONAR_HOST -Dsonar.login=$SONAR_LOGIN_TOKEN 

我已经使用了变量

$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
,但如果你想使用它,你也可以使用
$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
。可用合并请求变量的完整列表位于此处

请记住,当您打开 MR 时,这将生成两个单独的管道,每个阶段一个,因为每次推送到 MR 相关分支也会触发

build_stage
作业。

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