Extract caching logic into a separate gradle-actions-caching component (#885)

With this change, the caching functionality of `setup-gradle` and
`dependency-submission` is now provided by `gradle-actions-caching`, a
closed-source library distributed under our [Terms of
Use](https://gradle.com/legal/terms-of-use/). The rest of the action
implementation remains open source.

Using `setup-gradle` or `dependency-submission` with caching enabled
involves loading and using the `gradle-actions-caching` component,
requiring acceptance of the [Terms of
Use](https://gradle.com/legal/terms-of-use/). There are no functional
changes to caching provided by these actions: all workflows will
continue to function as before.

The non-caching aspects of action implementation remain open source. By
running these actions with caching disabled they can be used without
ever loading `gradle-actions-caching` or accepting the license terms.

Supporting the caching infrastructure in this project requires a
substantial engineering investment by Gradle Technologies, which we can
sustain thanks to Develocity, our commercial offering. Caching
technologies are a core part of the Develocity offering, and the caching
in `setup-gradle` fits squarely in that space.

This licensing change lets us continue to build advanced capabilities
that go beyond what we would offer as open source. Proper
production-ready Configuration Cache support will be the first
capability. Improving build performance for self-hosted runners will
follow.

We may introduce functionality restrictions in future updates. However,
caching functionality will remain free for public repositories.
We have a long-standing commitment to open source, as maintainers of
Gradle Build Tool, and by [sponsoring the open source
community](https://gradle.com/oss-sponsored-by-develocity/) with free
Develocity licenses. Public repositories are primarily used by open
source projects, and we remain committed to supporting them.

- Implementation of caching logic to save and restore Gradle User Home
content has been removed, replaced by the `gradle-actions-caching`
component.
- The `@actions/caching` library is still used to cache Gradle
distributions that are downloaded and provisioned by `setup-gradle`.
This PR updates to the latest version of `@actions/caching`, and removes
the patch that is no longer required.
- License notices are now displayed in documentation, logs and the
generated Job Summary.
This commit is contained in:
Daz DeBoer
2026-03-18 14:57:27 -06:00
committed by GitHub
parent c999154b1f
commit a0ee12f71e
46 changed files with 485 additions and 2624 deletions

View File

@@ -0,0 +1,33 @@
/** @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 interface CacheOptions {
disabled: boolean;
readOnly: boolean;
writeOnly: boolean;
overwriteExisting: boolean;
strictMatch: boolean;
cleanup: string;
encryptionKey?: string;
includes: string[];
excludes: string[];
}
/** @public */
export declare function restore(gradleUserHome: string, cacheOptions: CacheOptions): Promise<void>;
/** @public */
export declare function save(gradleUserHome: string, buildResults: BuildResult[], cacheOptions: CacheOptions): Promise<string>;
export { }

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
{
"name": "gradle-actions-caching",
"version": "0.1.2",
"type": "module",
"main": "./index.js",
"types": "./index.d.ts",
"license": "Gradle Inc",
"_note": "VENDORED BUILD - DO NOT EDIT"
}

View File

@@ -0,0 +1,11 @@
// This file is read by tools that parse documentation comments conforming to the TSDoc standard.
// It should be published with your NPM package. It should not be tracked by Git.
{
"tsdocVersion": "0.12",
"toolPackages": [
{
"packageName": "@microsoft/api-extractor",
"packageVersion": "7.57.6"
}
]
}