На master
есть fileA
(скажем, оно состоит из 1000 строк)
Мы находимся на feature_branch
, где fileA
имеет длину, скажем, 1050 строк.
В нашем конвейере CI мы запускаем coverage
(это проект Python), и он выдает coverage.xml
, который будет использоваться в качестве входного сигнала для SQ.
Наш этап предварительного просмотра SQ выглядит следующим образом:
- git config --global user.name "SonarQube"
- git config --global user.email "sonarqube@somedomain.com"
- git checkout origin/master
- git merge $CI_BUILD_REF --no-commit --no-ff
- sonar-scanner -Dsonar.analysis.mode=preview -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
except:
- master@mainprojectnamespace
Проблема заключается в следующем:
ПОСЛЕ слияния, fileA
заканчивается тем, что (снова) 1000 строк
ОДНАКО , coverage
был запущен ДО слияния (в предыдущем задании), поэтому он включает результаты для строк> 1000 (что составляет fileA
длина после слияния)
Это вызывает (я полагаю) следующую ошибку:
ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Line 1040 is out of range in the file path/to/fileA.py (lines: 1000)
Как нам поступить?