Jenkins pipeline을 사용해서 여러 단계의 테스트 및 빌드, 배포, 반복 작업 등을 할 수 있음
용어
pipeline
- 애플리케이션의 빌드, 테스트 및 배포 단계를 포함하는 전체 빌드 프로세스 정의
- 선언형 파이프라인 구문의 핵심 부분이며, 시작 지점에 선언해야 함
pipeline { }
node
- 스크립트형 파이프라인 구문의 핵심 부분이며, 시작 지점에 선언해야 함
- 스크립트형 파이프라인 구문이므로, 생략.
node { }
stage
- 전체 파이프라인 단계를 통해 수행되는 작업의 하위 집합
- 전체 파이프라인의 흐름에서 특정한 시점에 실행이 필요한 것들을 묶을 수 있음
- 선언형과 스크립트형 파이프라인에 모두 사용
step
- 단일 작업
- 특정 시점에서 수행할 작업을 알려줌
- 선언형과 스크립트형 파이프라인에 모두 사용
예시
pipeline {
agent any
options {
skipStagesAfterUnstable()
}
stages {
stage('Build') { // 하나의 stage 안에 각 step에서 수행할 작업을 알려줌
steps {
echo 'Building...'
// build 수행하는 명령어
}
}
stage('Test') {
steps {
echo 'Testing...'
// test 수행하는 명령어
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
// deploy 수행하는 명령어
}
}
}
}
agent
- 파이프라인에 대한 수행 및 작업 공간 할당
- agent 키워드 반드시 사용해야 함
- any : 사용가능한 어떤 agent를 써도 좋음
- none : agent를 할당하지 않음. pipeline 블록에 사용할 경우, 각 단계마다 agent 명시해주어야 함
- label : 제공된 label을 이용해 파이프라인 실행
agent {
label 'my-defined-label'
}
- docker : Docker Registry 사용 및 Dockerfile 사용 가능
- kubernetes : k8s 클러스터에 배포된 파드 내부에서 pipeline 실행
참고
'기타' 카테고리의 다른 글
Unit test - Test Double과 Mockito (0) | 2023.03.01 |
---|---|
HTTP 상태 코드 (0) | 2022.12.29 |
Jira로 협업하기 - 용어 정리 (0) | 2022.12.08 |
정규표현식(Regex)에 대해 알아보자 - 문자클래스 (0) | 2022.10.12 |