From dbe84865859e4d2bbef70bf9d9f4eae1f1151225 Mon Sep 17 00:00:00 2001 From: Sunny Luo Date: Sun, 30 Aug 2026 10:07:18 +0800 Subject: [PATCH] ci: speed up routine checks Reuse an exact node_modules cache in lint and JavaScript tests while keeping the frozen-lockfile install and postinstall validation. Avoid apt metadata refreshes in C++ tests when the required development packages are already present, with a fallback installation path for future runner images. --- .github/workflows/lint.yml | 7 +++++++ .github/workflows/test.yml | 25 +++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 886c8ac9..f9fd3862 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -22,6 +22,13 @@ jobs: steps: - uses: actions/checkout@v7 - uses: oven-sh/setup-bun@v2 + id: setup-bun + + - name: Restore installed dependencies + uses: actions/cache@v6 + with: + path: node_modules + key: bun-node-modules-${{ runner.os }}-${{ runner.arch }}-${{ steps.setup-bun.outputs.bun-version }}-${{ hashFiles('bun.lock', 'package.json', 'bunfig.toml', 'scripts/check-expo-version.js') }} - name: Install Dependency run: bun install --frozen-lockfile diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c2720198..89e5cf2f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,13 @@ jobs: steps: - uses: actions/checkout@v7 - uses: oven-sh/setup-bun@v2 + id: setup-bun + + - name: Restore installed dependencies + uses: actions/cache@v6 + with: + path: node_modules + key: bun-node-modules-${{ runner.os }}-${{ runner.arch }}-${{ steps.setup-bun.outputs.bun-version }}-${{ hashFiles('bun.lock', 'package.json', 'bunfig.toml', 'scripts/check-expo-version.js') }} - name: Install Dependencies run: bun install --frozen-lockfile @@ -40,8 +47,22 @@ jobs: with: submodules: recursive - - name: Install build dependencies - run: sudo apt-get update && sudo apt-get install -y zlib1g-dev libbz2-dev + - name: Install missing build dependencies + shell: bash + run: | + missing=() + for package in zlib1g-dev libbz2-dev; do + if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q 'install ok installed'; then + missing+=("$package") + fi + done + + if ((${#missing[@]})); then + sudo apt-get update + sudo apt-get install -y --no-install-recommends "${missing[@]}" + else + echo "Build dependencies are already installed." + fi - name: Build HDiffPatch library working-directory: android/jni/HDiffPatch