diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..595b2802 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,51 @@ +name: Workflow for S3 Deploy + on: + push: + branches: + - release + jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.x] + steps: + - name: Checkout Source Code + uses: actions/checkout@v3 + + - name: .env setting + run: echo "VITE_API_URI=${{ secrets.VITE_API_URI }}" >> ./grass-diary/.env + + - name: Node.js + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: "npm" + cache-dependency-path: ./grass-diary/package-lock.json + + - name: Install Module + run: npm --force ci + working-directory: ./grass-diary/ + + - name: Build Production + run: npm run build --if-present + working-directory: ./grass-diary/ + env: + CI: false + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 + + - name: Deploy to S3 + run: aws s3 sync --region us-east-1 ./dist s3://grasstestdiarytest --delete + working-directory: ./grass-diary/ + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + + - name: Invalidate CloudFront Cache + run: aws cloudfront create-invalidation --distribution-id ${{ secrets.DEV_AWS_DISTRIBUTION_ID }} --paths "/*"