728x90
반응형
상황
- GitLab + Nexacro N으로 CI/CD(빌드/배포) 구성 중 리눅스에서 넥사크로 빌드가 결과적으론 실패로 끝나서 빠르게 포기하고, Windows에서 빌드 하기로 했다.
- GitLab-Runner 설치 윈도우용으로 셋팅했다. (https://yourusername.tistory.com/186)
처리방법
NexacroN Studio 다운로드
- 투비소프트 서포트 홈페이지에서 Product > Nexacro N > Download 메뉴에 들어가서 원하는 버전을 다운로드 받는다.
(All 버튼을 눌러서 다운받는다)
NexacroN Studio 서버에 설치
- 다운받은 파일의 압축을 풀면 다음과 같이 압축파일이 나오는데, 거기서 NexacroN_Studio_x64_날짜.zip 파일의 압축을 풀어준다. (서버가 64비트가 아니라면 x64가 없는 zip파일로 진행한다.)
- 압축풀면 나오는 실행파일 (NexacroN_SetupStudio....) 파일 실행하고, 다음 다음 을 눌러 인스톨을 진행해준다.
- 서버에서 빌드용도로만 사용할꺼니, 딱히 스튜디오를 실행할 필요는 없다, 체크박스를 해제하고 종료해주자.
- 스튜디오를 실행했다면 그냥 우측상단에 x 버튼을 눌러서 꺼주면된다.
- 넥사크로N의 설치경로는 예외없이 아래 경로에 설치된다 (끝에 버전이 바뀔순있다)
(C:\Program Files (x86)\TOBESOFT\Nexacro N\SDK\21.0.0)
powershell Gitlab-Runner 등록
- GitLab-Runner 설치 경로에 가서 파워쉘용 러너를 추가해주자
./gitlab-runner-windows-amd64.exe register
- Enter tags for the runner, tag는 Windows로 주자 (윈도우 powershell 사용할꺼니까)
- executor은 shell로 준다
- 정상적으로 Runner가 생성됐다면 gitlab-runner-windows-amd64.exe 를 실행했던 폴더로 가서 config.toml 파일을 편집기로 열어준다.
- config.toml 파일을 편집기로 열어보면 방금 생성한 Runner가 보이는데, executor을 "shell"로 변경하고 shell을 powershell로 변경해준다.
concurrent = 1
check_interval = 0
shutdown_timeout = 0
[session_server]
session_timeout = 1800
[[runners]]
...
[[runners]]
name = "runner name"
url = "..."
id = 6
token = "..."
token_obtained_at = 2023-01-13T06:38:51Z
token_expires_at = 0001-01-01T00:00:00Z
executor = "shell"
shell = "powershell"
[runners.custom_build_dir]
[runners.cache]
MaxUploadedArchiveSize = 0
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
- executor 와 shell을 변경했으면 gitlab-runner를 restart 해준다.
./gitlab-runner-windows-amd64.exe stop
./gitlab-runner-windows-amd64.exe start
- GitLab에 접속해서 프로젝트 CI/CD설정에 Runner 를 보면 https://yourusername.tistory.com/186에서 셋팅했던 러너 maven과 이번에 셋팅한 러너 window, 이렇게 2개가 active 되어있다.
Nexacro Deploy (build)
GitLab CI/CD Script 작성
- main 브런치에 push가 들어오면 build stage에서 넥사크로 프로젝트가 Deploy되도록 CI/CD Script를 작성한다.
(gitlab-ci.yml 파일을 수정하거나 프로젝트 CI/CD의 Editor 메뉴를 선택해서 수정해도된다.)
variables:
#nexaTool: "/프로젝트/util"
#nexaLib: "${nexaTool}/nexacrolib"
#deployPath: "/프로젝트/deploy"
nexaTool: "C:/'Program Files'/TOBESOFT/'Nexacro N'/Tools/nexacrodeploy.exe"
nexaLib: "C:/'Program Files (x86)'/TOBESOFT/'Nexacro N'/SDK/21.0.0/nexacrolib"
deployPath: "C:/gitlab-runner/프로젝트/deploy"
stages:
- build
build:
stage: build
script:
- echo "build"
- dir
- powershell -Command "$nexaTool
-P '$((Get-Location).tostring())\ui\넥사크로프로젝트명.xprj'
-O '$deployPath/$CI_PIPELINE_ID'
-B $nexaLib -REGENERATE -COMPRESS -SHRINK"
only:
- main
tags:
- window
- main브런치에서 gitlab-ci.yml 파일이 수정한 후 commit 하면 파이프라인에 작성해둔 job들이 실행되는데 실행되는 Job을 선택해서 로그를 보면 정상적으로 빌드가 잘~ 되는걸 확인 할 수 잇다.
확인
- -O '$deployPath/$CI_PIPELINE_ID' 에 설정된 $deployPath 폴더 ("C:/gitlab-runner/프로젝트/deploy")로 가서, 실행된 파이프라인 번호로 생성된 폴더에 들어가보면 빌드된 넥사크로 프로젝트를 확인할 수 있다.
#참고
variables:
#nexaTool: "/프로젝트/util"
#nexaLib: "${nexaTool}/nexacrolib"
#deployPath: "/프로젝트/deploy"
nexaTool: "C:/'Program Files'/TOBESOFT/'Nexacro N'/Tools/nexacrodeploy.exe"
nexaLib: "C:/'Program Files (x86)'/TOBESOFT/'Nexacro N'/SDK/21.0.0/nexacrolib"
deployPath: "C:/gitlab-runner/프로젝트/deploy"
...
728x90
반응형