애플리케이션에 기능을 더할 때마다 또는 유지/보수할 때마다 빌드 및 배포하는 작업들이 불편하게 느껴지지 않았나요? 그렇다면 Github actions를 사용해보세요!
Github Action이란?
이벤트 발생에 따라 자동으로 빌드 및 배포하는 스크립트를 실행시켜줄 수 있습니다. 그 말 즉은 push 또는 pull request 이벤트가 있을때마다 Github actions이 build와 deploy를 하고 s3 배포까지 시켜줄 수 있다는 것이죠!
Github actions 정복하기
Github 공식문서
https://docs.github.com/en/actions
참고블로그
https://ji5485.github.io/post/2021-06-06/build-ci-cd-pipeline-using-github-actions/
https://devblog.croquis.com/ko/2020-11-06-1-using-github-actions/
참고영상
https://www.youtube.com/watch?v=kS3wD-QhYUs
1. yaml 파일 생성
# master-deploy-work.yml
name: master
on:
push:
branches:
- master # master 브랜치에서 push 이벤트가 일어났을 때 실행
pull_request:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@master
# 실행 속도를 빠르게 하기 위해 설치된 Node 모듈을 캐시하도록 설정합니다.
- name: Cache node modules
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Dependencies
run: yarn
- name: Build
run: yarn build
env:
CI: ""
- name: Deploy
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
aws s3 cp \
--recursive \
--region ap-northeast-2 \
build s3://프로젝트 이름
2. S3 액세스 정책 변경
github actions이 s3에 접근할 수 있도록 설정해주어야됩니다.
{
"Version": "2012-10-17",
"Id": "Policy1609228714229",
"Statement": [
{
"Sid": "Stmt1609228699054",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::프로젝트이름/*"
}
]
}
3. Github actions에 Secret Key 저장하기
AWS IAM에서 접근할 수 있는 KEY를 발급받고, Github 리포에서 시크릿키를 생성합니다.
이제 아래와 같이 push, pull request 이벤트 요청이 있을때마다 자동으로 배포가 되는 모습을 볼 수 있습니다!
'📝 꾸준함이 무기 > Information' 카테고리의 다른 글
웹 개발자들을 위한 17개의 추천 웹사이트 (0) | 2021.10.12 |
---|---|
깃(Git) 명령어 (4) | 2021.10.10 |
TypeScript를 써야만 하는 이유 (0) | 2021.09.22 |
SPA 프레임워크 ( React, Vue, Angular ) (0) | 2021.09.21 |
Netlify 배포 시 오류 해결 (0) | 2021.07.22 |