Ошибка при использовании 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

Другие вопросы по тегам