Hi! We don’t see the PR decoration on our merge requests in our instance of GitLab CI 12.9.
I followed the docs and the logs show no errors, even a success message:
2020.04.03 12:36:51 INFO ce[AXFACz6mgAJG5cIzCE__][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Pull Request decoration | status=SUCCESS | time=0ms
No project ID was set as the docs advise us.
Here the Dockerfile of our sonarqube-scanner if it helps: https://github.com/kiwicom/dockerfiles/blob/master/sonar-scanner/Dockerfile
We’re using SonarQube Developer Edition version 8.2 (build 32929)
Hello @baptiste.darthenay !
Welcome to SonarSource community forum!
Indeed, the log message may be misleading here - to have more details raise the SQ log level verbosity to DEBUG and re-analyse your PR and the ce.log
should much more informative.
Hope that helps.
Kris
Thanks for your quick answer!
I don’t see much more what would have gone wrong…
Here the logs after my adding SONAR_LOG_LEVEL_CE=DEBUG
:
2020.04.03 16:19:44 INFO ce[][o.s.c.t.CeWorkerImpl] Execute task | project=baptiste.darthenay:sonarqube-decorator | type=REPORT | branch=bd/debug | branchType=BRANCH | id=AXFA1lzeOl_SJDHLlyA8 | submitter=sonar-scanner
2020.04.03 16:19:44 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExtractReportStep] Analysis report is 144 KB uncompressed
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Extract report | status=SUCCESS | time=89ms
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist scanner context | status=SUCCESS | time=8ms
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Propagate analysis warnings from scanner report | status=SUCCESS | time=4ms
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Execute DB migrations for current project | status=SUCCESS | time=5ms
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Generate analysis UUID | status=SUCCESS | time=0ms
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Load analysis metadata | status=SUCCESS | time=24ms
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Initialize | status=SUCCESS | time=20ms
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Verify billing | status=SUCCESS | time=0ms
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Build tree of components | components=15 | status=SUCCESS | time=8ms
2020.04.03 16:19:44 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Validate project | status=SUCCESS | time=5ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Load quality profiles | status=SUCCESS | time=569ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Load Quality gate | status=SUCCESS | time=9ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.p.NewCodePeriodResolver] Resolving first analysis as new code period as there is only one existing version
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Load new code period | status=SUCCESS | time=10ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.f.FileMoveDetectionStep] Either no files added or no files removed. Do nothing.
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Detect file moves | reportFiles=10 | dbFiles=10 | addedFiles=0 | status=SUCCESS | time=4ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Load duplications | duplications=0 | status=SUCCESS | time=0ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.d.CrossProjectDuplicationStatusHolderImpl] Cross project duplication is disabled because it's disabled in the analysis report
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute cross project duplications | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute size measures | status=SUCCESS | time=2ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute new coverage | status=SUCCESS | time=32ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute coverage measures | status=SUCCESS | time=2ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute comment measures | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Copy custom measures | status=SUCCESS | time=4ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute duplication measures | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute size measures on new code | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute language distribution | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute test measures | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute complexity measures | status=SUCCESS | time=1ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Load measure computers | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute Quality Profile status | status=SUCCESS | time=46ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] Execution time for each component visitor:
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - LoadComponentUuidsHavingOpenIssuesVisitor | time=3ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - IntegrateIssuesVisitor | time=87ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - CloseIssuesOnRemovedComponentsVisitor | time=0ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - MaintainabilityMeasuresVisitor | time=0ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - NewMaintainabilityMeasuresVisitor | time=1ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - ReliabilityAndSecurityRatingMeasuresVisitor | time=0ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - NewReliabilityAndSecurityRatingMeasuresVisitor | time=0ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - SecurityReviewMeasuresVisitor | time=0ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - NewSecurityReviewMeasuresVisitor | time=0ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - LastCommitVisitor | time=0ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.ExecuteVisitorsStep] - MeasureComputersVisitor | time=1ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Execute component visitors | status=SUCCESS | time=94ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Checks executed after computation of measures | status=SUCCESS | time=34ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute Quality Gate measures | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Compute Quality profile measures | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Generate Quality profile events | status=SUCCESS | time=4ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Generate Quality gate events | status=SUCCESS | time=3ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist components | status=SUCCESS | time=13ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist analysis | status=SUCCESS | time=4ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist analysis properties | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist measures | inserts=93 | status=SUCCESS | time=11ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist live measures | insertsOrUpdates=692 | status=SUCCESS | time=229ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist duplication data | insertsOrUpdates=0 | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist new ad hoc Rules | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist issues | inserts=0 | updates=0 | merged=0 | untouched=0 | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist project links | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist events | status=SUCCESS | time=5ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist sources | status=SUCCESS | time=9ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Persist cross project duplications | status=SUCCESS | time=0ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Enable analysis | status=SUCCESS | time=8ms
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Update last usage date of quality profiles | status=SUCCESS | time=9ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.KeepOneFilter] -> Keep one snapshot per day between 2020-03-06 and 2020-04-02
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AXFAqY03gAJG5cIzCE4t:
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.KeepOneFilter] -> Keep one snapshot per week between 2019-04-05 and 2020-03-06
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AXFAqY03gAJG5cIzCE4t:
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.KeepOneFilter] -> Keep one snapshot per month between 2015-04-10 and 2019-04-05
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AXFAqY03gAJG5cIzCE4t:
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.KeepWithVersionFilter] -> Keep analyses with a version prior to 2018-04-06
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AXFAqY03gAJG5cIzCE4t:
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.DeleteAllFilter] -> Delete data prior to: 2015-04-10
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.p.p.DefaultPeriodCleaner] <- Delete analyses of component AXFAqY03gAJG5cIzCE4t:
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.purge.PurgeDao] <- Delete aborted builds
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.d.purge.PurgeDao] <- Purge stale branches
2020.04.03 16:19:45 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Purge db | status=SUCCESS | time=66ms
2020.04.03 16:19:45 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.IndexAnalysisStep] Call org.sonar.server.measure.index.ProjectMeasuresIndexer@73ce1fd7
2020.04.03 16:19:46 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.IndexAnalysisStep] Call org.sonar.server.component.index.ComponentIndexer@4a87b711
2020.04.03 16:19:46 DEBUG ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.s.IndexAnalysisStep] Call org.sonar.server.issue.index.IssueIndexer@665adbf9
2020.04.03 16:19:46 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Index analysis | status=SUCCESS | time=31ms
2020.04.03 16:19:46 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Send issue notifications | newIssuesNotifs=0 | newIssuesDeliveries=0 | myNewIssuesNotifs=0 | myNewIssuesDeliveries=0 | changesNotifs=0 | changesDeliveries=0 | status=SUCCESS | time=3ms
2020.04.03 16:19:46 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Publish task results | status=SUCCESS | time=0ms
2020.04.03 16:19:46 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.s.ComputationStepExecutor] Trigger refresh of Portfolios and Applications | status=SUCCESS | time=0ms
2020.04.03 16:19:46 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Webhooks | globalWebhooks=0 | projectWebhooks=0 | status=SUCCESS | time=5ms
2020.04.03 16:19:46 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.p.a.p.PostProjectAnalysisTasksExecutor] Pull Request decoration | status=SUCCESS | time=0ms
2020.04.03 16:19:46 INFO ce[AXFA1lzeOl_SJDHLlyA8][o.s.c.t.CeWorkerImpl] Executed task | project=baptiste.darthenay:sonarqube-decorator | type=REPORT | branch=bd/debug | branchType=BRANCH | id=AXFA1lzeOl_SJDHLlyA8 | submitter=sonar-scanner | status=SUCCESS | time=1828ms
Hello @baptiste.darthenay .
The scan log is referring to a normal branch type of scan. It is not a PR scan.
Check that you correctly pass all PR related properties (as documented at https://docs.sonarqube.org/latest/analysis/pull-request/ ) to the scanner command.
Hope that helps.
Kris
Thanks! But I’m not sure where and how to use the parameter sonar.pullrequest.branch=feature/my-new-feature
.
aexvir
(Alex Viscreanu)
April 8, 2020, 8:11am
6
Hi @Krzysztof_Jazgara ,
Actually, according the docs nothing has to be set up when using GitLab CI, as everything is auto-detected, and there are even some threads in this forum advising against manually setting this parameters in this kind of setup.
Now… yep, you were right, we missed the docs part where it says that it only supports merge request pipelines, and after making the job run only on merge requests we have it working perfectly, but we’d really like to avoid using them. Overall it’s not something we feel comfortable with.
I tried to replicate the same environment as merge requests pipelines but I’m not succeeding to make PR decoration work on regular pipelines… could you maybe point me in the source code where this autodetection is done? I checked sonar-scanner-cli and sonar-scanner-api without much luck… Is it using something more than just env vars for this?
Here is what we currently have
sonarqube_scan:
stage: release
needs: []
image:
name: sonarsource/sonar-scanner-cli:4.3
entrypoint: [""]
variables:
GIT_DEPTH: 0
interruptible: true
script:
# This is a horrible hack in my opinion, but it seems that SonarQube doesn't allow passing
# the options directly to sonar-scanner, and we don't want to use merge request pipelines
# as they are really confusing because of the detached pipelines
- export CI_MERGE_REQUEST_ID=$(git ls-remote ${CI_REPOSITORY_URL} refs/merge-requests/[0-9]*/head | awk "/$CI_COMMIT_SHA/"'{print $2}' | cut -d '/' -f3)
- export CI_MERGE_REQUEST_PROJECT_URL=$CI_PROJECT_URL
- export CI_MERGE_REQUEST_SOURCE_PROJECT_URL=$CI_MERGE_REQUEST_PROJECT_URL
- export CI_MERGE_REQUEST_SOURCE_PROJECT_ID=$CI_PROJECT_ID
- export CI_MERGE_REQUEST_SOURCE_BRANCH_NAME=$CI_COMMIT_REF_NAME
- >
sonar-scanner
-Dsonar.projectKey="${CI_PROJECT_PATH//\//:}"
-Dsonar.sources=$SONARQUBE_TARGET
$SONARQUBE_EXTRA_ARGS
allow_failure: true