Skip to content

Commit 348bc82

Browse files
committed
ci: optimize pull request checks
enable task-output caching for x86 build and coverage jobs align PR title validation and reviewer routing with contributing rules
1 parent f87081b commit 348bc82

3 files changed

Lines changed: 19 additions & 9 deletions

File tree

‎.github/workflows/pr-build.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ jobs:
197197
debian11-x86_64-gradle-
198198
199199
- name: Build
200-
run: ./gradlew clean build --no-daemon --no-build-cache
200+
run: ./gradlew clean build --no-daemon
201201

202202
- name: Toolkit jar smoke test
203203
run: |
@@ -209,7 +209,7 @@ jobs:
209209
java -jar "$JAR" keystore --help
210210
211211
- name: Test with RocksDB engine
212-
run: ./gradlew :framework:testWithRocksDb --no-daemon --no-build-cache
212+
run: ./gradlew :framework:testWithRocksDb --no-daemon
213213

214214
- name: Generate module coverage reports
215215
run: ./gradlew jacocoTestReport --no-daemon
@@ -265,11 +265,11 @@ jobs:
265265
# this PR. The only output we need from this job is the jacoco XML for
266266
# coverage diffing, so we must not let a stale test failure block it.
267267
continue-on-error: true
268-
run: ./gradlew clean build --no-daemon --no-build-cache
268+
run: ./gradlew clean build --no-daemon
269269

270270
- name: Test with RocksDB engine (base)
271271
continue-on-error: true
272-
run: ./gradlew :framework:testWithRocksDb --no-daemon --no-build-cache
272+
run: ./gradlew :framework:testWithRocksDb --no-daemon
273273

274274
- name: Generate module coverage reports (base)
275275
run: ./gradlew jacocoTestReport --no-daemon

‎.github/workflows/pr-check.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ jobs:
4343
errors.push(`PR title is too long (${title.length}/72 characters).`);
4444
}
4545
46-
// 2. Conventional format check
47-
const conventionalRegex = /^(feat|fix|refactor|docs|style|test|chore|ci|perf|build|revert)(\([^)]+\))?:\s\S.*/;
46+
// 2. Conventional format check (allow a missing recommended space)
47+
const conventionalRegex = /^(feat|fix|refactor|docs|style|test|chore|ci|perf|build|revert)(\([^)]+\))?: ?\S.*/;
4848
if (title && !conventionalRegex.test(title)) {
4949
errors.push(
5050
'PR title must follow conventional format: `type(scope): description`\n' +
@@ -60,7 +60,7 @@ jobs:
6060
6161
// 4. Description part should not start with a capital letter
6262
if (title) {
63-
const descMatch = title.match(/^\w+(?:\([^)]+\))?:\s*(.+)/);
63+
const descMatch = title.match(/^\w+(?:\([^)]+\))?: ?(.+)/);
6464
if (descMatch) {
6565
const desc = descMatch[1];
6666
if (/^[A-Z]/.test(desc)) {

‎.github/workflows/pr-reviewer.yml‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,23 @@ jobs:
5959
const normalize = s => s.toLowerCase().replace(/[\s\-_]/g, '');
6060
6161
// ── Extract scope from conventional commit title ──────────
62-
// Format: type(scope): description
62+
// Formats documented by CONTRIBUTING.md:
63+
// type(scope): description
64+
// type: description
6365
// Also supports: type(scope1,scope2): description
66+
// Only bare "ci" currently has an equivalent reviewer scope.
6467
const scopeMatch = title.match(/^\w+\(([^)]+)\):/);
65-
const rawScope = scopeMatch ? scopeMatch[1] : null;
68+
const bareTypeMatch = title.match(/^(\w+):/);
69+
const inferredScope = !scopeMatch && bareTypeMatch?.[1].toLowerCase() === 'ci'
70+
? 'ci'
71+
: null;
72+
const rawScope = scopeMatch ? scopeMatch[1] : inferredScope;
6673
6774
core.info(`PR title : ${title}`);
6875
core.info(`Raw scope: ${rawScope || '(none)'}`);
76+
if (inferredScope) {
77+
core.info('Inferred scope "ci" from bare "ci" PR title type.');
78+
}
6979
7080
// ── Skip if reviewers already assigned ──────────────────
7181
const pr = await github.rest.pulls.get({

0 commit comments

Comments
 (0)