It turned out to be quite easy with three caveats.

CAVEAT 1:
We can add SonarQube support by adding the following changes into the
groovy script[1], however this relies on a deprecated post-process. The
alternative is to either require each project to use an updated parent or
add SonarQube support manually via the plugin. As it seems like SonarQube
will continue to support the plugin for the moment[2], I would suggest that
we leverage this as it will allow us to enable SonarQube with the minimal
project configuration required and provide a flag to disable the post event
so we can add support for the "supported" method project-by-project.

CAVEAT 2:
To leverage Coverage reports we will need to add JaCoCo test coverage
support.

CAVEAT 3:
The ASF SonarQube doesn't support badges as does SonarCloud. We can add
badges for tech debt and coverage with Shields.io:
https://img.shields.io/sonar/4.2/https/builds.apache.org/analysis/org.apache.cxf%3Acxf/tech_debt.svg
https://img.shields.io/sonar/4.2/https/builds.apache.org/analysis/org.apache.cxf%3Acxf/coverage.svg

As is, you can see the SonarQube output here on my docker SonarQube
instance with a smattering of projects[3]

1 -
https://github.com/klcodanr/sling-tooling-jenkins/commit/2d0fd1097f179974cd8b602c8cc6e270552e0ee5
2 -
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins#AnalyzingwithSonarQubeScannerforJenkins-JobConfiguration.2
3 - https://imgur.com/a/LDdRDy3

On Tue, Sep 4, 2018 at 1:25 PM Daniel Klco <[email protected]> wrote:

> Robert,
>
> Do you happen to know where that'd be? I checked the trunk POM[1] and the
> groovy config[2] didn't see any mention of Sonar.
>
> Partially as an update, partially as documentation since I need to work on
> something else for a bit, I think this will just require updating the
> groovy job to add sonar as a publisher in the maven jobs[3].
>
> What I'm not sure about is that Apache Flex[4] (which has SonarQube
> working) has the SonarQube information provided in the POM. I *think* that
> should be provided automatically by the global Jenkins configuration. If
> that's not the case or if there are other Sling "global" settings we'd
> want, this may also require updating the parent POM.
>
> -Dan
>
> 1 - http://svn.apache.org/viewvc/sling/trunk/pom.xml?view=log
> 2 -
> http://svn.apache.org/viewvc/sling/trunk/tooling/jenkins/create_jobs.groovy?revision=1812253&view=markup
> 3 -
> https://jenkinsci.github.io/job-dsl-plugin/#path/mavenJob-publishers-sonar
> 4 - https://github.com/apache/flex-blazeds/blob/master/pom.xml
>
>
> On Tue, Sep 4, 2018 at 9:45 AM Robert Munteanu <[email protected]> wrote:
>
>> On Tue, 2018-09-04 at 08:38 -0400, Daniel Klco wrote:
>> > Is that something others would be interested in having for our
>> > modules? If
>> > so, I'll pilot out getting this in place.
>>
>> +1
>>
>> Note that I think we have something setup for the old SVN reactor.
>>
>> Robert
>>
>>

Reply via email to