DevOps BootCamp/Section 2 실습과제

Git Action-S3 배포

cloudmaster 2023. 5. 3. 22:29

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: ".*/*,*/*,**"

'DevOps BootCamp > Section 2 실습과제' 카테고리의 다른 글

ECS 배포 자동화  (0) 2023.05.03
프로젝트 2 회고  (0) 2023.05.02