DevOps/Jenkins
Jenkins 설정 – Pipeline Setting
오이가지아빠
2021. 3. 29. 13:15
반응형
Jenkins Pipeline – 스크립트를 사용해 jenkins CI환경의 연속적인 이벤트를 등록하고, 시각화로 흐름을 관리하기에 용이하다.
![](https://blog.kakaocdn.net/dn/bZLYdQ/btq1dzBs54Z/XNYLiM5nCiMkIKbBy9bvXK/img.png)
우리는 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 빌드 설정을 시작해보자
![](https://blog.kakaocdn.net/dn/JaEXh/btq1ca9L3vx/L5BxH3TdFgwLfAnwkVGPZK/img.png)
![](https://blog.kakaocdn.net/dn/bFPfOX/btq1aQRs4s5/Twxwa23trkAtotPE81kvFK/img.png)
![](https://blog.kakaocdn.net/dn/p3DPv/btq1aRizqHO/G4Xv6vx706dI8sqskFhulK/img.png)
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)
반응형