diff --git a/.github/workflows/prod-ci.yml b/.github/workflows/prod-ci.yml new file mode 100644 index 0000000..6912b45 --- /dev/null +++ b/.github/workflows/prod-ci.yml @@ -0,0 +1,56 @@ +name: MASTER CI + +on: + push: + branches: + - Master + tags: + - "production-**" + +jobs: + Deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout source code + uses: actions/checkout@v3 + + - name: Setup PNPM + uses: pnpm/action-setup@v2 + with: + version: latest + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: '18' + cache: 'pnpm' + + - name: Cache dependencies + uses: actions/cache@v3 + with: + path: | + **/node_modules + ~/.pnpm-store + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm- + + - name: Install Dependencies + run: pnpm install + + - name: Build + run: pnpm build + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-access-key-id: ${{ secrets.AWS_S3_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_S3_SECRET_ACCESS_KEY_ID }} + aws-region: ap-northeast-2 + + - name: Deploy to S3 + run: aws s3 sync ./dist s3://${{ secrets.AWS_S3_BUCKET_NAME }} --delete + + - name: Invalidate CloudFront Cache + run: aws cloudfront create-invalidation --distribution-id ${{ secrets.AWS_CLOUDFRONT_ID }} --paths "/*" \ No newline at end of file