본문 바로가기

CICD(BUILD tool)

Jenkins Rest API with JAVA

728x90
반응형

www.jenkins.io/doc/book/using/remote-access-api/

 

Remote Access API

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

 

jenkins 에서는  Rest API를 제공한다.

설치된  jenkins서버에 /api  를 붙여서 호출하면 document를 확인할 수 있다. 

 

 

github.com/cdancy/jenkins-rest

 

cdancy/jenkins-rest

Java client, built on top of jclouds, for working with Jenkins REST API - cdancy/jenkins-rest

github.com

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가 있다. 

 

728x90
반응형