코딩은 내일부터

우아한테크코스 생존기 (7)(CI/CD) 본문

우아한 테크 코스(우테코)/우테코 공부

우아한테크코스 생존기 (7)(CI/CD)

zl존 비버 2023. 6. 5. 16:29
728x90

Self Hosted Runner를 활용해 CD를 하는 방법을 알려드리겠습니다.

 

먼저 지금 사용하고있는 ec2서버는 램 크기가 작기 때문에 Swap Memory를 사용해

하드디스크의 원하는 일정 용량을 램으로 바꿔줘서 사용해야합니다.


이때 너무 많은 메모리를 Swap Memory로 할당하게 되면 하드디스크가 부족하여

(ex.db에 데이터저장, 로그파일 저장 ... 등등)

서버가 다운될 수 있고,


너무 작은 메모리를 할당하게 되면 github action을 실행할때 부족한 램메모리 때문에 서버가 죽게됩니다.

 

 

다시 본론으로 넘어가면
먼저 스왑 메모리를 할당하는것은 하드디스크를 이용하기에 하드디스크의 용량을 확인 해봐야합니다.

df -h  

하드디스크 용량을 확인했다면,

그중 얼마정도의 swap 메모리로 설정할지 정하고 아래와 같은 명령어를 입력합니다.

 

 

1G의 의미는 1G만큼을 swapfile로 생성하게 되어집니다.
따라서 {N}G와 같이, N에 본인이 생성할 스왑메모리를 할당합니다.

sudo fallocate -l 1G /swapfile  

이후 만들어진 swapfile에 대한 권한을 수정합니다.

chmod 600 /swapfile  

생성된 swapfile을 이용하여 swap memory를 활성화 시킵니다.

sudo mkswap /swapfile  
sudo swapon /swapfile  

이렇게하면 자신의 램 메모리가 원래G+1G 크기로 할당됐을 겁니다.

 

 

그리고 다음으로 자신의 레포에 settings를 들어가 줍니다.

위 사진과 같이 1>2>3번 순서대로 클릭하면 아래와 같은 화면이 나오게됩니다.

위사진에서 Runner image는 지금 사용하고 있는

ec2서버와 맞는 linux를 선택하고 밑에 나오는 명령어를 서버에서 실행시키면

github actions 작업은 끝나게됩니다.

마지막으로 작업하는 프로젝트 파일 최상단에 .github/workflows파일을 만들어주고

밑에 와 같이 yml파일을 넣어주면 자동배포가 끝나게됩니다!

name: deploy

on:
  workflow_dispatch:
    branch:
      [ step1 ]
  push:
jobs:
  deploy:
    runs-on: self-hosted
    steps:
      - name: change permission
        run: |
          sudo chown -R ubuntu:ubuntu /home/ubuntu/actions-runner/_work/jwp-shopping-order
      - uses: actions/checkout@v3
      - name: gradle bootjar
        run: |
          chmod +x ./gradlew
          ./gradlew bootjar
      - name: kill 8080 port if exist
        run: |
          if sudo lsof -i :8080; then
            echo "Port 8080 is already in use. Killing the process..."
            sudo lsof -i :8080 | awk 'NR!=1 {print $2}' | sudo xargs kill -9
          fi
      - name: deploy
        run: |
          sudo nohup java -jar build/libs/jwp-shopping-order.jar --spring.config.location=file:/home/ubuntu/application.properties &

 

 

 

 

 

이제 커밋을 할 때 마다 서버에있는 배포스크립트를 실행시킬 필요없이 자동적으로 배포이루어지게 됩니다!

로또1등되게해주세요