Задать вопрос

Как настроить связку phpunit и sonarqube на github actions?

Я настроил запуск юнит тестов и анализа сонаром. Теперь пытаюсь настроить анализ покрытия тестами и вот тут возникли проблемы. Сонар пишет
Mon, 22 Mar 2021 22:40:41 GMT
INFO: Analyzing PHPUnit test report: code-coverage/junit.xml
Mon, 22 Mar 2021 22:40:42 GMT
INFO: Analyzing PHPUnit coverage report: code-coverage/clover.xml
Mon, 22 Mar 2021 22:40:42 GMT
WARN: Could not resolve 18 file paths in clover.xml, first unresolved path: /home/runner/work/core-bundle/core-bundle/src/Annotations/Menu/Item.php


Код пайплайна
name: CI

on: [push]

jobs:
  phpunit:
    runs-on: ubuntu-latest
    steps:
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '7.4'
          extensions: mbstring, intl
          ini-values: post_max_size=256M
          coverage: xdebug
          tools: php-cs-fixer, phpunit
      - uses: actions/checkout@v2
      - uses: php-actions/composer@v5
      - name: PHPUnit Tests
        run: ./vendor/bin/phpunit
      - name: SonarQube Scan
        uses: kitabisa/sonarqube-action@master
        with:
          host: ${{ secrets.SONARQUBE_HOST }}
          login: ${{ secrets.SONARQUBE_TOKEN }}
          projectKey: "myprod-bundle"


То есть скорее всего сборка и тестирование выполняются в одном контексте а анализ в другом.
как это победить?
Буду благодарен за любую помощь.
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Galamoon
@Galamoon Автор вопроса
Как и ожидалось проблема в том что юнит тесты запускались в самой машине пайплайна а сонар сканер запускался в образе докера. Все это решается заменой готово action для сканера установкой сканера в сам пайплайн.
Код скрипта:
apt-get update
apt-get install unzip wget nodejs

wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.0.2311.zip
unzip sonar-scanner-cli-4.6.0.2311.zip

./vendor/bin/phpunit --stop-on-failure

sonar-scanner-4.6.0.2311/bin/sonar-scanner \
  -Dsonar.host.url=$SONARQUBE_HOST \
  -Dsonar.login=$SONARQUBE_TOKEN
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы