Files
vue-ts-example-2025/.github/workflows/ci-cd.yaml
Renovate Bot 1ab645e904
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
CI/CD Pipeline / playwright (push) Successful in 1m49s
CI/CD Pipeline / build-and-deploy (push) Successful in 1m36s
chore(deps): update yanhao98/composite-actions digest to faab20a
2025-12-08 23:32:43 +08:00

70 lines
2.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: CI/CD Pipeline
defaults:
run:
shell: bash
env:
TZ: Asia/Shanghai
on:
push:
workflow_dispatch:
jobs:
playwright:
runs-on: ubuntu-latest
container: mcr.microsoft.com/playwright:v1.56.1-noble
steps:
- name: ⚙️ 设置 Node 环境
uses: yanhao98/composite-actions/setup-node-environment@faab20ac2f9c85dfce1a4147fca493bf632bd744
# - name: 📥 安装 Playwright 浏览器
# run: pnpm exec playwright install --with-deps
- name: 📦 构建项目
run: pnpm run build-only
- name: ▶️ 运行 Playwright 测试
run: pnpm exec playwright test
build-and-deploy:
needs: playwright
runs-on: ubuntu-latest
container: gitea/runner-images:ubuntu-latest-slim # https://github.com/cloudflare/wrangler-action/issues/329#issuecomment-3046747722
steps:
- name: 🛠️ 设置Node环境
uses: yanhao98/composite-actions/setup-node-environment@faab20ac2f9c85dfce1a4147fca493bf632bd744
- name: 🔍 静态代码分析
run: pnpm run lint
- name: 📦 构建项目
run: |
export VITE_APP_BUILD_TIME=$(date +"%Y-%m-%d %H:%M:%S")
pnpm run build-only
env:
VITE_APP_BUILD_COMMIT: ${{ github.sha }}
- name: 📊 计算构建大小
run: |
echo "📊 构建大小统计:"
echo "----------------------------------------"
echo "🔹 人类可读格式: $(du -sh dist | cut -f1)"
echo "🔹 以MB为单位: $(du -sm dist | cut -f1) MB"
echo "🔹 以KB为单位: $(du -sk dist | cut -f1) KB"
echo "🔹 文件总数: $(find dist -type f | wc -l) 个文件"
echo "----------------------------------------"
- name: 🧪 单元测试
run: pnpm exec vitest run
- name: ✅ 类型检查
run: pnpm run type-check # 要先 build保证 components.d.ts 存在
- name: 🚀 部署到 Cloudflare
if: github.ref == 'refs/heads/main'
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: deploy