-
Notifications
You must be signed in to change notification settings - Fork 37
Using JenkinsJobRunner
Joshua Miller edited this page Jul 27, 2017
·
2 revisions
This class has been added to simplify the automation of running a Jenkins Job.
private JenkinsBuild RunJenkinsJob(JenkinsClient client, string jobName, IDictionary<string, string> jobParameters = null)
{
var runner = new JenkinsJobRunner(client);
runner.StatusChanged += () => {
switch (runner.Status) {
case JenkinsJobStatus.Queued:
Console.WriteLine("Job is Queued.");
break;
case JenkinsJobStatus.Building:
Console.WriteLine("Job is Running.");
break;
case JenkinsJobStatus.Complete:
Console.WriteLine("Job is Complete.");
break;
}
};
Console.WriteLine($"Starting Job '{jobName}'...");
var buildResult = (jobParameters?.Any() ?? false)
? runner.RunWithParameters(jobName, jobParameters)
: runner.Run(jobName);
if (!string.Equals(buildResult?.Result, "SUCCESS"))
throw new ApplicationException($"Build #{buildResult?.Number} Failed!");
Console.WriteLine($"Build #{buildResult?.Number} completed successfully.");
Console.WriteLine($"Report: {buildResult?.Url}");
return buildResult;
}
Getting Started
- Creating the Client
Examples
- Starting a Job
- Retrieving Artifacts
- Reading Console Output
Utilities
- JenkinsJobRunner
- JenkinsProgressiveTextReader