Git을 활용한 자동배포 구현하기
1.수동배포
톰캣에 배포하기위해서는
이클립스에서 war파일 뽑아다가 톰캣에 올리는 방식으로도 배포할 수 있으나
2. 자동배포
git과 batch파일을 이용한다면 더 편리하게 자동으로 배포할 수 있다.
3. 사용법
파일명.bat
: 5초마다 git pull 을 하면서 변동사항이 있을때만 배포하는 방식
변동사항이 없을경우 Already up to date 라는 메시지가 뜨는데
이 문자열을 가지고 체크
rem은 주석
@echo off
rem 프로젝트명 설정
set PROJECT_NAME=ABC
rem 서버폴더명 설정
set SERVER_NAME=ABC
rem 서비스명 설정
set SERVICE_NAME=Tomcat8_DS
rem Git프로젝트 디렉토리로 이동
cd /d C:\Project\%PROJECT_NAME%
rem Git pull 명령 실행 및 실행결과를 변수에 담기
for /f %%A in ('git pull') do set "pull_result=%%A"
rem Git pull 결과 확인
echo %pull_result% | findstr /c:"Already up to date." > nul
rem Git pull 결과 확인
if "%pull_result%"=="Already" (
echo No changes found.
) else (
echo 자동 배포 시작
echo Changes found. Proceeding with Maven build and Tomcat restart.
echo 최신버전 내려받기 시작
rem Maven build 실행
call mvn clean package
echo Maven build completed.
REM 서비스 중지
sc stop %SERVICE_NAME%
REM 5초대기
timeout /t 5 /nobreak > nul
rem 배포실행
cd target
ren %PROJECT_NAME%-1.0.0.war ROOT.war
rem 기존 톰캣폴더에 ROOT 폴더 삭제
rmdir /s /q C:\SERVICE\apache-tomcat\8.5.57-%SERVER_NAME%\webapps\ROOT 2>nul
rem 새로 생성된 ROOT.war파일을 강제 덮어씌우기
move /Y ROOT.war C:\SERVICE\apache-tomcat\8.5.57-%SERVER_NAME%\webapps
rem 톰캣 work폴더 삭제(톰캣찌꺼기)
rmdir /s /q C:\SERVICE\apache-tomcat\8.5.57-%SERVER_NAME%\work
rem 서비스 시작
sc start %SERVICE_NAME%
)
파일명.vbs
: 계속 cmd 창을 띄우는 것은 누가 끌수도 있기때문에, 백그라운드에서 실행하게 해주는 스크립트
근데 cmd 띄워놓으면 자동배포시 일어나는 에러 확인이 가능...
암튼 백그라운드로 실행하고 싶으면 vbs 만들어서 실행시키면 되고
실행 확인은 작업관리자로 확인
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\automation\생성한배치파일.bat" & Chr(34), 0
Set WshShell = Nothing
반응형
'서버&백엔드 > 🖥️ Windows' 카테고리의 다른 글
윈도우 | NTP타임서버 구축하기 (0) | 2024.10.07 |
---|---|
JAVA 버전 바로바로 변환하기 (0) | 2024.09.10 |
톰캣서버를 윈도우 서비스에 등록하는법 (0) | 2024.06.12 |
IIS를 이용한 FTP 서버 구축 (0) | 2024.06.04 |
CMD 명령어 | PID 활용 (0) | 2024.01.17 |