From 63950bacfb6708bcb1b3660ea5cbcc2798b5b9e7 Mon Sep 17 00:00:00 2001 From: Adam Graham Date: Sat, 16 Nov 2024 07:02:05 -0600 Subject: [PATCH] Add github action to deploy to AWS S3 bucket --- .github/workflows/cdn-deploy.yml | 72 ++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .github/workflows/cdn-deploy.yml diff --git a/.github/workflows/cdn-deploy.yml b/.github/workflows/cdn-deploy.yml new file mode 100644 index 0000000..81eff75 --- /dev/null +++ b/.github/workflows/cdn-deploy.yml @@ -0,0 +1,72 @@ +name: Deploy to CDN + +on: + push: + branches: + - main + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: yarn + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Increase network timeout + run: yarn config set network-timeout 300000 + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Install dependencies + run: yarn install --prefer-offline + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Build + continue-on-error: false + run: yarn build + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: dist + path: dist + retention-days: 30 + + deploy: + name: Deploy + needs: build + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: dist + path: dist + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_GITHUB_ACTION_ROLE }} + aws-region: us-east-2 + + - name: Sync files to S3 bucket + run: | + aws s3 sync dist s3://cdn.zigurous.com --delete