mirror of
https://github.com/gradle/actions.git
synced 2026-08-17 11:22:50 +00:00
Redesigns the caching section of the Job Summary into a single, consistent layout across every cache provider and state, and integrates the provider message into the report rather than appending it disconnected at the bottom. ## Motivation The caching report was produced by three divergent code paths (NoOp / basic / enhanced), each rendering its own markdown: - **Explicitly disabled** → a one-line message, no expand, no provider note. - **Enhanced** (incl. skipped-due-to-existing-home) → a full `<details>` block. - **Basic** → a one-line message with **no** expandable details at all. The Enhanced/Basic provider note floated at the very bottom, disconnected from the report. ## What changed `save()` now returns structured `CacheReport` data instead of pre-rendered HTML, and a single renderer (`caching-report.ts`) produces one unified layout for all variants: - **Section heading**: `#### <icon> Gradle Caching — <Provider> (<status>)` - **Status line** explaining what the cache did - **Integrated provider note** woven in under the heading — now shown **unconditionally** (no longer gated on license acceptance) - **Expandable cache-entry details** when there are entries — basic caching now gets this too The two disabled variants (explicitly disabled, and skipped due to a pre-existing Gradle User Home) render as **compact callouts with no expandable section**. ### Main repo - `caching-report.ts` (new): central renderer + all framing copy + entry table/`<pre>` helpers. - `cache-service.ts`: `CacheReport` / `CacheEntryReport` / status types; `save()` returns `CacheReport`. - `cache-service-loader.ts`: `NoOp` returns a report; `LicenseWarningCacheService` removed; new `getProviderNote()`. - `cache-service-basic.ts`: builds a `CacheReport`. - `job-summary.ts` / `setup-gradle.ts`: thread `CacheReport` + `ProviderNote`. - `configuration.ts`: remove now-unused `isCacheLicenseAccepted()`. ### Vendored library The structured contract requires **gradle-actions-caching v0.7.0** (gradle/actions-caching#74). This PR updates the vendored library to that release — the official `Update gradle-actions-caching library to v0.7.0` vendor commit is included here, so merging this PR ships the redesign together with the library it depends on. ## Testing - Both repos build; prettier + eslint clean. - `gradle/actions`: 363/363 Jest tests pass, including new `caching-report.test.ts` covering every variant. - `gradle-actions-caching`: 74/74 pass under JDK 17. - Rendered markdown verified for all five variants (enhanced/basic enabled & read-only, disabled, skipped). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Bot Githubaction <bot-githubaction@gradle.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
/** @public */
|
|
export declare interface BuildResult {
|
|
get rootProjectName(): string;
|
|
get rootProjectDir(): string;
|
|
get requestedTasks(): string;
|
|
get gradleVersion(): string;
|
|
get gradleHomeDir(): string;
|
|
get buildFailed(): boolean;
|
|
get configCacheHit(): boolean;
|
|
get buildScanUri(): string;
|
|
get buildScanFailed(): boolean;
|
|
}
|
|
|
|
/** @public */
|
|
export declare type CacheCleanupStatus = 'enabled' | 'disabled-param' | 'disabled-failure' | 'disabled-config-cache-hit' | 'disabled-readonly';
|
|
|
|
/** @public */
|
|
export declare interface CacheEntryReport {
|
|
entryName: string;
|
|
requestedKey?: string;
|
|
restoredKey?: string;
|
|
restoredSize?: number;
|
|
restoredTime?: number;
|
|
restoredOutcome: string;
|
|
savedKey?: string;
|
|
savedSize?: number;
|
|
savedTime?: number;
|
|
savedOutcome: string;
|
|
}
|
|
|
|
/** @public */
|
|
export declare interface CacheOptions {
|
|
disabled: boolean;
|
|
readOnly: boolean;
|
|
writeOnly: boolean;
|
|
overwriteExisting: boolean;
|
|
strictMatch: boolean;
|
|
cleanup: 'always' | 'on-success' | 'never';
|
|
encryptionKey?: string;
|
|
includes: string[];
|
|
excludes: string[];
|
|
}
|
|
|
|
/** @public */
|
|
export declare interface CacheReport {
|
|
status: CacheStatus;
|
|
cleanup?: CacheCleanupStatus;
|
|
entries: CacheEntryReport[];
|
|
}
|
|
|
|
/** @public */
|
|
export declare type CacheStatus = 'enabled' | 'read-only' | 'write-only' | 'disabled' | 'disabled-existing-home' | 'not-available';
|
|
|
|
/** @public */
|
|
export declare function restore(gradleUserHome: string, cacheOptions: CacheOptions): Promise<void>;
|
|
|
|
/** @public */
|
|
export declare function save(gradleUserHome: string, buildResults: BuildResult[], cacheOptions: CacheOptions): Promise<CacheReport>;
|
|
|
|
export { }
|