Github Action 을 적용하기 위해서는 우선 Github 에 Action을 적용할 저장소가 필요하다.
우선 Github Action을 적용하기 위한 프로세스를 간략하게 나열하겠다.
위의 프로세스로 작업을 해 보겠다.
필자는 이미 올렸다.
우선 프로젝트 폴더 Root 위치에 .github/workflows 폴더를 만들었다.
그 후, 필자는 blank.yml 이라는 파일을 생성했다.
name: CI/CD
on:
push:
branches: [ master ]
jobs:
build:
runs-on: self-hosted
steps:
- name: Pull Master Branch
run: |
cd /var/www/roadmap/ && sudo git pull origin master
- name: Deploy with React Build
run: |
sudo sh /var/www/roadmap/deploy.sh
필자는 master 브랜치에 push 를 할 경우 action 을 잡았다.
jobs 에 runs-on 은 따로 Linux 서버를 이용하기 때문에 self-hosted 로 적용했다.
그리고 steps 에는 sudo sh /var/www/roadmap/deploy.sh 했는데, 해당 코드는 React 프로젝트를 빌드하고 Django 가 Build 된 정보를 추적할 수 있도록 설정하고, collectstatic 하고, nginx 및 uwsgi 를 재부팅 하는 코드를 작성했다.
그래서 Action 으로 는 이 .sh 파일을 실행하도록 명령한 것이다.
필자는 이미 git clone 으로 해당 프로젝트를 다운로드 받았다.
필자는 Linux 인데 sudo su - 로 접속 후 ./config.sh --url ... 를 작성하면 sudo 로는 못한다는 에러가 난다... 이때 앞에 RUNNER_ALLOW_RUNASROOT="1" ./config.sh --url... 같이 하면 된다.
해당 작업을 전부 하고, service 로 올리기 위해 sudo ./svc.sh install 작업을 한다.
그 후, 서비스를 실행한다. sudo ./svc.sh start
서비스를 종료하고 싶으면 sudo ./svc.sh uninstall 한다.
이제 모든 작업이 완료 되었다!!!
프로젝트를 수정해서 master 에 push 하면 이제 자동으로 배포 작업을 할 것이다!!
아주 편리해졌다!!
아래 사진은 Action 을 수행한 모습이다.