728x90
반응형
SMALL
젠킨스에 파이프라인 스크립트 작성할때 참고 하세요.
[순서]
stage('kill port') -> stage('github clone') -> stage('build') -> stage('Deploy')
1.
kill port 의 steps 을 보면
lsof -t -i :8080 -s TCP:LISTEN 명령어를 이용하여 8080포트로 실행중인 프로세스의 PID 값을 얻어올 수 있습니다.
그 얻어온 PID 값이 있으면, kill -9 명령어를 이용해, 포트를 죽입니다. (혹은 PID 값이 없으면 pid is empty 라는 텍스트만 줍니다.)
2.
github clone 의 steps 을 보면
git 에 등록해놓은 credentialsId와 깃주소를 입력해 연동해놓습니다.
3.
build 의 steps 을 보면
dir() 명령어를 이용해 , 해당 디렉토리로 접근을합니다. (ex. dir('test') = /test)
./gradlew 있는 디렉토리에 접근 후 clean bootJar 를 해줍니다. (Jar로 패키징)
4.
Deploy 의 steps 을 보면
dir('build') -> dir('libs') => /build/libs 디렉토리로 이동합니다.
이동 후 nohup을 이용하여 백그라운드로 해당 jar를 실행 시킵니다.
pipeline {
agent any
stages {
stage('kill port') {
steps{
sh'''
if [ "$(lsof -t -i :8080 -s TCP:LISTEN)" != "" ]; then
kill -9 $(lsof -t -i :8080 -s TCP:LISTEN)
echo "$pid process kill complete"
else
echo "pid is empty"
fi
'''
}
}
stage('github clone') {
steps {
git credentialsId: 'credentialsId', url: '깃주소'
}
}
stage('build'){
steps{
dir(''){
sh'''
echo build start
./gradlew clean bootJar
'''
}
}
}
stage('Deploy') {
steps {
dir('build'){
dir('libs'){
sh'''
echo deploy start
JENKINS_NODE_COOKIE=dontKillMe && nohup java -jar [파일명].jar &
'''
}
}
}
}
}
}
728x90
반응형
LIST
'CI CD 파이프라인' 카테고리의 다른 글
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory (0) | 2023.08.16 |
---|---|
jenkins 빌드 후 + Discord 알림 연동 (3) | 2023.01.05 |
Docker와 Jenkins로 자동빌드 및 Slack 알림 뱃지 발송(5) - mac (1) | 2022.05.22 |
Docker와 Jenkins로 자동빌드 및 Slack 알림 뱃지 발송(4) - mac (2) | 2022.05.22 |
Docker와 Jenkins로 자동빌드 및 Slack 알림 뱃지 발송(3) - mac (0) | 2022.05.22 |