Files
vue-ts-example/.github/workflows/ci.yaml
严浩 4e11d8255c
Some checks failed
CI / build-and-deploy (push) Failing after 14s
fix: 优化 CI 流程,简化 Node.js 环境设置,修复按钮点击事件绑定
2024-10-09 18:01:24 +08:00

65 lines
2.4 KiB
YAML

# https://cn.vitejs.dev/guide/static-deploy
name: CI
on:
push:
workflow_dispatch:
concurrency:
group: 'ci'
cancel-in-progress: true
jobs:
build-and-deploy:
# timeout-minutes: 60
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;
# - name: Build
# run: pnpm build
# env:
# VITE_BUILD_COMMIT: ${{ github.sha }}
# 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 }}
- name: 部署到 Surge
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: |
repository=${{github.repository}}
project_name=${repository#*/}
export DEPLOY_DOMAIN=https://preview-pr${{ github.run_number }}-$project_name.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 }}