From 04082820b0ffda59123a7b28c49440edfb62807b Mon Sep 17 00:00:00 2001 From: xiong Date: Tue, 21 Jul 2026 17:31:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=20CI=20=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81=EF=BC=8C=E5=90=88=E5=B9=B6=20lint=E3=80=81?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=A3=80=E6=9F=A5=E5=92=8C=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/ci.yml | 67 ++++++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index ab73130..97d2033 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -7,34 +7,53 @@ on: push: branches: [main] +# 同一分支有新提交时取消旧任务,避免旧任务持续占用 Gitea runner。 +concurrency: + group: ci-${{ gitea.ref }} + cancel-in-progress: true + jobs: - lint: + verify: runs-on: ubuntu-latest + timeout-minutes: 30 + env: + CI: 'true' + TURBO_UI: stream steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: '22' - - run: npm ci - - run: npm run lint + - name: 检出代码 + uses: actions/checkout@v4 + timeout-minutes: 3 - typecheck: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - name: 安装 Node.js + uses: actions/setup-node@v4 + timeout-minutes: 3 with: node-version: '22' - - run: npm ci - - run: npm run typecheck + cache: npm - test: - runs-on: ubuntu-latest - needs: [lint, typecheck] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: '22' - - run: npm ci - - run: npm run test + - name: 安装依赖 + run: npm ci --no-audit --no-fund + timeout-minutes: 10 + + - name: 代码检查 + # 后端原 lint 脚本带 --fix;CI 中追加 --no-fix,避免检查时修改工作区。 + run: | + npm run lint -w @gongxue/admin + npm run lint -w @gongxue/server -- --no-fix + timeout-minutes: 5 + + - name: 类型检查 + run: npm run typecheck + timeout-minutes: 8 + + - name: 后端测试 + run: npm run test -w @gongxue/server -- --runInBand --forceExit + timeout-minutes: 10 + + - name: 安装 Chromium + run: npx playwright install --with-deps chromium + timeout-minutes: 10 + + - name: 前端测试 + run: npm run test -w @gongxue/admin + timeout-minutes: 10