기본 구조
1. 노드 블록
- 스테이지 블록, 디렉티브, 스텝이 실행될 젠킨스 에이전트를 정의한다.
node('<parameter>') {<constituents>}
2. 스테이지 블록
- 스테이지 블록은 같은 목적을 가진 스텝과 디렉티브의 모음이다.
stage('<parameter>') {<constituents>}
3. 디렉티브
- 디렉티브의 가장 큰 목적은 환경 변수, 옵션, 파라미터, 트리거, 툴을 제공해 노드 블록과 스테이지 블록, 스텝을 지원하는 것이다.
4. 스텝
- 스텝은 서술적 파이프라인을 구성하는 가장 중요한 요소
- 젠킨스에서 무엇을 할지 명령을 내리는 것
node('master') {
// Directive 1
def mvnHome
// Stage block 1
stage('Preparation') {
// Step 1
git 'https://github.com/jglick/simple-maven-project-with-tests.git'
// Directive 2
mvnHome = tool 'M3'
}
// Staage block 2
stage('Build') {
// Step 2
withEnv(["MVN_HOME=$mvnHome"]) {
if (isUnix()) {
sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
} else {
bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
}
}
}
// Stage block 3
stage('Results') {
// Step 3
junit '**/target/surefire-reports/TEST-*.xml'
// Step 4
archiveArtifacts 'target/*.jar'
}
}
- any를 파라미터로 사용하면 모든 스테이지 노드와 스텝, 디렉티브는 임의의 젠킨스 슬레이브 중 하나에서 수행된다.