www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Lightning talk ABC Bitcoin: Tooling

reply Andre Pany <andre s-e-a-p.de> writes:

Unfortunately I had no chance to see the lightning talk of ABC 
Bitcoin but want to share my knowledge.

I was also in need to report unit test / coverage / linter 
results in a Jenkins Pipeline / SonarQube Server.

Unit test was easy, because unit test framework dunit can export 
QUnit compatible XML files. The D LST coverage files I convert 
into a Cobertura file and DScanner issues I convert into a 
CheckStyle file. Cobertura and CheckStyle are tools from other 
languages but they are well supported in Jenkins and their 
Jenkins plugins display the affected D source code quite nice.

Despite this work around I created a D issue to make the coverage 
DMD file output adaptable via D code.

Also I created a pull request for DScanner to output the findings 
in SonarQube external issue format.

There is a SonarQube plugin for D but it is not in the official 
marketplace and therefore it won't be installed on the central 
company server I work for. But SonarQube provides generic 
projects for which you can upload generic coverage data, generic 
test results and generic findings. You just have provide the data 
in the format SonarQube specifies.

There is currently 1 catch for generic coverage and test results. 
The file ending .d causes an exception, I filed a bug report and 
it will be solved.

There is also some consolidation of the coverage/issue reporter 
Jenkins plugins ongoing. The Jenkins developer consolidates the 
plugins. I am pretty sure they will support the SonarQube file 

That means if we are able to provide coverage/issues in SonarQube 
formats, they will also work in Jenkins plugins.

Kind regards
May 09 2019
parent Seb <seb wilzba.ch> writes:
On Thursday, 9 May 2019 at 18:11:57 UTC, Andre Pany wrote:

 Unfortunately I had no chance to see the lightning talk of ABC 
 Bitcoin but want to share my knowledge.

Btw I'm not happy with dmd's coverage format either, but some tools are able to work with it. One good example is CodeCov, e.g. https://codecov.io/gh/dlang/phobos/branch/master This is the tool we use to get the coverage information (and more importantly the coverage diff) for every PR in a lot of D repositories.
May 10 2019