๐ GitHub Actions๋ก ๋ฐฐํฌ ์๋ํ
ํ๋ก์ ํธ์ CICD.yml ํ์ผ ์์ฑ
๋ฃจํธ ๋๋ ํ ๋ฆฌ์ .github/workflows ํด๋๋ฅผ ์์ฑํ๋ค.
ํด๋น ๊ฒฝ๋ก์ CICD.yml ํ์ผ์ ์์ฑํ๊ณ ์๊ฒฉ์ ์ ๋ก๋ํ๋ค.
name: CI/CD
on:
push:
branches:
- main
workflow_dispatch:
jobs:
cicd:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- run: npm ci
- run: npm run build
- name: deploy to s3
uses: jakejarvis/s3-sync-action@master
with:
args: --delete
env:
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'ap-northeast-2'
SOURCE_DIR: 'build'
Marketplace์์ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋ง๋ ์ก์ ์ ์ฐพ์ ๋ณผ ์ ์๋ค.
๊นํ๋ธ์ Marketplace ํญ์ผ๋ก ์ด๋
Actions ํญ์์ checkout ๊ฒ์
https://github.com/marketplace/actions/checkout
์ฌ์ฉ๋ฒ ํ์ธ ๊ฐ๋ฅ
Actions Secrests ์ค์
์ ์์๋ฅผ ๋ณด๋ฉด ์ก์ ์ฌ์ฉ์ ์ํด AWS S3์ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ ๊ณตํด์ฃผ์ด์ผ ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด ์ ๋ณด๋ฅผ Github์์ ์ ๊ณตํ๋๋ก ์ค์ ํ๋ค.
๊นํ๋ธ ๋ ํฌ์์ Settings - Secrets and variables - Actions ํญ์ผ๋ก ์ด๋ํ๋ค.
New repository secret์ ํด๋ฆญํ๋ค.
ํ์ํ Actions secrets๋ฅผ ์์ฑํ๋ค.
- AWS_S3_BUCKET : bucket name
- AWS_ACCESS_KEY_ID : AWS access key ID
- AWS_SECRET_ACCESS_KEY : AWS secret access key
๋ฐฐํฌ ์๋ํ ํ์ธ
์ด์ main ๋ธ๋์น์ push ์ github action์ด ๋์๊ฐ๊ฒ ๋๋ค.
๊นํ๋ธ ๋ ํฌ์์ Actions ํญ์ผ๋ก ์ด๋ํ๋ค.
action์ด ์ฑ๊ณต์ ์ผ๋ก ์งํ๋์๋ค๋ฉด ์ฒดํฌ ํ์์ ํจ๊ป ๋ฐฐํฌ๊ฐ ์๋์ผ๋ก ๋๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.