젠킨스의 파이프라인을 사용하기 위해선 필수적으로 알아야 하는 스크립트로서 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 : '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

+ Recent posts