diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 37d48a346f2..18695bdef0b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1404,8 +1404,12 @@ jobs: pnpm lint --threads=8 ;; dependencies) - pnpm deadcode:dependencies - pnpm deadcode:unused-files + if pnpm run --silent 2>/dev/null | grep -q '^ deadcode:dependencies$'; then + pnpm deadcode:dependencies + pnpm deadcode:unused-files + else + pnpm deadcode:ci + fi ;; policy-guards) pnpm lint:webhook:no-low-level-body-read diff --git a/test/scripts/plugin-prerelease-test-plan.test.ts b/test/scripts/plugin-prerelease-test-plan.test.ts index a2cf3b506d5..fabb22fb355 100644 --- a/test/scripts/plugin-prerelease-test-plan.test.ts +++ b/test/scripts/plugin-prerelease-test-plan.test.ts @@ -192,6 +192,14 @@ describe("scripts/lib/plugin-prerelease-test-plan.mjs", () => { expect(manifestEnv).not.toHaveProperty("OPENCLAW_CI_FULL_RELEASE_VALIDATION"); expect(manifestScript).toContain("includeReleaseOnlyPluginShards: false"); expect(manifestScript).not.toContain("plugin-prerelease-test-plan.mjs"); + expect(workflow.jobs["check-shard"].strategy.matrix.include).toContainEqual({ + check_name: "check-dependencies", + task: "dependencies", + runner: "ubuntu-24.04", + }); + expect( + workflow.jobs["check-shard"].steps.find((step) => step.name === "Run check shard").run, + ).toContain("pnpm deadcode:ci"); expect(normalCiScript).toContain( 'dispatch_and_wait ci.yml -f target_ref="$TARGET_SHA" -f include_android=true', );