Search code examples
c#jenkinscontinuous-integrationcruisecontrol.netbuild-server

How to use a custom labeller in Jenkins?


I'm about to switch from CruiseControl.NET to Jenkins. I want to use the custom labeller from CCNET for Jenkins. How can I do this?

Currently I am using a custom labeller for CCNET like the example: http://predicatet.blogspot.com/2007/10/version-custom-cruisecontrolnet.html

Below is the invoking of my labeller (CCNET) in the ccnet.config file.

<labeller type="svnRevisionLabeller">
    <workingDirectory>C:\temp\project</workingDirectory>
    <executable>C:\Program Files (x86)\CollabNet\Subversion Client\svn.exe</executable>
    <username>user</username>
    <password>password</password>
</labeller>

In Jenkins I use NAnt as build tool. So i can not set such an entry in Jenkins.

In my .cs file I set the result als label. But in Jenkins there is not such a option.

public void Run(IIntegrationResult result)
{
     result.Label = this.Generate(result);
}

How can I use my written labeller in Jenkins?


Solution

  • In Jenkins I added an other build step for windows batch command.

    Example:

    D:\Labeller\Release\JenkinsSvnRevisionLabeller.exe
    --workingDirectory="C:\temp\Project" --user="user" --password="password"  --executable="D:\CollabNet\Subversion Client\svn.exe"
    

    I solved my problem while I programmed my own classes and does not use a .dll but rather an .exe. These classes get the nessecary arguments and build a ThoughtWorks result object.

    Then the old labeller can work with it.