Section4 unit10 과제1. Github Action 실습

leekoby·2023년 4월 3일
0

CodeStates

목록 보기
5/6
post-thumbnail

🔧변경내용🔨

제목날짜내용
발행일23.04.03

📌들어가기에 앞서


해당 포스트는 Github Action를 학습한 것을 정리한 내용입니다.


Bare Minimum Requirements

클라이언트 부분을 S3로 배포합니다.
튜토리얼에 이어서 해당 실습을 진행합니다.
기존에 가지고 있었던 레포지토리를 이용해봅시다.




🌈 Github Actions를 통한 배포 Flow (클라이언트)

이번 클라이언트 배포는 간단하게 3가지 단계로 나뉜다.

  • Source: Github reference 브랜치에 코드가 커밋

  • Build: github acitons의 YAML 파일에 적힌 명령어를 토대로 Webpack을 이용해 빌드

  • Deploy: github acitons의 YAML 파일에 적힌 명령어를 토대로 s3로 빌드 결과를 업로드

이미 S3는 배포를 위해 충분히 준비되어 있으므로, s3로 파일만 잘 전달하면 충분히 배포를 할 수 있다.

# .github/workflows/client.yml
name: client
on:
  push:
    branches: [ "reference" ]
  pull_request:
    branches: [ "reference" ]

jobs:
  build:
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout source code.
        uses: actions/checkout@v3
      - name: Install dependencies
        run: npm install
        working-directory: ./my-agora-states-client
      - name: Build
        run: npm run build
        working-directory: ./my-agora-states-client
      - name: SHOW AWS CLI VERSION
        run: |
          aws --version
      - name: Sync Bucket
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_EC2_METADATA_DISABLED: true
        run: |
          aws s3 sync \
            --region ap-northeast-2 \
           build s3://fe-78-leekoby-s3 \
            --delete
        working-directory: ./my-agora-states-client
       



📚 레퍼런스

깃헙 액션 시크릿 정하기

AWS S3: cp vs sync

[AWS cli] S3 sync

0개의 댓글