mirror of
https://github.com/gradle/actions.git
synced 2026-07-26 14:14:32 +02:00
Render the configuration-cache restore-state in the caching Job Summary, driven by the new `CacheReport.configurationCache` field produced by the `gradle-actions-caching` provider. ## What's here - `cache-service.ts`: add a `ConfigurationCacheStatus` type (`not-active` / `restored` / `not-restored` / `restore-incomplete`) and an optional `configurationCache` field on `CacheReport`. - `caching-report.ts`: a `CONFIG_CACHE_COPY` map and a prominent status line in `renderCachingReport`, beside the cleanup line. The `not-active` case links to the `#cache-encryption-key` docs. ## Cross-repo dependency The field is populated by gradle/actions-caching PR #75 ("Restore configuration-cache support for simple builds"). This rendering compiles independently (it uses this repo's own `CacheReport` type) and renders nothing until the vendored `gradle-actions-caching` bundle is refreshed from that branch — so this should land with/after the vendor refresh. ## Verification `npm run check` clean; full Jest suite (366 tests) passes, including 3 new rendering tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import {BuildResult} from './build-results'
|
|
|
|
export interface CacheOptions {
|
|
disabled: boolean
|
|
readOnly: boolean
|
|
writeOnly: boolean
|
|
overwriteExisting: boolean
|
|
strictMatch: boolean
|
|
cleanup: string
|
|
encryptionKey?: string
|
|
includes: string[]
|
|
excludes: string[]
|
|
}
|
|
|
|
export type CacheStatus =
|
|
| 'enabled'
|
|
| 'read-only'
|
|
| 'write-only'
|
|
| 'disabled'
|
|
| 'disabled-existing-home'
|
|
| 'not-available'
|
|
|
|
export type CacheCleanupStatus =
|
|
| 'enabled'
|
|
| 'disabled-param'
|
|
| 'disabled-failure'
|
|
| 'disabled-config-cache-hit'
|
|
| 'disabled-readonly'
|
|
|
|
export type ConfigurationCacheStatus = 'not-active' | 'restored' | 'not-restored' | 'restore-incomplete'
|
|
|
|
export interface CacheEntryReport {
|
|
entryName: string
|
|
requestedKey?: string
|
|
restoredKey?: string
|
|
restoredSize?: number
|
|
restoredTime?: number
|
|
restoredOutcome: string
|
|
savedKey?: string
|
|
savedSize?: number
|
|
savedTime?: number
|
|
savedOutcome: string
|
|
}
|
|
|
|
/**
|
|
* Structured result of a cache save operation. Rendering this into a human-readable
|
|
* Job Summary is handled centrally by `caching-report.ts`.
|
|
*/
|
|
export interface CacheReport {
|
|
status: CacheStatus
|
|
cleanup?: CacheCleanupStatus
|
|
configurationCache?: ConfigurationCacheStatus
|
|
entries: CacheEntryReport[]
|
|
}
|
|
|
|
export interface CacheService {
|
|
restore(gradleUserHome: string, cacheOptions: CacheOptions): Promise<void>
|
|
save(gradleUserHome: string, buildResults: BuildResult[], cacheOptions: CacheOptions): Promise<CacheReport>
|
|
}
|