Skip to content

feat: enhance landing page with improved layout, new translation type… #3

feat: enhance landing page with improved layout, new translation type…

feat: enhance landing page with improved layout, new translation type… #3

name: Deploy Website to Cloudflare Pages
on:
push:
branches:
- main
paths:
- 'website/**'
- '.github/workflows/deploy-website.yml'
pull_request:
branches:
- main
paths:
- 'website/**'
workflow_dispatch:
env:
NODE_VERSION: '20'
PNPM_VERSION: '10'
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: website
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
cache-dependency-path: 'website/pnpm-lock.yaml'
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('website/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build website
run: pnpm build
env:
NEXT_PUBLIC_SITE_URL: https://ai-workflow.xiaominglab.com
NEXT_PUBLIC_GIT_SHA: ${{ github.sha }}
SKIP_ENV_VALIDATION: true
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: website-build
path: website/out
retention-days: 1
deploy:
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
permissions:
contents: read
deployments: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download build artifact
uses: actions/download-artifact@v4
with:
name: website-build
path: website/out
- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy website/out --project-name=ai-workflow --commit-dirty=true
# Preview deployment for pull requests
preview:
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'pull_request'
permissions:
contents: read
deployments: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download build artifact
uses: actions/download-artifact@v4
with:
name: website-build
path: website/out
- name: Deploy Preview to Cloudflare Pages
id: deploy
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy website/out --project-name=ai-workflow --branch=${{ github.head_ref }} --commit-dirty=true
- name: Comment PR with preview URL
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `## 🚀 Preview Deployment Ready!\n\nPreview URL: ${{ steps.deploy.outputs.deployment-url }}\n\nThis preview will be available until the PR is closed.`
})