250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[Github] git action을 사용한 ci/cd 방법 본문

[Snow-ball]프로그래밍(컴퓨터)/github(깃허브)

[Github] git action을 사용한 ci/cd 방법

Snow-ball 2023. 11. 25. 20:12
반응형

git action을 사용한 ci/cd 를 하기 위해서는 4가지 선제조건이 필요하다.

첫째. aws ec2에 docker 를 설치해놔야 한다.

둘째. git repository 에 프로젝트가 연결되어 있어야 한다.

셋째. ci/cd 프로젝트안에 Dockerfile 들 필요 설정이 되있어야 한다.

넷째. Git > Personal access tokens > Tokens(classic) 은 미리 발행해놔야 한다.

 

위의 4가지가 되있다는 전제조건을 가지고 ci/cd 작업을 시작해보겠다.

 

 

 


 

 

 

첫째. Github의 Repository 에서 Settings > Actions > Runners > New self-hosted runner 를 눌러준다.

 

 

 

 

 

둘째. Runner image가 존재하는데, 알아둬야할 점은 image는 나의 경우에는 AWS Linux를 사용하기 때문에 Linux를 사용했다. 아니면 자기가 선택하거나 사용하고 있는 OS를 사용해야 한다.

 

밑에 사진에 있는 명령어들을 AWS ec2에다가 차례대로 실행하면 된다. (깃에서 한줄 씩 복사 가능)

 

 

1
./config.sh --url https://github.com/url --token A4FP5UQPEP3EIXM6XD6O2SLFL4HLY
cs

- 실행하다가 위 같은 명령어를 실행하게 되면 명령어 뜨면 그냥 엔터를 눌러주다가 

Enter any additional labels (ex. label-1, label-2): [press Enter to skip] 이 뜨게 되는데 이 때 원하는 값을 지정해주면 된다. 나의 경우에는 Label-go 로 지정해준다.

 

 

 

셋째. 마지막으로 명령어들 중 ./run.sh > nohup ./run.sh & 로 입력하는걸 추천한다.

 

nohup ./run.sh & 에 대해 간단하게 설명하자면,

(1) 'nohup'(No Hang UP): 이 명령어는 터미널이 종료되거나 사용자가 로그아웃하더라도 'run.sh' 스크립트가 계속 실행되도록 한다. 즉, 'nohup'은 실행 중인 프로세스가 사용자가 로그아웃한 후에도 "행업"되지 않도록 백그라운드에서 계속 실행될 수 있게 해주는 명령어이다.

(2) './run.sh': 현재 디렉토리('.')에 있는 'run.sh' 라는 이름의 쉘 스크립트를 실행한다. 여기서 './'는 현재 디렉토리를 가리키며, 스크립트 파일이 실행 가능한 상태('chmod +x run.sh'를 통해 실행 권한이 주어진 상태)여야 한다.

(3) '&': 이 기호는 명령어를 백그라운드에서 실행하도록 지시한다. 즉, 'run.sh' 스크립트를 백그라운드로 보내고 쉘 프롬프트를 즉시 다시 사용할 수 있게 해준다.

 

 

정리하면, 'nohup ./run.sh &' 명령어는 'run.sh' 스크립트를 백그라운드에서 실행하며, 사용자가 로그아웃하거나 터미널 세션이 끊어져도 계속해서 실행되도록 하는 것이다. 실행 중인 프로세스의 출력은 기본적으로 'nohup.out' 파일에 기록된다. 만약 다른 파일에 기록하길 원한다면 리다이렉션('>')을 사용하여 지정할 수 있다.

 

 

 

넷째. 레파지토리에서 Settings > Actions > Runners 를 들어가면 사진과 같이 작동중인게 확인 된다면 제대로 진행된 것이다.

 

 

 

다섯째. 레파지토리에서 Settings> Secrets and variables > Actions < New repository secret 을 눌러주고, 

Name, Secret 인풋 창이 존재한다.

Name에는 내가 사용할 이름을 입력하면 되고,

Secret에는 발급한 토큰값을 입력해주면 아래사진처럼 생성된걸 확인할 수 있다.

 

 

 

여섯째. 프로젝트에서 push 를 해주고나서 아래 사진처럼 돌아가기 시작한다면 성공/실패를 떠나서 ci/cd 작업 완료이다. 

나의 경우에는 branch가 dev일 경우에 push를 하면 ci/cd 가 작동하게 설정하였다.

 

반응형
Comments