CPAN Release Task::Jenkins 0.05

In: Articles|Releases

29 Jan 2014

I have just released Task::Jenkins 0.05 to CPAN (meta).

This is a feature release and it now included Devel::Cover::Report::Clover which is a report formatter for Devel::Cover, which can generate Clover reports consumable Devel::Cover reports in Jenkins using the Clover Plugin.

This does as such not replace the HTML Publisher Plugin integration I normally recommend but it does provide the Jenkins use with a graphical overview of the coverage metrics.

An example:

wpid-Clover-2014-01-29-15-49.png
The configuration of the plugin is pretty basic:

wpid-clover-conf-2014-01-29-15-49.png

We specify where we want the report to be and in our actually integration test step we add the following:

#create Devel::Cover report
./Build testcover

#create clover report from Devel::Cover using #Devel::Cover::Report::Clover
./cover -report clover -outputdir clover

In addition I generate the HTML reports and these are then accessible via clicking the graphical coverage report (please see my Wiki page on Continuous Integration for Perl using Jenkins).

#create html report from Devel::Cover::Report::Html
./cover -report html -outputdir clover && \
mv clover/coverage.html clover/index.html

This reports already exist since they are generated by Devel::Cover by default so perhaps a copy of these from cover_db can be done, but this was the first shot – or is strikes me I could just tell the clover report generation to output to
cover_db/ – this has to be tried out.

The rename of coverage.html to index.html is however unavoidable AFAIK to support the integration with the plugin.

This is really swell, BUT WAIT there is more…

This next part is not currently a part of Task::Jenkins, but I do mention it in the POD distributed with Task::Jenkins from this release and it might go in in the future. It was pointed out to be that a Jenkins plugin exists to visualize Perl::Critic reports, it is called Violations (thanks mil for the tips on plugins).

It is somewhat more tricky to set up. Lets start with the configuration:

wpid-violations-conf-2014-01-29-15-49.png

You start by pointing to perlcritic.txt, this file should contain output from a Perl::Critic run.

The plugin simply parses output from Perl::Critic. So you have to add a step to generate this file, which should contain something a long the lines of this:

./perlcritic –brutal –verbose 5 –profile \
t/perlcriticrc lib t > perlcritic.txt

I run with the highest severity since I just want a report of everything. I point to the perlcritic resource file following the distribution (also under version control), but I overwrite severity using –brutal and output format using the verbosity flag.

It is quite important to output in format 4 or 5 since only these are supported by the plugin. I normally prefer format 8 since it makes it easy to copy-paste the policy name into a perlcriticrc file.

With format five you get also the filenames and you redirect it into the text file.
Then you will get the following graph for you build.

wpid-violations-2014-01-29-15-49.png

And when you click the graph you get the following detailed view:

wpid-violations-detailed-2014-01-29-15-49.png

You can see violations, violations by severity, trends and by clicking the filenames you get even more in-depth information.

wpid-violations-detailed-file-2014-01-29-15-49.png

My Wiki page on Continuous Integration for Perl using Jenkins will be updated soon with all of these findings and other tips and goodies.

Please let me know if you experience issues or have other tips I could benefit from.

Continued happy integration!

jonasbn, logicLAB

3 Responses to CPAN Release Task::Jenkins 0.05

Avatar

Petar

April 7th, 2014 at 15:17

Hi Jonas,

I tried adding perlcritic command as Windows batch command, but since my code has violations, perlcritic exits with status 2 so the Jenkins fails the build with message:

“Build step ‘Execute Windows batch command’ marked build as failure”

Exit status code 2 is expected for code with violations (http://search.cpan.org/dist/Perl-Critic/bin/perlcritic#EXIT_STATUS), but I wonder how to tell Jenkins not to fail the build on that exit status?

Thanks,

Petar

Avatar

Petar

April 7th, 2014 at 15:39

Nevermind that, I solved it with:

perlcritic –brutal –verbose 5 lib t > perlcritic.txt || EXIT /B 0

Now I’m getting the violations report, but when I click on any file I get:

‘No violations found’

Do you know what’s causing this issue?

Thanks,

Petar

Avatar

J

July 3rd, 2014 at 06:14

I’m experiencing the same issue as Petar. Anytime I click on any file, ‘No violations found’.

No matter if I change “–verbose” level on the command line. Always “No violations found”…

Any idea? anyone?

Comment Form

About this blog

This blog acts as a channel for communicating logicLAB’s open source activities. Announcements on open source initiatives, involvements and releases of open source distributions of software products, projects and applications.

Photostream

  • jonasbn: Book wrote a more elaborate piece on CPAN deletions, which is worth mentioning: http://blogs.perl [...]
  • Neil Bowers: It would be good to hear your thoughts on supporting both an OO and procedural interface: what was t [...]
  • J: I'm experiencing the same issue as Petar. Anytime I click on any file, ‘No violations found’. N [...]
  • Petar: Nevermind that, I solved it with: perlcritic --brutal --verbose 5 lib t > perlcritic.txt || EX [...]
  • Petar: Hi Jonas, I tried adding perlcritic command as Windows batch command, but since my code has viola [...]

Calendar

January 2014
M T W T F S S
« Nov   Feb »
 12345
6789101112
13141516171819
20212223242526
2728293031