Github actions에 관한 포스팅은 한 적이 있는데 예제가 좀 부족한 거 같아서 임시로 만든 workflow.yaml을 올려봅니다.
저장소에서 사용하기 위해선 루트 폴더에 .github/workflow 폴더를 생성해야만 사용할 수 있습니다.
aws s3 에 배포, cloudfront에 무효화까지 하는 과정까지 jobs에 포함되어 있습니다.
on:
push:
branches:
- 들어갈 브랜치
라는 브랜치에 push할 시 workflow가 실행
jobs:
build-and-deploy:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
# 사용할 노드 버전 추가 ex)[14, 16]
env:
AWS_BUCKET_NAME: aws bucket
# build라는 job에서 사용할 환경변수 build job 내부에서만 사용가능.
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
- name: Cache Node_Modules
uses: actions/cache@v3
with:
## cache의 대상. 여기선 node_modules
path: '**/node_modules'
key: ${{ runner.os }}-build-${{ hashFiles('**/package-lock.json') }}
#key를 통해 캐싱된 파일을 찾는다. key가 없으면 restore-keys로 찾는다. 순서는 아래에서부터.
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies
run: |
yarn install
- name: Build
run: |
yarn build
## 여기엔 빌드 쓰세요.
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
# 시크릿키는 github 저장소에서 세팅
- name: Upload to S3 (Deploy)
run: |
aws s3 sync dist s3://$AWS_BUCKET_NAME
- name: Invalidate CloudFront
run: |
aws cloudfront create-invalidation --distribution-id ${{ secrets.CLOUDFRONT_DISTRIBUTION_ID }} --paths "/*"
example.yaml
'개발지식' 카테고리의 다른 글
position : fixed 속성이 깨지는 이슈 (transform) (0) | 2023.06.23 |
---|---|
github 프로필을 꾸며보자 (0) | 2023.06.19 |
마진 상쇄(마진 병합)와 해결 (0) | 2023.05.14 |
Naver Deview 2023 - UI 빌더를 지탱하는 레고 블록 같은 아키텍처 만들기 정리 (0) | 2023.03.19 |
Github actions을 사용해보자. (0) | 2023.03.12 |