NAS

[Synology NAS] Jenkins & Gitlab 연동해보기

sieunju 2021. 8. 5. 15:04
반응형

오늘은 젠킨스와 깃랩을 연동하는 방법에 대해 설명하고자 합니다.

사전 작업 및 NAS 모델
DS 720+ (RAM 10GB)
젠킨스 및 깃랩 기본적인 설치 완료
깃랩에 들어가서 Access Token 발급
https://jsieun73.tistory.com/173
 

[Synology NAS] Gitlab API Token 생성 하는 방법 (짧은 글 주의)

Gitlab API Token 생성하는 방법에 설명하겠습니다. 우선, Gitlab 로그인 후 'Edit Profile' 클릭합니다. 사용하는 곳에 따라 알맞게 Scopes를 선택합니다. 이후 생성하시면 Token 이 생성이 되는데 이건 한번..

jsieun73.tistory.com

젠킨스에 들어가셔서 (컨테이너 네트워크를 'host' 방식으로 했다면 포트번호는 8080 입니다.)

Gitlab 플러그인을 설치합니다....

설치후 대시보드로 와서 '새로운 Item' 클릭해서 적절한 이름 입력 후 아래 화면과 같이 'Frestyle project' 형태의 프로젝트를 생성합니다.

프로젝트 생성을 했다면 깃랩 계정과 Gitlab AccessToken 젠킨스에 저장해야 합니다.
> 대쉬보드
> LeftMenu ( Jenkins 관리 )
> Manage Credentials
> "Stores scoped to Jenkins"
> Add credentials 클릭

Add credentials 클릭

Gitlab 계정 저장

각 텍스트 필드 영역중 필요해보이는 영역에 빨간색 글씨로 설명을 했습니다. 참고바랍니다.

Gitlab Access Token 등록

계정 정보를 추가하는데 "GitLab API Token" 메뉴가 없다면 Gitlab 플러그인이 제대로 설치되어 있는지 확인해보시기 바랍니다.

 

이제 다시 프로젝트 설정으로 들어갑니다

대시보드 > 프로젝트 (example-project-name) > LeftMenu 구성

프로젝트 구성에서 필요한 부분만 캡처했습니다. 참고하시면 되겠습니다.

이전에 Gitlab API Token 저장했다면 선택하실수 있습니다.
보통 Branch는 main or master 합니다.
Gitlab webhook 을 설정하기 위해서는 저위에 Gitlab webhook URL를 일단 어디에 저장해야 합니다.
빌드 유발에서 오른쪽 하단에 '고급' 버튼 클릭하면 위 캡처 화면과 같은 메뉴가 나옵니다. 여기서 'Generate' 클릭하면 Gitlab Webhook 에 필요한 Token이 나옵니다. 이것도 어디에 저장합니다.

Gitlab WebHook 설정하는 방법

https://jsieun73.tistory.com/174

 

[Synology NAS] Jenkins & Gitlab webhooks 설정하는 방법

이번 시간에는 Gitlab WebHooks 사용법에 대해 설명해보도록 하겠습니다. 이전 포스팅에서 젠킨스와 깃랩 연동할때 Build Trigger 에서 저장하라고 했던 값들이 있습니다. - Gitlab webhook Url - Jenkins Secre..

jsieun73.tistory.com

 

여기까지가 기본적인 설정입니다.
이후 설명 드릴 내용은 빌드 환경 구성입니다.
빌드 환경
Plugin: NodeJs 16.5
Node.js
Execute shell 서버 실행

저는 NodeJs로 빌드하고 서버를 실행시킬 예정이라 처음에 Execute NodeJS 추가합니다.
Blur 처리 되어 있는 곳에 스크립트를 작성합니다.

# 빌드가 끝나더라도 이 터미널은 죽이지 말아주세요.
BUILD_ID=dontKillMe

# Process 중 node 이고, ${server.js} 서버가 구동중인 Process Job ID 찾기
PROCESS=`ps aux | grep server.js | grep node | awk '{print $2}'`
# Null Check
if [ -z "$PROCESS" ]; then 
    echo "server.js Process is not running."
else
  echo "server.js Process is running."
  # -15 -> 안전하게 종료 (기존에 실행중인 서버 안전하게 종료)
  kill -15 `ps -ef | grep server.js | grep -v grep | awk '{print $2}'`
fi

# Delay 3초
sleep 3

npm install
# pacakage.json 에 있는 scripts 실행
npm run start
# Delay 5초후 종료
sleep 5
exit 0

위 스크립트는 제 환경에 맞게 작성했습니다. 이점 참고 바랍니다.

저와 같은 환경이라면 위 스크립트 참고하셔서 젠킨스에 저장하면 되겠습니다. 

이상 긴글 읽어주셔서 감사합니다.

반응형