728x90
일반 파이프라인
STAGE | 1. Maven 빌드 2. War파일(Artifact) WAS 전송 |
3. Java 컨테이너 Restart |
Nexacro 추가된 파이프라인
STAGE | 1. Nexacro 빌드 | 2. Maven 빌드 3. War파일(Artifact) WAS전송 |
4. Nexacro 소스파일 WAS 전송 | 5. Nexacro 소스파일 Unzip | 6. JAVA 컨테이너 Restart |
1. Nexacro Generator를 통한 UI소스 Build 및 Nexacro Deploy Server에 업로드*
- Gitlab → Nexacro Deploy Server
※ Nexacro Build 스크립트 예시
echo "NEXABUILD START!!!"
set PROJECT_NM=armyost_project
set GIT_REPO_NM=armyost_repo
set ROOT_DIR_UI=D:\NEXAJOB\nexa_ui\%PROJECT_NM%\
set ROOT_DIR_GIT_REPO=D:\NEXAJOB\gitrepo\%GIT_REPO_NM%\%PROJECT_NM%\
set ROOT_DIR_GIT_SEND=D:\NEXAJOB\git_send\%PROJECT_NM%\
set WEB_SRV_DIR=D:\nexazip\%PROJECT_NM%\
set XPRJ_NM=armyost.xprj
chcp 437
:: DELETE PRE-PROJECT
RD /S /Q "%ROOT_DIR_UI%ui"
RD /S /Q "%ROOT_DIR_UI%gen\"
RD /S /Q "%ROOT_DIR_UI%deploy\"
mkdir "%ROOT_DIR_UI%ui"
mkdir "%ROOT_DIR_UI%gen\"
mkdir "%ROOT_DIR_UI%deploy\"
:: GIT BRANCH SETTING START
IF "%1" == "" (
set BRANCHNAME="master"
) ELSE (
set BRANCHNAME=%1
)
echo BRANCHNAME : [%BRANCHNAME%]
:: git BRANCH SETTING END
:: GIT PULL
cd /D D:\NEXAJOB\gitrepo\%GIT_REPO_NM%
"C:\Program Files\Git\bin\git.exe" checkout %BRANCHNAME%
"C:\Program Files\Git\bin\git.exe" pull http://ID:PASSWORD@armyost.github.com/%GIT_REPO_NM%.git %BRANCHNAME%
:: COPY
xcopy /EY "%ROOT_DIR_GIT_REPO%src\main\ui\*" "%ROOT_DIR_UI%ui\"
:: COMPILE SOURCE
"C:\Program Files (x86)\nexacro\17.1\nexacrodeploy17.exe" -COMPRESS -MERGE -P "%ROOT_DIR_UI%ui\%XPRJ_NM%" -O "%ROOT_DIR_UI%gen" -D "%ROOT_DIR_UI%deploy" -B "%ROOT_DIR_UI%ui\nexacro17lib" -BROWSER "Nexacro Browser,Chrome,Firefox,Internet Explorer 11,Internet Explorer 10"
:: COMPRESS ARTIFACT
del "%ROOT_DIR_UI%%PROJECT_NM%.zip"
"C:\Program Files\ZIPPROGRAM.exe" a "%ROOT_DIR_UI%%PROJECT_NM%.zip" "%ROOT_DIR_UI%deploy\*"
:: COPY ZIP FILE TO DOWNLOAD PATH
copy "%ROOT_DIR_UI%%PROJECT_NM%.zip" "%WEB_SRV_DIR%"
2. JAVA 소스 Maven 빌드
- Gitlab → Jenkins
3. 빌드 Artifact(.war파일)를 각 WAS로 송신
- Jenkins → 각 WAS 서버
4. Nexacro 소스를 각 WAS로 송신
- Nexacro Deploy Server → Jenkins → 각 WAS 서버
5. 각 WAS서버에서 UI소스 압축해제
6. 각 JAVA 컨테이너 Restart
'PaaS > CI CD' 카테고리의 다른 글
(Kubernetes, Jenkins) Docker이미지를 kubernetes 밖에서 빌드할 것인가 kubernetes Jenkins Agent에서 빌드할 것인가 (0) | 2022.02.21 |
---|---|
(Gitlab) Gitlab 도메인 설정 (0) | 2022.02.15 |
CI/CD 배포 전략 설계시 고려사항 (0) | 2022.01.17 |
CI와 CD는 무엇일까? (0) | 2021.12.21 |
(Jira-Jenkins) Jira를 통한 Jenkins 자동빌드 유발 (0) | 2021.11.11 |