일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- docker
- MaxGauge
- UiARD
- gitlab-ci
- UiPATH #UiRPA #RPA
- RPA
- gitlab
- Git
- PostgreSQL
- sonar-qube
- UIPATH
- Shell
- Oracle
- container-registry
- runner
- gitlab-runner
- Xen
- Today
- Total
올챙이시절 기록소
빌드서버 동작을 위한 쿼리와 함수 리스트 본문
가장 먼저하는 것은 DB에 빌드 요구조건 명세 세팅 & Pipeline API 호출
0. DB & GitLab CI - API Call
## SQLs
insert into mfo_tag values( baseline 및 컴포넌트 tag 값들 );
insert into requirer values('QA','REPO','total','baseline');
update runner_stat set total_ver='baseline' where run_comp='mfototal_win';
update runner_stat set value='1' where run_comp='mfototal_win';
## VALUE=
## 1 require
## 2 Compile&Build
## 3 Send File to requirer
## 0 Waiting
## GitLab CI - API Call
curl --silent --request POST --header "PRIVATE-TOKEN: Rf3Gmpkc68Z6W5M7vjtS" "http://10.10.32.101/api/v3/projects/49/pipeline?ref=master"
------------------------->
이런 순서로 진행되는데
빌드서버(mfo_build_win)에서 일어나는 동작에 대해 개괄적 & 집중적으로 알아본다
1. git fetch & checkout tags
2. Data Gather
3. PlatformJS
4. PostgresDB
5. InnoSetup
GET_IPADDRESS_GIT_SERVER
MFOBUILD_PART
sh $BUILD_DIR/05_build_mfoset/mfoset.sh;
{
REQUIRER_CHECK
GET_IPADDRESS_GIT_SERVER
FETCH_TOTAL_VER_INFO
TAG_VALUE_VAILD_CHECK
BUILD_AS_REQ_ORDER
{
DG_PART
git fetch from repos * 4
sh $BUILD_DIR/01_build_mfodg/dgbuild.sh;
CLEAN_DG_FILES
GIT_CHECKOUT_SMS_MAIL_API_TCP
EXECUTE_ANT_SCRIPT
VERSION_CHECK
CP_DG_JAR;
JAR_TO_EXE;
INSERT_TAG_VALUE_TO_DGSCTL;
MAKE_TAR;
NP_PART
git fetch from repos * 3
sh $BUILD_DIR/02_build_mfonp/unipjsbuild.sh;
CLEAN_NP_FILES
GIT_CHECKOUT_UNITPL
EXECUTE_ANT_SCRIPT
MV_NP_FILES
INSERT_TAG_VALUE_TO_PJSCTL
EXECUTE_CONFIGURATION
CP_SQL
CP_WEB
JAVASCRIPT_COMPRESS
MAKE_PJS_ZIP_FILE
INNOSETUP_AND_PG_PART
sh $PG_INSTALL_FILE/ready_pg.sh
sh $BUILD_DIR/05_build_mfoset/Innosetup.sh;
REQUIRER_CHECK
ISS_FILE_MAKER
$PG_INSTALL_FILE/detach_pg.bat
RENAME_NP_FOR_DEPLOY
RENAME_DG_FOR_DEPLOY
RENAME_INNOSETUPFILES_FOR_DEPLOY
WRITE_DOWN_TAG_INFO
SEND_DG_PJS_LINUX_BUILD_SRV
}
}
RECOVER_CONFLICT_FILE
CHECKOUT_MASTER_MFOBUILD
* DG = Data Gather
* NP = New PlatformJS ( uni PlatformJS의 전신 )
* PG = PostgreSQL
fetch란 단어는 조회하다라는 뜻으로 사용
REQUIRER_CHECK : 요청자 확인하는 부분
GET_IPADDRESS_GIT_SERVER : Git 서버 IP가 변경되어도 커버할 수 있게 추가된 로직
FETCH_TOTAL_VER_INFO : Tag를 조회하여 가져옮
TAG_VALUE_VAILD_CHECK : Tag중 checkout이 불가한 태그가 있는 지 확인
BUILD_AS_REQ_ORDER : 빌드규약에 맞춰서 case by case로 빌드함
CLEAN_DG_FILES : Data Gather의 배포파일이 만들어질 장소를 청소
GIT_CHECKOUT_SMS_MAIL_API_TCP : 추가 컴포넌트에 대해 소스코드 버전을 맞춤
EXECUTE_ANT_SCRIPT : ANT 스크립트 수행
VERSION_CHECK : 소스코드내 명시된 버전과 jar형태의 파일에서 출력된 버전의 결과 값을 비교확인
CP_DG_JAR : JAR파일을 배포파일을 만드는 곳으로 옮김
JAR_TO_EXE : EXE파일을 하나 만듦
INSERT_TAG_VALUE_TO_DGSCTL : 빌드에 사용된 TAG 버전을 dgsctl ( 컨트롤러 쉘 )에 기록해 둠
MAKE_TAR : 반디집을 이용하여 TAR로 묶어냄
CLEAN_NP_FILES : PlatformJS의 배포파일이 만들어질 장소 청소
GIT_CHECKOUT_UNITPL : UniPlatformJS의 템플릿의 버전을 맞춤 ( DG와 달리 PJS는 개발자가 형상관리하기로 함 )
EXECUTE_ANT_SCRIPT : JAR파일 생성
MV_NP_FILES : JAR 파일과 템플릿 파일을 배포파일 만들어질 장소로 가져옴
INSERT_TAG_VALUE_TO_PJSCTL : PJSCTL ( 컨트롤러 쉘 )에 빌드에 사용한 태그버전 입력
EXECUTE_CONFIGURATION : Configuration 쉘을 수행을 통해 생성되는 파일들이 필요하여 여기서 한 번 수행
CP_SQL : SQL 파일들 복사
CP_WEB : JS, HTML, CSS 파일들 복사
JAVASCRIPT_COMPRESS : 자바스크립트 압축 및 난독화
MAKE_PJS_ZIP_FILE : ZIP 파일로 묶어냄
sh $PG_INSTALL_FILE/ready_pg.sh : pg DB 엔진 설치 및 DB , 유저 생성 후 DB Down
REQUIRER_CHECK : 요청자확인
ISS_FILE_MAKER : Innosetup 명세서 작성 및 윈도우 자동 인스톨러 생성
$PG_INSTALL_FILE/detach_pg.bat : PG DB Uninstall
RENAME_NP_FOR_DEPLOY : PJS 배포파일 리네임
RENAME_DG_FOR_DEPLOY : DG 배포파일 리네임
RENAME_INNOSETUPFILES_FOR_DEPLOY : 윈도우 인스톨러 리네임
WRITE_DOWN_TAG_INFO : 태그정보 텍스트파일로 남김
SEND_DG_PJS_LINUX_BUILD_SRV : 리눅스패키징을 위해 DG& PJS 파일을 해당서버에 보냄
리눅스 패키징은 윈도우 패키징이 다 끝나야만 수행하도록 설계해놨으며 다음과 같은 순서로 진행된다
## PROCESS ORDER
PRE_SET
CLEAN
MV_LINUX_PACK_OTHER
MV_DG_PACK
MV_PJS
PG_DB_BOOT
DG_INSTALL
PG_DB_DOWN
LINUX_PACKAGING
PRE_SET : 받은 파일들 확인
CLEAN : 패키징 파일 만들어 질 곳 청소
MV_LINUX_PACK_OTHER : DB와 자동 설치 스크립트, 컨트롤 스크립트 등을 옮김
MV_DG_PACK : DG부터 언팩
MV_PJS : PJS 언팩
PG_DB_BOOT : PG Boot
DG_INSTALL : 기본 테이블 셋 만듦
PG_DB_DOWN : PG Down
LINUX_PACKAGING : 관련 디렉토리 전체를 패키징함
여기까지
실무자들은 모르는 내용이 혹 생기거든 연락하시라
'2017 > 1월' 카테고리의 다른 글
Gitlab-CI API 사용하기 & Access Token 만들기 (0) | 2017.10.24 |
---|---|
Postgresql 9.6 on Windows 커맨드라인으로 설치하기 ( gitlab-ci 빌드 동작 중 한 파트 ) (0) | 2017.10.23 |
Docker 설치하기 on CentOS 7.3 (0) | 2017.10.11 |
쉘 스크립트를 사용하면 안될 경우 (0) | 2017.10.10 |
패키징파일 자동 설치 & 삭제하기 ( Innosetup cmd 설치&삭제) (0) | 2017.10.10 |