Ошибка при использовании Travis CI с Sonarcloud: не разрешено. Пожалуйста, проверьте свойства sonar.login и sonar.password
Я следую инструкциям по началу работы на sonarcloud.io для запуска сканера SonarQube для Maven с моего компьютера:
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar \
-Dsonar.host.url=https://sonarcloud.io \
-Dsonar.organization=ron190-github \
-Dsonar.login=9...e
Ручное исполнение работает:
[INFO] ANALYSIS SUCCESSFUL, you can browse https://sonarcloud.io/dashboard/index
/jsql-injection:jsql-injection
Но когда я готов автоматизировать работу с Travis CI, у меня ничего не получается Not authorized. Please check the properties sonar.login and sonar.password.
:
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project jsql-injection: Not authorized. Please check the properties sonar.login and sonar.password. -> [Help 1]
И если я добавлю sonar.login
к mvn
команда, то это работает:
language: java
sudo: false
install: true
addons:
sonarcloud:
organization: "ron190-github"
token:
secure: "v...s="
jdk:
- oraclejdk8
script:
# JaCoCo is used to have code coverage, the agent has to be activated
# Not working
# - mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar
- mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar -Dsonar.login=9...e
cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.sonar/cache'
Я также использовал пример сценария.
Ты знаешь почему secure
токен игнорируется и почему он не работает с конфигурацией по умолчанию?
1 ответ
Кажется, что тег secure
не работает, вместо этого используйте переменную репо:
language: java
sudo: false
install: true
addons:
sonarcloud:
organization: "ron190-github"
jdk:
- oraclejdk8
script:
# JaCoCo is used to have code coverage, the agent has to be activated
- mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar -Dsonar.login=${SONAR_TOKEN}
cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.sonar/cache'
Я согласен с Santhosh Tpixler в том, что ваша проблема, скорее всего, связана с шифрованием токена Travis. В моем случае мне нужноtravis-ci.com
(в отличие от travis-ci.org
см. https://devops.stackexchange.com/q/1201), поэтому пришлось использовать--pro
флаг.
Изнутри каталога проекта я использовал следующие команды:
travis login --pro
travis encrypt --pro <your-hexadecimal-token>
Проблема с шифрованием travis.
Правильный синтаксис шифрования:
travis encrypt 309473973909Z09R830 -r my-org/my-repo
Без имени переменной, без кавычек.
Если вы работаете travis encrypt
внутри вашей директории репо вы можете просто использовать
travis encrypt 309473973909Z09R830
Пожалуйста, замените ваш токен для 309473973909Z09R830
Вышеуказанный трюк сработал для меня. Мысль сделать его более заметным для публики.
Кредиты: ron190