在 Travis-CI 构建中,如何仅在 master 分支上调用 SonarQube
On a Travis-CI build, how to only invoke SonarQube on master branch
因为我只有 SonarQube.com (SQ) 上的免费 CE 帐户,所以我不能让它在 master
之外建立任何分支。
我如何设置 .travis.yml
以便它仅在构建 master
分支时触发 SQ,但仍构建其他分支(只是不触发 SQ)?
对 .travis.yml
中的 script
部分进行干预对我有用。
重要的部分是:
script:
- cmdExtra=""; if [ $TRAVIS_BRANCH = "master" ]; then cmdExtra="<your-sonar-trigger-here>"; fi; <your-cmd-here> $cmdExtra
这是基于 Maven 的 Java 项目的完整示例:
language: java
sudo: false # faster builds
addons:
sonarcloud:
organization: "myOrganizationId"
token:
secure: "134f51f3451f3451ffe12f3124123123123123123123"
jdk:
- openjdk8
script:
# NOTE JaCoCo is used to have code coverage, the agent has to be activated
# NOTE The SonarCube Community Edition (free plan) only supports branch "master".
- cmdExtra=""; if [ $TRAVIS_BRANCH = "master" ]; then cmdExtra="sonar:sonar"; fi; mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package $cmdExtra
cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.sonar/cache'
因为我只有 SonarQube.com (SQ) 上的免费 CE 帐户,所以我不能让它在 master
之外建立任何分支。
我如何设置 .travis.yml
以便它仅在构建 master
分支时触发 SQ,但仍构建其他分支(只是不触发 SQ)?
对 .travis.yml
中的 script
部分进行干预对我有用。
重要的部分是:
script:
- cmdExtra=""; if [ $TRAVIS_BRANCH = "master" ]; then cmdExtra="<your-sonar-trigger-here>"; fi; <your-cmd-here> $cmdExtra
这是基于 Maven 的 Java 项目的完整示例:
language: java
sudo: false # faster builds
addons:
sonarcloud:
organization: "myOrganizationId"
token:
secure: "134f51f3451f3451ffe12f3124123123123123123123"
jdk:
- openjdk8
script:
# NOTE JaCoCo is used to have code coverage, the agent has to be activated
# NOTE The SonarCube Community Edition (free plan) only supports branch "master".
- cmdExtra=""; if [ $TRAVIS_BRANCH = "master" ]; then cmdExtra="sonar:sonar"; fi; mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package $cmdExtra
cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.sonar/cache'