젠킨스의 파이프라인을 사용하기 위해선 필수적으로 알아야 하는 스크립트로서 Pipeline Syntax 의 영어압박을 느끼시는 분들을 위한 간단한 사용법을 공유해본다
먼저 pipeline 을 선언하고 안에서 agent 를 설정하는데 범용적으로 사용하려면 any가 가장 낫다. (여러가지 설정가능하지만 ...)
pipeline {
agent any
stages {
steps {
...
}
}
}
저 안에서 stages 와 step 을 선언하는게 가장 기본형태이다.
- Parameter 전달받기
- 웹 스크립트이다 보니 js와 유사한 부분이 많은데, 여기서도 파라미터는 ${params.너의파라미터이름} 으로 값을 얻어올 수 있음
- const 선언
- 만약 위에서 agent 를 any로 선언하면 상관 없지만 그렇지 않다면 script 블럭 내부가 아니라면 def 사용 불가능
- 아래처럼 environment로 선언 후 이름 선언 = 초기화 형태로 정의하고, 아래에서는 ${}로 사용하면 해당 값을 사용할 수 있다.
environment {
너의파라미터이름 = 0
너의파라미터이름 = 'string'
너의파라미터이름 = false
}
- Steps 안에서 할 수 있는 것
- build job
- 가장 중요한 명령어로서 job을 실행한다.
- 아래처럼 잡 이름을 적고 파라미터를 전달해야 한다면 [ ] 블럭 안에다가 갯수만큼 전달한다. (콤마로 구분)
- js에 대한 개념이 있으신 분은 알겟지만 문자열에 변수를 담고 싶다면 큰따옴표를 써서 "random string : ${name}" 형태로 써야 한다. 변수가 포함되어 있지 않은 문자열이면, 작은 따옴표만 써도 됨
- build job
build job : 'job name', parameters: [
string(name: 'name', value: 'value'),
string(name: 'name', value: 'value')
]
- script 블럭
- 개발자들의 친구인 조건문, 변수 선언을 할수 있는 블럭. script 블럭 외부에서는 조건문을 쓸 수 없다.
script {
def variable = ''
if (a == b)
{
variable = 'a'
}
else
{
variable = 'b'
}
}
- 함수 선언
- 일반적인 형태와 같다
- 유의할 점은 매개변수 전달시 스트링은 대문자로 시작한다.
String MethodName(String ddd)
{
...
return ''
}
- 심화 과정
- 굳이 job을 만들지 않아도 build step에 포함되는 플러그인을 직접 호출할 수 있다
- 호출하고자 하는 클래스 이름은 어디에서 알 수 있냐면, 플러그인 github의 README.md 에서 확인할 수 있고, 플러그인은 메이븐으로 만들므로 github의 소스코드를 열여보면 어떤 변수명이 허락되는지, 호출가능한 클래스이름은 무엇인지 확인가능하다.
step([$class: '호출하고자 하는 클래스 이름',
해당 클래스의 매개변수 이름: 전달할 값, (매개변수가 여러개면 갯수만큼 추가)
])
'Jenkins' 카테고리의 다른 글
Jenkins Unity Build (0) | 2020.08.21 |
---|