본문으로 건너뛰기

Jenkinsfile

1 Jenkinsfile

  • Jenkinsfile은 파이프라인을 만드는데 사용되는 텍스트 파일로 source-control management(git)에 의해 관리한다
    • 즉 Jenkinsfile을 통해 전체의 빌드 프로세스를 정의할 수 있다
    • 보통 이 프로세스에는 앱을 빌드하고 테스트하고 전달하는 단계가 포함된다
  • Jenkinsfile은 두가지 방식으로 작성될 수 있다
    • Declarative 방식
    • Scripted 방식
  • Declarative 방식이 비교적 최근에 도입되었고 Scripted 방식보다 풍부한 기능을 제공하며 가독성을 고려해 만들어졌다

2 Jenkinsfile 다루기

2.1 환경변수 사용하기

  • 젠킨스 파이프라인은 전역적인 환경변수를 제공한다.
  • 이 환경변수는 Jenkinsfile 어디에서나 접근이 가능하다
  • BUILD_ID, BUILD_NUMBER, JOB_NAME 등을 제공한다

예시

  • 아래와 같이 env.환경변수이름 으로 Jenkinsfile 어디에서나 사용이 가능하다
pipeline {
agent any
stages {
stage('Example') {
steps {
echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"
}
}
}
}

2.2 환경변수 설정하기

  • environment directive를 사용해 환경변수를 설정할 수 있다
  • pipeline 블록 안에 정의된 environment는 전역적으로 사용이 가능하다
  • 반변 stage 안에 정의된 environment는 해당 stage 안에서만 사용이 가능하다

예시

pipeline {
agent any
environment {
CC = 'clang'
}
stages {
stage('Example') {
environment {
DEBUG_FLAGS = '-g'
}
steps {
sh 'printenv'
}
}
}
}

참고