82 lines
3.1 KiB
YAML
82 lines
3.1 KiB
YAML
# https://cn.vitejs.dev/guide/static-deploy
|
|
on:
|
|
push:
|
|
|
|
jobs:
|
|
build-and-deploy-to-vercel:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: yanhao98/composite-actions/setup-node-environment@main
|
|
- name: 静态代码分析
|
|
run: pnpm lint
|
|
- name: Vue 类型检查
|
|
run: npx vue-tsc --build --force
|
|
|
|
- name: 修改 .npmrc
|
|
run: |
|
|
sed -i '/use-node-version/d' .npmrc;
|
|
sed -i '/node-mirror/d' .npmrc;
|
|
|
|
# https://github.com/vercel/examples/tree/main/ci-cd/github-actions
|
|
# cname-cn.vercel.com cname-china.vercel-dns.com
|
|
- name: 拉取 Vercel 环境信息
|
|
run: pnpm exec vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
|
|
- name: 构建项目
|
|
run: pnpm exec vercel build --target=production --token=${{ secrets.VERCEL_TOKEN }}
|
|
env:
|
|
VITE_BUILD_COMMIT: ${{ github.sha }}
|
|
- name: 部署到 Vercel
|
|
run: pnpm exec vercel deploy --prebuilt --target=production --token=${{ secrets.VERCEL_TOKEN }}
|
|
|
|
playwright: # act --job playwright --workflows .github/workflows/ci.yaml --pull=false --dryrun
|
|
runs-on: ubuntu-latest
|
|
container: yanhao98/runner-images:pnpm-with-playwright
|
|
steps:
|
|
- uses: yanhao98/composite-actions/setup-node-environment@edf12e5623171bb6c707ea0796adc8fa7d9cad90
|
|
- run: pnpm run build-only
|
|
env:
|
|
VITE_BUILD_COMMIT: ${{ github.sha }}
|
|
- name: 部署到 Surge
|
|
if: ${{ !github.event.act }} # https://nektosact.com/usage/index.html#skipping-steps
|
|
id: surge_deploy
|
|
# pnpm exec surge token / pnpx surge token
|
|
# https://github.com/Tencent/tdesign-vue-next/pull/1604#issuecomment-1236244550
|
|
# https://github.com/Tencent/tdesign-vue-next/blob/03036a19adccf4657d7792e3a61a6c6a7d902e3e/.github/workflows/preview-publish.yml
|
|
# https://github.com/Tencent/tdesign/blob/0c0c9b63897c05d10c58e1a1e36feda2cb99eca7/.github/workflows/preview.yml#L40
|
|
run: |
|
|
export DEPLOY_DOMAIN=https://${{ github.sha }}.surge.sh
|
|
cp dist/index.html dist/200.html
|
|
pnpm exec surge --project ./dist --domain $DEPLOY_DOMAIN --token ${{ secrets.SURGE_TOKEN }}
|
|
echo the preview URL is $DEPLOY_DOMAIN
|
|
|
|
echo "url=$DEPLOY_DOMAIN" >> $GITHUB_OUTPUT
|
|
- name: Install Playwright Browsers
|
|
run: pnpm exec playwright install --with-deps
|
|
- name: Run Playwright tests
|
|
run: pnpm exec playwright test
|
|
env:
|
|
BASE_URL: ${{ steps.surge_deploy.outputs.url }}
|
|
|
|
depcheck:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: yanhao98/composite-actions/setup-node-environment@main
|
|
- run: npx depcheck || true
|
|
- run: node .depcheck.js
|
|
|
|
surge-preview:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
pull-requests: write # allow surge-preview to create/update PR comments
|
|
steps:
|
|
- uses: yanhao98/composite-actions/setup-node-environment@main
|
|
- uses: afc163/surge-preview@v1
|
|
id: surge_preview_step
|
|
with:
|
|
dist: dist
|
|
build: pnpm run build-only
|
|
- name: Get the preview_url
|
|
run: echo "url => ${{ steps.surge_preview_step.outputs.preview_url }}"
|