Jenkins Pipeline – 스크립트를 사용해 jenkins CI환경의 연속적인 이벤트를 등록하고, 시각화로 흐름을 관리하기에 용이하다.
우리는 Jenkins/blueocean 환경으로 설치 했기 때문에 기본적인 Jenkins 파이프라인 기능은 사용 가능하지만, 위처럼 시각화 관리를 위해서는 추가적인 플러그인 설치가 필요하다.
https://updates.jenkins.io/latest/pipeline-stage-view.hpi
https://updates.jenkins.io/latest/pipeline-rest-api.hpi
https://updates.jenkins.io/latest/handlebars.hpi
https://updates.jenkins.io/latest/momentjs.hpi
pipeline-stage-view 라는 플러그인 설치를 위해 의존성이 있는 나머지 3개의 플러그인을 먼저 설치한다.
위 플러그인 설치가 완료됐으면 이제 pipeline 빌드 설정을 시작해보자
node('agent1') { stage('Git Pull') { bat 'echo "Ready"' git 'http://giturl/owner/gitproject.git' // git clone } stage('Maven Build') { bat 'echo "Build Jar"' bat 'dir' dir('demoClient'){ configFileProvider( [configFile(fileId: 'f6ba4223-2d50-443a-a469-95c22284a3ff', variable: 'MAVEN_SETTINGS')]) { bat './mvnw -s %MAVEN_SETTINGS% -DskipTests clean package' // sh './mvnw -s $MAVEN_SETTINGS clean package' } bat 'xcopy /f /y .\\target\\demoClient-0.0.1-SNAPSHOT.jar C:\\agent1\\release\\DevOps.jar*' //sh 'cp target/Hint-Devops-0.0.1-SNAPSHOT.jar D:/release/DevOps.jar' } } stage('Deploy') { bat "echo 'Deply Dev'" bat 'set PID=0\n' + 'FOR /F \"tokens=5 delims= \" %%P IN (\'netstat -ano ^| findstr :9090 ^| findstr LISTENING\') DO SET /A PID=%%P\n' + 'IF /I \"%PID%\" GEQ \"1\" (\n' + ' TaskKill /F /PID %PID%\n' + ')' dir('C:/agent1/release') { bat 'dir' withEnv(['JENKINS_NODE_COOKIE=dontkill']) { //bat 'java -jar DevOps.jar &' bat 'start java -jar DevOps.jar' } } } }
windows 서버와 리눅스/유닉스 서버의 문법이 다르므로 배포 서버를 확인 후 설정하도록 한다.
(ex. bat vs. sh, dir vs. ls)
반응형
'DevOps > Jenkins' 카테고리의 다른 글
[Jenkins] GIT과 연동하여 푸시 후 자동 배포 설정 - Type 1(gitea, webhooks) (0) | 2023.02.16 |
---|---|
[Jenkins] 젠킨스 마스터(Master) - 에이전트(Agent) 노드 설정 (2) | 2021.11.22 |
[Jenkins] 아이디 생성 시 dot(.) 입력 불가 설정 변경 (0) | 2021.10.08 |
[Jenkins] 윈도우즈 서버 Jenkins war 설치 (오프라인) (0) | 2021.09.11 |
[Jenkins] 윈도우즈 서버에 Pipeline 적용 (10) | 2021.07.19 |
댓글