From 4fde69f674758085f57b5ecf4dff5ae2e82c060e Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 16 Mar 2025 11:02:43 -0600 Subject: [PATCH] feat: add GitHub Actions workflows for build and deploy preview - Introduced a new workflow for building the preview site and uploading build artifacts. - Added a deployment workflow to Cloudflare Pages triggered by the successful completion of the build workflow. - Configured Node.js and pnpm for dependency management and build processes. --- .github/workflows/build-preview.yml | 37 +++++++++++++++++++++++++++ .github/workflows/deploy-preview.yml | 38 ++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 .github/workflows/build-preview.yml create mode 100644 .github/workflows/deploy-preview.yml diff --git a/.github/workflows/build-preview.yml b/.github/workflows/build-preview.yml new file mode 100644 index 00000000..89e21774 --- /dev/null +++ b/.github/workflows/build-preview.yml @@ -0,0 +1,37 @@ +name: Build Preview Deployment + +on: + pull_request: + types: [opened, synchronize] + +jobs: + build-preview: + runs-on: ubuntu-latest + name: Build Preview Site and Upload Build Artifact + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: Install dependencies + working-directory: app + run: pnpm install + + - name: Build + working-directory: app + run: pnpm build + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: preview-build + path: app/dist \ No newline at end of file diff --git a/.github/workflows/deploy-preview.yml b/.github/workflows/deploy-preview.yml new file mode 100644 index 00000000..436c572e --- /dev/null +++ b/.github/workflows/deploy-preview.yml @@ -0,0 +1,38 @@ +name: Upload Preview Deployment + +on: + workflow_run: + workflows: ['Build Preview Deployment'] + types: + - completed + +permissions: + actions: read + deployments: write + contents: read + pull-requests: write + +jobs: + deploy-preview: + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} + name: Deploy Preview to Cloudflare Pages + steps: + - name: Download build artifact + uses: actions/download-artifact@v4 + id: preview-build-artifact + with: + name: preview-build + path: build + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + + - name: Deploy to Cloudflare Pages + uses: AdrianGonz97/refined-cf-pages-action@v1 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + githubToken: ${{ secrets.GITHUB_TOKEN }} + projectName: ${{ secrets.CLOUDFLARE_PROJECT_NAME }} + deploymentName: Preview + directory: ${{ steps.preview-build-artifact.outputs.download-path }} \ No newline at end of file