목차
젠킨스 파이프 라인이란?
젠킨스 파이프 라인이란 연속적인 작업들을 젠킨스에서 파이프라인(작업)으로 묶어서 관리할 수 있게 만드는 플러그인이다.
CI/CD
CI(Continue Integration) 즉, 지속적인 통합이라는 의미이다. 지속적인 통합이란, 어플리케이션의 소스 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레파지토리에 통합하는 것을 의미한다.
지속적인 통합이란, 어플리케이션의 소스 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레파지토리에 통합하는 것을 의미한다,
CD(Continueous Delivery) 혹은 Continuous Deployment 두 용어 모두의 축약어이다.
전자인, Continuous Delivery는 공유 레파지토리로 자동으로 Release하는 것을 의미하며, 지속적인 서비스 제공을 뜻한다.
후자인, Continuous Deployment는 Production 레벨까지 자동으로 deploy 하는 것을 의미하며, 고객에게 배포하는 것을 뜻한다.
정리하면,
CI는 애플리케이션 소스를 빌드 테스트, 병합하는 것을 의미하고,
CD는 개발자의 변경사항이 레파지토리르 넘어, 고객에게 배포하는 것까지를 의미한다.
Pipeline 정의
- 1) Pipeline script : 위의 사진과 같이 Jenkins내에서 Script를 작성하여 Pipeline을 구성한다. Jenkins내에서 작성을 하기 때문에 간편하다는 이점이 있다.
- 2) Pipeline script from SCM : SCM은 Git이나 SVN과 같이 형상관리툴을 의미하며, 소스쪽에 Jenkins 파일을 생성하여 별도로 Script를 작성하여 구성하는 방식이다. 보안상의 이점이 있기때문에 이 방식을 많이 사용한다.
pipeline source
node {
stage 'Setting'
def javaHome = tool name: 'jdk8', type: 'hudson.model.JDK'
env.JAVA_HOME = "${javaHome}"
env.PATH = "${env.PATH}:${env.JAVA_HOME}/bin"
// github에서 소스 얻어오기
stage 'Checkout'
git branch: 'master', credentialsId: 'Your Credentials ID', url: 'Your GitHub URL'
// Maven으로 빌드 실행하기
stage 'Build'
def mvnHome = tool 'M3'
sh "'${mvnHome}/bin/mvn' -Dmaven.test.skip=true clean install"
// 패키지 저장
step([$class: 'ArtifactArchiver', artifacts: '**/target/*.jar', fingerprint: true])
// 서버실행
//stage 'Start'
//sh "java -jar C:/ProgramData/Jenkins/.jenkins/workspace/test-pipeline/target/hr-0.0.1-SNAPSHOT.jar"
}
Script를 통해 Setting, Checkout, Build, Start라는 단계별 Stage를 정의하였으며, 이 Stage들이 모여 CI/CD를 진행시키는 하나의 pipeline을 구축한 것이다.
파이프 라인 활용
- 같은 Job인데 파라미터 혹은 스케줄만 다르게 하고 싶을 때? 파이프라인!
- 여러 Job을 순서대로 실행하지만 가끔은 개별로도 실행이 필요할 때? 파이프라인!
- 스프링 배치에서 여러 작업을 순차적으로 실행할 때 Step으로 나누기보다는 파이프 라인을 우선 고려!
- 처음엔 그럴 경우가 없다고 생각하더라도 혹시 이후에 요구사항이 바뀔 수 있으니까 고려해보는 것이 좋음.
'Back-end > 젠킨스CICD' 카테고리의 다른 글
[Maven] Artifact / maven-war-plugin / SNAPSHOT (0) | 2021.11.15 |
---|---|
메이븐(Maven) - 개념 (0) | 2021.01.29 |