서버
Jenkins 재배포 스크립트 만들기
고태광이
2019. 6. 15. 21:07
jenkins 빌드해서 /target 에 jar 파일이 생성되는 것까지 알아보았다.
하지만 service 까지 알아서 돌려주면 얼마나 좋을까?
이 작업이 되기 위해서는 script를 짜야한다.
#!/bin/sh
#/var/lib/jenkins/workspace/Kuzal/target/*.jar
target=/home/ec2-user/kuzalBE
jenkins=/var/lib/jenkins/workspace/Kuzal/target
filename=kuzalBE.jar
# 파일있으면 삭제
echo "deleting ${filename}"
cd $target
if test -e $filename
then rm -f $filename
fi
echo "delete done"
#jenkins 로 배포된 파일 복사
echo "copying ${filename}"
cp $jenkins/*.jar $target/kuzalBE.jar
chmod 755 $target/kuzalBE.jar
sleep 10
echo "copy done"
#서비스 run되어있는것 삭제
echo "stop service"
sudo kill $(ps aux | grep 'java -jar kuzalBE.jar' | awk '{print $2}')
sleep 20
#서비스 실행
echo "start service"
sudo nohup java -jar $filename 2>> /dev/null >>/dev/null &
echo "started service"
나는 위와 같은 식으로 스크립트를 짜보았다.
jenkins 로 빌드를 하면 /var/lib/jenkins/worksapce/{projectName}/target 에 jar/war 파일이 생기는데
이 파일을 내가 만든 폴더에 이동시키고, 기존에 돌아가는 서비스가 있으면 kill, 그리고 새로운 파일을 run 시키는 스크립트다.
그리고 jenkins 에서 아래와 같이 설정해주면 끝!