TeamCity and Coverity
Answered
Hi,
We're reviewing options for CI and TeamCity is a strong contender for us.
What would be the best way to integrate Coverity into our build process within TeamCity?
Our current CI is able to use Coverity when building nightly and we'd like to continue this when switching to TeamCity.
Please sign in to leave a comment.
Hello!
Could you please describe how you are using Coverity with your CI server?
We do not provide this integration out of the box, and it seems there are no external plugins for TeamCity to support this tool. But TeamCity has many extension points, so it should not be hard to write such a plugin.
Also depending on your needs and if Coverity can be used from command line, you can just wrap it into Meta runner, to provide a user friendly interface for Coverity in TeamCity.
Hi Marina,
Thanks for your reply.
Our current CI works by using scripts to build something. Usually these scripts are quite simple, they just call make or msbuild. To use coverity we call "cov-build c:\path\to\build\script.bat". Coverity simply wraps the build script we already use. After the build we analyze the emitted coverity files and detected issues are “blamed” on SCM information. Currently we also automatically generate or update a coverity stream based on the project, build step and target name.
We really like the way TeamCity is able to detect solutions and automatically find a lot of the build runner types required to build. We’d like to use it in a similar way we use it now: create the build steps as a base and then add a wrapper for coverity around it.
Ideally we'd like to have a build with coverity each night and normal builds during the day based on commits.
Hello,
At the current TeamCity version you can easily create a Meta-runner in TeamCity as a command line Build Step that will envoke a Coverity executable with parameter(s). Your build scripts can be steps in commit-triggered Build Configurations, and your Coverty Meta-runner will be used in nightly Build Configuration with your scripts as parameters.