www.jenkins.io/doc/book/using/remote-access-api/
jenkins 에서는 Rest API를 제공한다.
설치된 jenkins서버에 /api 를 붙여서 호출하면 document를 확인할 수 있다.
github.com/cdancy/jenkins-rest
java 에서는 라이브러리를 이용하면 jenkins rest api를 쉽게 호출할 수 있다.
compile "com.cdancy:jenkins-rest:0.0.19:all"
API 라이브러리를 추가한 후 사용하는 방법은 아래와 같다.
JenkinsClient client = JenkinsClient.builder()
.endPoint("http://127.0.0.1:8080") // Optional. Defaults to http://127.0.0.1:8080
.credentials("admin:password") // Optional.
.build();
SystemInfo systemInfo = client.api().systemApi().systemInfo();
assertTrue(systemInfo.jenkinsVersion().equals("1.642.4"));
사이트 readme에 있는 부분이다.
jenkins url과 credentials를 이용해서 JenkinsClient를 생성할 수 있다.
참고로 Credentials에 있는 userid와 비밀번호 부분에 API Token으로 대체할 수 있다.
* Token 생성하는 방법
Jenkins > 사람 > 설정 > API Token (Current token) > Add new Token 을 누르면 토큰이 생성된다.
특이사항은 생성하고 토큰을 저장해두지 않으면 다음에 그 토큰을 확인할 수 없다.
ㅎ..
잘 저장해두자.
* Jenkins Rest API를 이용해서 Build 하는 방법
JenkinsClient client = JenkinsClient.builder().endPoint("jenkinsUrl").credentials("id:API Token").build();
IntegerResponse response = client.api().jobsApi().build(null, "JOB NAME");
build 하는 방법은 의외로 간단하다.
client를 생성해준 다음 jobsApi를 통해 build를 실행해주면 된다.
첫 번째 파라미터는 folder path, 두 번째 파라미터는 JOB name을 써주면 된다.
null로 해도 잘됨.
*Jenkins Rest API 에 build parameter 추가하는 방법
JenkinsClient client = JenkinsClient.builder().endPoint("jenkinsUrl").credentials("id:API TOKEN").build();
Map<String, List<String>> properties = new HashMap<>();
properties.put("VERSION", new ArrayList<String>(Arrays.asList("1.0")));
properties.put("DEPLOY", new ArrayList<String>(Arrays.asList("TRUE")));
IntegerResponse response = client.api().jobsApi().buildWithParameters(null, "JOB NAME", properties);
IntegerResponse를 통해 build 명령이 성공했는지 확인할 수 있다.
build 결과가 오는건 아님 X
build 요청을 날렸는지 build 요청이 실패했는지 확인 가능하다.
이 밖에도 다양한 API가 있다.
'CICD(BUILD tool)' 카테고리의 다른 글
docker-swarm 이용해서 jenkins / jenkins slave 설치 (0) | 2022.07.29 |
---|---|
gitlab-runner docker 내부 git연결 시 설정 (0) | 2021.07.26 |
docker gitlab ssl(https) 적용 (0) | 2021.07.20 |
docker gitlab 설치 & gitlab-runner 연동 (0) | 2021.07.16 |
windows gradle 설치 (0) | 2021.05.04 |