Github Actions를 활용한 프로젝트 무중단 배포

2024.10.23 (WED)


Devzip 프로젝트를 진행하면서, 매번 console에 접속하여 git pull 및 빌드, 재시작하는 것이 굉장히 비효율적으로 느껴졌다.

그 때, 현재 Github.io 블로그에서 깃헙 커밋 변화에 따른 자동 빌드 시스템이 생각나서 이를 활용해보기로 하였다.

Github Actions

Github Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼이다.

GitHub Actions를 사용하면 자동으로 코드 저장소에서 어떤 이벤트(event)가 발생했을 때 특정 작업이 일어나게 하거나 주기적으로 어떤 작업들을 반복해서 실행시킬 수 있다.

.github/workflows 내부의 나의 설정 파일은 아래와 같다.

name: dev branch auto ci process script

on: # 아래 job을 실행시킬 상황

push:

branches: [ master ]

jobs:

deploy:

name: deploy

runs-on: ubuntu-latest # 실행될 인스턴스 OS와 버전

  

steps:

- name: excuting remote ssh commands

uses: appleboy/ssh-action@v0.1.6 # ssh 접속하는 오픈소스

with:

host: $ # 인스턴스 IP

username: $ # 우분투 아이디

key: $ # ec2 instance pem key

port: $ # 접속포트

script: | # 실행할 스크립트

# ~~~

5번째 줄: push이벤트가 발생할 때, 실행 시킨다.

이외의 코드는 AWS EC2에 접속하고 명령을 실행하는 코드로 이루어져 있다.

  • push 시, 자동 실행된 모습