[Github] Github Actions를 이용해 AWS S3 배포 자동화 하기 #2

유아현·2023년 3월 27일
1

Deploy

목록 보기
2/4
post-thumbnail

📌 github secrets 추가하기

  • AWS에서 발급받은 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY를 github secret 추가하자

  • 리포지토리 Settings 클릭

  • New repository secret 클릭해서 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 만들기

  • 다음과 같이 생성된 것을 확인할 수 있다.

  • Actions 클릭 > set up a workflow yourself

  • yml 파일 생성

name: fe-dev //workflow name
on:	// 언제 작동할지
  push: // push가 이루어지면
    branches: // 어떤 브랜치에서?
      - main // main 브랜치에서
jobs: // main 브랜치에서 push가 이루어지면 아래 작업들이 이루어짐
  build:
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout source code.
        uses: actions/checkout@v2

      - name: Install dependencies
        run: yarn install	// install 하는 패키지 명령어
        working-directory: ./client // 디렉토리 위치 설정

      - name: Build
        run: yarn vite build // Build 하는 패키지 명령어
        working-directory: ./client // 디렉토리 위치 설정

      - 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://버킷이름 \
            --delete
        working-directory: ./client // 디렉토리 위치 설정

다음과 같이 설정해서 커밋을 날리고 설정한 브랜치에 push가 이루어질 때 설정해둔 작업이 자동으로 실행된다. 참고할 점은 main이 아닌 fe-dev와 같은 다른 브랜치에 액션이 작동되게 하고 싶다면

 branches:
      - fe-dev

다음과 같이 설정해 주면되는데 주의할 점은 yml 파일이 해당 브랜치에 존재해야 action이 작동한다는 점을 주의하자!
나의 경우에는 디폴트 브랜치가 main이라 처음에 fe-dev에 액션을 적용하고 싶어서 했는데 yml파일이 디폴트 브랜치인 main에 위치하고 있어서 액션이 먹통이었다. yml 파일을 생성해서 디폴트 브랜치 pull을 받아와 yml 파일이 액션을 실행시키고자하는 브랜치에 존재하도록 해 주자!

그리고 이제 액션을 지정해 둔 브랜치에 push를 날려주면

다음과 같이 액션 내역들을 확인할 수 있다! 그리고 버킷에 자동 배포 되기 때문에 버킷 엔드 포인트 주소로 가면 적용된 것을 확인할 수 있다!

0개의 댓글