git action - S3 배포 자동화

문한성·2023년 4월 30일
0

부트캠프

목록 보기
73/123
post-thumbnail

GitHub Action Secret 설정

우선 yml에서 사용할 수 있도록, AWS에 접근이 가능한 AWS-ACCESS-KEY와 SECRET-KEY를 Github에 설정하여야 합니다.

배포를 원하는 Repository에 접속한 뒤 Settings > Secrets > Actions을 선택합니다.

Actions Secrets 우측의 New repository secret를 선택합니다.

new repository scret을 추가한다.

AWS_ACCESS_KEY_ID : IAM -> 보안자격증명 에있는 access_key_id
AWS_SECRET_ACCESS_KEY : IAM -> 보안자격증명 에있는 secret_access_key_id
REACT_APP_ENDPOINT : 연결한 backend서버 주소
S3_BUCKET : s3버킷 이름 ( 주의! arn아님! )

git action workflow 생성

프로젝트 최상단에 .github/workflows/s3-deploy.yml 파일을 만든다.

#s3-deploy.yml

name: Example workflow for S3 Deploy

on: [push]


env:
  AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  REACT_APP_ENDPOINT: ${{ secrets.REACT_APP_ENDPOINT }}
  S3_BUCKET: ${{ secrets.S3_BUCKET }}
  S3_BUCKET_REGION: ap-northeast-2
      
jobs:
  run:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Setup Node.js 16
        uses: actions/setup-node@v3
        with:
          node-version: 16
          cache: 'npm'

      - name: Build Project
        run: |
          npm install
          CI=false REACT_APP_ENDPOINT=$REACT_APP_ENDPOINT npm run build

      - name: Deploy_S3
        uses: reggionick/s3-deploy@v3
        with:
          folder: build
          bucket: ${{ env.S3_BUCKET }}
          bucket-region: ${{ env.S3_BUCKET_REGION }}
          delete-removed: true
          no-cache: true
          private: true
          filesToInclude: ".*/*,*/*,**"

발생한 에러

  • Deploy_S3의 filesToInclude를 files-to-include로 써서 에러가 발생했다
  • 환경변수 S3_BUCKET을 s3버킷 arn주소로 지정하여 파일일 올라가지 않았다.
profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글