s3 배포자동화 + 캐시무효화 자동화

박진현·2021년 12월 4일
0

저와 같이 에러를 겪으시는 분들을 위해 코드를 공유합니다..

name: deploy-to-s3-example

on:
  push:
    branches: [dev]

jobs:
  build:
    runs-on: ubuntu-18.04
    steps:
      - name: git clone
        uses: actions/checkout@v2

      - name: npm install for eslint
        run: npm install

      - name: npm install
        run: npm install
        working-directory: ./client

      - name: build
        run: CI='' npm run build
        working-directory: ./client

      # - name: ls in client
      #   run: ls -la
      #   working-directory: ./client

      # - name: ls in build
      #   run: ls -la
      #   working-directory: ./client/build

      # - name: pwd in build
      #   run: pwd
      #   working-directory: ./client/build

      # - name: test aws
      #   run: aws configure list

      # - name: deploy
      #   env:
      #     AWS_ACCESS_KEY_ID: '${{ secrets.AWS_ACCESS_KEY_ID }}'
      #     AWS_SECRET_ACCESS_KEY: '${{ secrets.AWS_SECRET_ACCESS_KEY }}'
      #   run: |
      #     aws s3 cp \
      #       --recursive \
      #       --region ap-northeast-2 \
      # /home/runner/work/Lumiere/Lumiere/client/build s3://www.lumieregallery.site

      - name: Transfer to S3 for serving static
        uses: jakejarvis/s3-sync-action@master
        with:
          args: --acl public-read --follow-symlinks --delete
        env:
          AWS_S3_BUCKET: ${{ secrets.AWS_BUCKET_NAME }}
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_IAM_MANAGER_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_IAM_MANAGER_SECRET_ACCESS_KEY }}
          AWS_REGION: ${{ secrets.AWS_BUCKET_REGION }}
          SOURCE_DIR: '/home/runner/work/Lumiere/Lumiere/client/build'

      # - name: Add profile credentials to ~/.aws/credentials
      #   run: |
      #       aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }} --profile www.lumieregallery.site
      #       aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} --profile www.lumieregallery.site
      # - name: aws configure test
      #   run: aws configure list
      #   env:
      #     AWS_S3_BUCKET: ${{ secrets.AWS_BUCKET_NAME }}
      #     AWS_ACCESS_KEY_ID: ${{ secrets.AWS_IAM_MANAGER_KEY_ID }}
      #     AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_IAM_MANAGER_SECRET_ACCESS_KEY }}
      #     AWS_REGION: ${{ secrets.AWS_BUCKET_REGION }}
      
      - name: 캐시 무효화
        env:
          AWS_S3_BUCKET: ${{ secrets.AWS_BUCKET_NAME }}
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_IAM_MANAGER_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_IAM_MANAGER_SECRET_ACCESS_KEY }}
          AWS_REGION: ${{ secrets.AWS_BUCKET_REGION }}
        run: aws cloudfront create-invalidation --distribution-id=E8어쩌구..저쩌구! --paths "/*"
        # aws cloudfront create-invalidation --distribution-id distribution_ID --paths "/*"

하나의 레퍼런스로서 참고해주세요!

profile
👨🏻‍💻 호기심이 많고 에러를 좋아하는 프론트엔드 개발자 박진현 입니다.

0개의 댓글