【发布时间】:2018-10-31 21:05:55
【问题描述】:
master 上有一个fileA(比如说它由 1000 行组成)
我们在feature_branch,其中fileA 的长度为1050 行。
在我们的 CI 管道上,我们正在运行 coverage(它是一个 Python 项目)并生成 coverage.xml,用作 SQ 的 cov 输入。
我们的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)
我们该怎么做?
【问题讨论】:
标签: python sonarqube continuous-integration gitlab code-coverage