728x90
공식 문서를 보고 공부한 내용입니다 :)
Using a Jenkinsfile
젠킨스 파일은 젠킨스 파이프라인에 대한 정의와 source control이 있는지를 체크한다.
pipeline {
agent any
stages {
stage('Build') {
steps {
echo '🔨 Building...'
}
}
stage('Test') {
steps {
echo '🧪 Testing...'
}
}
stage('Deploy') {
steps {
echo '🧐 Deploying...'
}
}
}
}
모든 파이프라인이 이 세 단계를 포함하는 건 아니지만 대부분의 프로젝트에서 세 단계가 포함되면 좋다.
파일을 만들 때 Groovy syntax가 이상적이라고 한다.
프로젝트의 루트 디렉토리에 젠킨스 파일을 만들어야 된다
Build
code가 assembled, compiled, 혹은 packaged되는 시점. 젠킨스 파일은 GNU/Make, Maven, Gradle 등의 빌드툴로 대체될 수 없다고 한다. 이를 위한 많은 플러그인이 있는데, 예제에서는 sh를 이용한다. sh step은 Unix/Linux-based인 경우에 사용할 수 있고, Window-based라면 bat을 사용하면 된다고 한다.
pipline {
agent any
stages {
stage('Build') {
steps {
// make command를 유발
sh 'make'
// 해당 패턴에 매칭되는 파일을 캡쳐하고 젠킨스 컨트롤러에 저장
archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
}
}
stage('Test') {
steps {
// junit을 이용하기 위해 두 단계가 필요한 것 같다.
sh 'make check || true'
// junit plugin을 통해 junit test를 할 수 있는 것 같다.
junit '**/target/*.xml'
}
}
stage('Deploy') {
when {
expression {
currentBuild.result == null || currentBuild.result == 'SUCCESS'
}
}
steps {
sh 'make publish'
}
}
}
}
이 외에도 엄청 많은 것 같은데 사용한 문법은 계속 추가해 나가야겠다 : )
728x90
'Server > DevOps' 카테고리의 다른 글
[Docker] NGINX 이미지 사용 (+ comodo ssl 인증서 사용) (0) | 2022.08.30 |
---|---|
CI/CD (Github Actions와 Jenkins 비교) (0) | 2022.08.25 |
[AWS] Jenkins CI/CD 구축하기_(2) (0) | 2022.08.25 |
[AWS] Jenkins CI/CD 구축하기_(1) (0) | 2022.08.25 |
[AWS] EC2 Docker 설치 및 컨테이너 실행 (+NGINX) (0) | 2022.08.25 |