From 2727ecd803e7222b29a081c9a8d19d000a2ac9b8 Mon Sep 17 00:00:00 2001 From: Jiayuan Zhang Date: Sun, 15 Feb 2026 01:32:19 +0800 Subject: [PATCH] ci: parallelize jobs and add turbo cache persistence Split single CI job into parallel lint + build-and-typecheck jobs. Add turbo cache via actions/cache for faster subsequent runs. Use single turbo invocation for build+typecheck to optimize task scheduling. Add concurrency group to cancel stale PR runs. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/ci.yml | 45 +++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 136068ef..747d9a8b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,10 +6,13 @@ on: pull_request: branches: [main] -jobs: - ci: - runs-on: ubuntu-latest +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + lint: + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 @@ -27,12 +30,34 @@ jobs: run: pnpm install - name: Lint - run: | - pnpm --filter @multica/web lint - pnpm --filter @multica/desktop lint + run: pnpm turbo lint - - name: Type check - run: pnpm typecheck + build-and-typecheck: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 - - name: Build - run: pnpm build + - name: Setup pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + + - name: Install dependencies + run: pnpm install + + - name: Restore Turbo cache + uses: actions/cache@v4 + with: + path: .turbo + key: turbo-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.sha }} + restore-keys: | + turbo-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}- + turbo-${{ runner.os }}- + + - name: Build and type check + run: pnpm turbo build typecheck