Gradle build fails on jenkins after upgrade - jenkins

I have a large application which uses gradle for its build, and jenkins for CI.
I upgraded gradle wrapper from version 2.4 to 3.4 recently. Every thing is ok in my development boxes, but 3 of test cases fail on the Jenkins box with NPE.
The NPE is caused by the fact that some records are not found in database. The records supposed to be inserted by dbunit.
We have thousands of test cases, following the same dbunit, pattern. None of them fail.
Does any one is aware of any change betwee gradle 2.4. to 3.4 that might cause this issue.

Related

Specflow Specrunner does not start tests in Jenkins after Build

I am trying to run tests in Jenkins using the Specflow Framework and the Specflow testrunner.
Since I am actually just migrating to another server, I was able to copy most configurations and only had to set up a newer Java version.
Jenkins is able to build the project but stops and skips all test with the following error:
Execution framework error: TechTalk.SpecRun.Framework.SpecRunException: At least one test thread aborted. ---> System.DllNotFoundException: Unable to load DLL 'nameofdll.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
I am pretty sure it is actually a specflow problem, because when this error occurs locally in my VS solution, I just delete the specflow-stepmap-cache file and it works fine. Since Jenkins executes the tests there is no such file generated or I just have not found it yet.
I work with Visual Studio 2017, Specflow Runner 2.3.0, SDK 4.6. and Jenkins 2.190.2.
I know those versions are fairly old, but it worked fine on the old server and I believe there is just one thing missing.
Anyone got an idea?
Thanks in advance.

Jenkins Test Result Trend Graph Numbers Don't Work

I'm having an issue with Jenkins Test Result Trend. The graph appears when it needs to, however the numbers are no longer there and replaced with a bunch of symbols.
I am running the latest Jenkins (2.84) with all plugins up to date.
I've tried disabling some plugins, triple checking junit plugin is fully up to date, and other various tasks.
Hopefully you've already resolved this, but for others - turns out this is related to the availability of the dejavu-sans font on your host.
I encountered this when installing Jenkins on CentOS. Resolved with:
yum install dejavu-sans-fonts.noarch dejavu-sans-mono-fonts.noarch
See:
Jenkins - Load Statistics graph weird encoding

Jenkins +Sonar +ANT+Cactus +hangs at clean snapshot

I'm having problem running Sonar analysis through Jenkins. Using a Post Step with "Invoke Standalone Sonar Analysis" to start a Sonar Runner task. I can see the result from the analysis in the dashboard but the build in Jenkins never ends. It seems that the cleanup task in Sonar hangs. I am using H2 database and CANNOT change to other databases.
Jenkins is installed in Linux machine and is Sonar version is 3.7.4
How to resolve that clean snapshot hang part?
H2 database is not supported for production environments (but you seem to be aware of this fact). Furthermore, it is preventing you from upgrading to a recent version of SonarQube, since database migrations are not supported either on H2.
That being said, and if losing your project history is not important, you can try to switch to a recent SQ server and runner (respectively 4.4 and 2.4 as of writing), as there were quite a few improvements and bug fixes since last year.
H2 is not recommended for production as in sonar documentation stated. But if you are not awared of the history of sonar analysis, you can do the following (keep on using H2):
In Linux:
Stop sonar: service sonar stop
Delete sonar*.db under /opt/sonar/data
Start sonar again: service sonar start
Then run analysis again.
It should work, good luck.

How do I do release versioning with Gradle and Jenkins?

We're building a continuous integration pipeline for the project I'm working on. We have a number of build artifacts (both JAR and WAR files) which we have versioned and deployed to an Artifactory server.
All our JARs start at version 0.0.1-SNAPSHOT. As we develop, we'd like to mark milestones by setting a particular point in the codebase as 0.0.1, and starting development on 0.0.2-SNAPSHOT. Eventually, a particular version will get accepted by QA, and promoted to 0.1.0, and we will start working on 0.1.1-SNAPSHOT. The same process will happen with a release to Production, when we reach 1.0.0.
I can't seem to find a plugin for Jenkins that supports this kind of versioning. Ideally, it would track the current version of each WAR and JAR, and once it hit a particular point (after running acceptance tests) it would automatically increment the version. Does such a thing exist?
You can make use of the gradle-release plugin. Please find different approaches that are documented here

No code coverage after Sonar upgrade to version 3.6.2

We were running a sonar server with an old version (3.4.1) with an embedded H2 database.
While migrating to an oracle databse we were upgrading our sonar server to the most recent version 3.6.2.
Upgrade finished successful (except it is not possible to keep the historical data). But after the upgrade was done sonar didn't show the code coverage any more.
Using the old sonar instance the coverage analysis still works. We did not change any sonar code coverage settings (leaving it to default: jacoco), just starting the analysis from within Jenkins via the Sonar plugin.
Did anyone had the same, a similar problem or any idea how to fix this?
Is there anything new, we have to configure?
In my case the value of sonar.java.coveragePlugin in sonar settings was set to cobertura, so it was just a wrong configuration.
Always keep in mind, that one can define global and project specific settings in sonar.

Resources