/
Demo.java
84 lines (73 loc) · 2.85 KB
/
Demo.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package io.github.kev1nst.jenkins;
import io.github.kev1nst.jenkins.common.Log4j2Adapter;
import io.github.kev1nst.jenkins.job.handler.JobProgressHandler;
import io.github.kev1nst.jenkins.job.po.JobSubmission;
import io.github.kev1nst.jenkins.job.po.QueueItem;
import org.junit.Test;
import io.github.kev1nst.jenkins.job.po.BuildStatus;
import org.nutz.lang.Lang;
import org.nutz.log.Logs;
/**
* @author kevinzhao
* @since 20/07/2019
*/
public class Demo {
static {
System.setProperty("log4j.configurationFile", "log4j2.xml");
Logs.setAdapter(new Log4j2Adapter());
}
private static final String CREDENTIAL = "9aebe96f61819ce2c20c01a820719f70"; // could be password or api token, this one is just a dummy cfredential, don't panic...
private static final String ACCOUNT = "admin";
private static final String JENKINS_URL = "http://localhost:8081";
@Test
public void simpleBuild() {
Jenkins jenkins = Jenkins.connect(JENKINS_URL, ACCOUNT, CREDENTIAL);
BuildStatus result = jenkins.build("pack1/job1").await(); // await method is synchronized call
assert result.isSuccess();
}
@Test
public void buildWithParameter() {
Jenkins jenkins = Jenkins.connect(JENKINS_URL, ACCOUNT, CREDENTIAL);
BuildStatus result = jenkins.build("pack1/job2", Lang.map("param1", "param_value")).await();
assert result.isSuccess();
}
@Test
public void buildWithTimeout() {
Jenkins jenkins = Jenkins.connect(JENKINS_URL, ACCOUNT, CREDENTIAL);
BuildStatus result = jenkins.build("pack1/job2", Lang.map("param1", "param_value")).await(100000); // timeout in ms
assert result.isSuccess();
}
@Test
public void buildWithProgressHandler() {
Jenkins jenkins = Jenkins.connect(JENKINS_URL, ACCOUNT, CREDENTIAL);
BuildStatus result = jenkins.build("pack1/job2", Lang.map("param1", "param_value")).await(new JobProgressHandler() {
@Override
public void log(String logEntry, int index) {
// handle log line by line
System.out.println(index + ":" + logEntry);
}
@Override
public void onSubmit(JobSubmission jobSubmission) {
/**
* trigger after job submitted to jenkins
* @param jobSubmission the job queue url in jenkins
* */
}
@Override
public void onExecute(QueueItem item) {
/**
* trigger after job start to execute
* @param item
*/
}
@Override
public void onCompleted(BuildStatus status) {
/**
* trigger after job complete
* @param status
*/
}
});
assert result.isSuccess();
}
}