젠킨스 빌드시 원격 SVN에 접근 하여 Json 파일을 읽은 다음 젠킨스 화면에 출력하는 방법

2020. 12. 16. 20:08카테고리 없음

728x90

[준비]

Jenkins plugin - Active Choices

plugins.jenkins.io/uno-choice

 

Active Choices

This plug-in provides additional parameter types for jobs, that allow you to cascade changes and render images or other HTML elements instead of the traditional parameter.

plugins.jenkins.io

SVN

 

[시작]

⁘ 젠킨스 빌드 시 SVN이 설치된 머신에 접근해서 Json파일을 Read 해서 값 확인을 하고 싶은 경우가 있어요

워크플로우 화면

⁘ 젠킨스 소스코드 관리에서 Active Choices Parameter를 생성하고 Groovy Script 선택

import groovy.json.JsonSlurper

def USERNAME = "SVNID"
def PASSWORD = "SVNPW"

try {
String concatRepositoryURL= "http://설치된SVN경로/trunk"
String SVNConfigURL = concatRepositoryURL.concat("/읽어들일 폴더 경로/폴더명.json") 
    def artifactsObjectRaw = ["curl", "-s", "-H", "accept: application/json", "--url", "${SVNConfigURL}", "-u", "${USERNAME}:${PASSWORD}"].execute().text
    def jsonSlurper = new JsonSlurper()
    def artifactsJsonObject = jsonSlurper.parseText(artifactsObjectRaw) 
    return [artifactsJsonObject.제이슨루트명.제이슨서브Key값]
} catch (Exception e) {
    print "error"
}

위 명령어를 입력 후 실행하면 해당 Json 파일의 Key에 대한 Value를 가져올 수 있어요

위 코드 분석을 해볼까요?

 USERNAME, PASSWORD 부분에 사용 중인 svn id, pw 들 입력해요

⁘ concatRepositoryURL은 SVN 경로를 입력해 주고요

⁘ SVNConfigURL은 SVN 세부 경로명에 파일명까지의 주소를 입력해 주고요

def artifactsObjectRaw = ["curl", "-s", "-H", "accept: application/json", "--url", "${SVNConfigURL}", "-u", "${USERNAME}:${PASSWORD}"].execute().text

⁘ 핵심 코드인데요 curl을 이용해서 원하는 json 파일을 가져오는 부분이에요

 

 마지막 return 안에 읽어 들인 json 파일의 원하는 key 값을 입력해서 값을 출력해요🤗