97 Commits
Author SHA1 Message Date
Daz DeBoerandClaude Opus 5 3f5f9adaf7 Document the new Gradle signing key for dependency verification (#1071)
Follow-up to #1069, which bumped the
`github-dependency-graph-gradle-plugin` default to `1.5.0`.

`1.5.0` is signed with a **new** Gradle signing subkey, and the key
currently documented in `docs/setup-gradle.md` has been revoked
upstream. Without this docs change, the snippet we publish will fail
dependency verification for Dependency Graph generation.

I verified the published signatures rather than relying on the
changelog:

| Artifact | Issuer key | |
|---|---|---|
| `github-dependency-graph-gradle-plugin:1.5.0` | `D9B2DFBD9F3298BA` |
new |
| `github-dependency-graph-gradle-plugin:1.4.2` | `893A028475557671` |
old |
| `develocity-gradle-plugin:4.5.0` | `893A028475557671` | old |

So the docs now list **both** keys instead of swapping one for the
other. The Develocity Gradle plugin (`com.gradle`) is still signed with
the old key, so replacing it outright would have broken Develocity
injection for builds with dependency verification enabled.

Docs-only change; no source or `dist` impact.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-07 18:57:35 -06:00
e49d0a36a8 Report EOL and maintenance status for Gradle versions (#1057)
This PR reports the support status of every Gradle version used in a
workflow:

- **End-of-life** — two or more major versions behind the latest
release.
- **Out of date** — one major version behind the latest release, or more
than two minor versions behind on the current major.

The information is surfaced as job annotations and in the Job Summary:
an icon beside the Gradle version in the build results table, and a
message below it.

| version kind | job annotation | version table | below the table |
| ------ | ----- | ---- | --------- |
| EOL | warning | ⚠️ | expandable section, pointing to the Gradle
Security Subscription |
| Out of date | notice | ℹ️ | one-line legend, pointing to the Gradle
release lifecycle docs |
| Current | none | — | — |

A single expandable section covers every end-of-life version, naming
them in its summary line and listing the affected release lines in its
body. The upgrade legend likewise appears once per job, however many
versions carry the info icon.

Notes on what is deliberately *not* reported:

- **Patch releases.** Only the major and minor version are considered,
so being on `9.7.0` when `9.7.1` exists is not flagged.
- **Pre-releases.** Release candidates, milestones and snapshots are
never reported, so testing against a nightly or an RC produces no
annotations.

The latest Gradle release is determined from the wrapper checksum data
already bundled with the action, so no network access is required. That
data is refreshed weekly, and the two-minor grace band absorbs the lag.

Note that the annotations are emitted independently of
`add-job-summary`: setting it to `never` suppresses the Job Summary
itself, but the warning and notice annotations remain.

### Examples

The `demo-job-summary` workflow has a `support-status-eol-and-outdated`
job that builds with three end-of-life versions (`6.9.4`, `7.4`,
`7.6.6`), two out-of-date versions (`8.0.2`, `8.14.5`) and the current
release, so all three statuses appear in one summary:

* **Job Summary**:
https://github.com/gradle/actions/actions/runs/34166688755#summary-101879071306
* **Annotations**:
https://github.com/gradle/actions/actions/runs/34166688755/job/101879071306
(expand annotations)

That workflow is never triggered automatically; run it manually against
a branch to review the rendering.

### Implementation

* Adds `GradleVersion`, parsing and ordering versions the same way
Gradle's own `org.gradle.util.GradleVersion` does. This replaces the
previous `versionIsAtLeast` helper and removes the `semver` dependency.
* Adds `gradle-support-status.ts`, which owns the classification policy
and both of its presentations (annotations and Job Summary section)
behind a three-function API, so `job-summary.ts` only asks for the icon
and the rendered block.

### Testing

* Unit tests for version ordering, classification, the annotations and
the rendered summary.
* `integ-test-gradle-support-status.yml`, which derives its expected
versions from the bundled release data so the assertions cannot drift
from the action's own view, then asserts against the real job log.
* The demo workflow job linked above, for reviewing the rendering by
eye.

Documented under [Build
reporting](https://github.com/gradle/actions/blob/main/docs/setup-gradle.md#gradle-version-support-status)
in `docs/setup-gradle.md`.

---------

Co-authored-by: Louis Jacomet <louis@gradle.com>
Co-authored-by: Daz DeBoer <daz@gradle.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-07 16:34:26 -06:00
Christoph Obexer 575435b1ea Use the root-qualified :wrapper task (#1064)
Replaces the unqualified `wrapper` task name with the
root-project-qualified
`:wrapper` in the two places this repo names it:

- `.github/workflows/demo-job-summary.yml` — the kotlin-dsl sample
invocation
- `docs/wrapper-validation.md` — the guidance for regenerating an
unverifiable
  `gradle-wrapper.jar`

An unqualified `wrapper` matches the task in every project of a
multi-project
build. The root-qualified form is unambiguous, matches the gradle/gradle
convention, and is required under Configure on Demand.

Part of the org-wide rollout tracked in gradle/gradle-private#5228;
original
issue gradle/gradle#37761.

Signed-off-by: Christoph Obexer <cobexer@gradle.com>
2026-09-07 14:42:32 -06:00
Daz DeBoerandClaude Sonnet 5 910b061d4d Add cache-provider: external to skip Gradle User Home caching (#1059)
Users relying on an external mechanism to save/restore Gradle User Home
(e.g. Develocity Artifact Cache) previously had to set cache-disabled:
true, which is confusing since caching isn't actually disabled — it's
just not managed by this action — and the Job Summary misleadingly
reported caching as "Disabled".

cache-provider: external skips Gradle User Home restore/save (same as
cache-disabled) but reports a distinct "External" status in the Job
Summary, explaining that caching is handled by another provider.

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-25 09:44:41 -06:00
5971332a8f Bump Gradle Wrapper to 9.6.1, wrapper checksums, and Develocity plugin to 4.5.0 (#1034)
Consolidates seven open bot PRs into three commits.

## 1. Bump Gradle Wrapper from 9.5.1 to 9.6.1

Combines **#1008, #1009, #1010, #1011, #1012** into a single commit.
Each of those PRs bumped the wrapper in one directory; this covers all
five (15 files):

- `sources/test/init-scripts`
- `.github/workflow-samples/gradle-plugin`
- `.github/workflow-samples/groovy-dsl`
- `.github/workflow-samples/java-toolchain`
- `.github/workflow-samples/kotlin-dsl`

Each location gets the same `distributionUrl` → `gradle-9.6.1-bin.zip`
and `distributionSha256Sum` update, plus the regenerated `gradlew` /
`gradlew.bat` scripts.

## 2. Update known wrapper checksums

**#990**, unchanged, as its own commit. Adds 36 checksum entries to
`sources/src/wrapper-validation/wrapper-checksums.json`, **including the
9.6.1 checksums** — which is what lets the wrapper bump above pass
`CI-validate-wrappers`. These two are worth landing together.

## 3. Bump Develocity Gradle plugin from 4.4.2 to 4.5.0

**#1015**, unchanged, as its own commit. Updates the plugin reference
across workflow samples, init-script tests, docs, and the injected
default in `sources/src/develocity/build-scan.ts`:

```diff
-maybeExportVariable('DEVELOCITY_INJECTION_DEVELOCITY_PLUGIN_VERSION', '4.4.2')
+maybeExportVariable('DEVELOCITY_INJECTION_DEVELOCITY_PLUGIN_VERSION', '4.5.0')
```

Since this touches `sources/src`, the bundled `dist/` will change when
the update-dist bot runs.

## Verification

All three cherry-picks applied without conflicts. On the combined
branch:

- `./build` — clean
- `npm run check` (prettier + eslint) — clean
- `npm test` — 373 tests, 15 suites, all passing

Original bot authorship is preserved on all three commits.

## Superseded PRs

Once this merges, these can be closed: #1008, #1009, #1010, #1011,
#1012, #990, #1015.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: bot-githubaction <bot-githubaction@gradle.com>
2026-08-01 20:29:23 -06:00
318eed7038 Hide obsolete Job summaries (#902)
- Injects a `<!-- gradle-job-summary: ${jobCorrelator} -->` marker on
each job summary
- Lists 100 last comments: unfortunately there is no API to specifically
filter for comments, and checking the last 100 comments (the limit) is
usually enough and does not require iterating over pages
- Mutate comments having this expected marker

I tried to add some tests, but I'm not familiar enough to setup a
complete test suite with proper mocking of GitHub/Octokit with jest.

I could potentially extract the `prComment` creation to check for the
marker presence, let me know.

Note: it seems like there is currently an issue on mutating comments as
`OUTDATED` through graphql. Although it does not work as expected
(flagging as OUTDATED) the comments are still minimized, which is what
we want.
- https://github.com/orgs/community/discussions/19865

Implements #176

---------

Co-authored-by: Daz DeBoer <daz@gradle.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 10:14:48 -06:00
Bot Githubaction f37016fb25 Bump references to Develocity Gradle plugin from 4.4.0 to 4.4.2 (#973)
This PR bumps references to Develocity Gradle plugin from 4.4.0 to
4.4.2.
2026-06-09 12:25:09 -06:00
Daz DeBoer 11d4d83c63 Update docs for v6 2026-04-03 15:25:10 -06:00
Daz DeBoerandClaude Opus 4.6 f2e6298504 Restructure caching documentation for basic and enhanced providers (#934)
## Summary
- Reorganized setup-gradle caching docs into three clear sections:
general (shared options), Enhanced Caching, and Basic Caching
- Added new documentation for `cache-encryption-key`,
`gradle-home-cache-strict-match`, and the full Basic Caching section
(key strategy, stored content, limitations)
- Moved enhanced-only options (`cache-write-only`,
`cache-overwrite-existing`, `cache-cleanup`, includes/excludes, strict
matching) into the Enhanced Caching section
- Preserved all existing anchor links used by source code and other docs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 08:36:37 -06:00
Daz DeBoerandClaude Opus 4.6 ff9ae24c39 Add open-source 'basic' cache provider and revamp licensing documentation (#930)
## Summary

- **New `basic` cache provider**: Adds an open-source (MIT-licensed)
caching implementation built on `@actions/cache` as an alternative to
the proprietary Enhanced Caching. Users can opt in with `cache-provider:
basic` on both `setup-gradle` and `dependency-submission` actions.
- **Revamped licensing & distribution docs**: Replaces the verbose
licensing notice block (previously shown in README, docs, and logs) with
a friendlier callout and a new dedicated
[DISTRIBUTION.md](./DISTRIBUTION.md) covering component licensing, usage
tiers, data privacy ("Safe Harbor"), and opt-out instructions.
- **Improved messaging**: Enhanced Caching and Basic Caching each
display concise, informative log messages and job summary notes instead
of the previous wall-of-text license warning.
- **New integration tests**: Adds `integ-test-basic-cache-provider.yml`
workflow that seeds and verifies the basic cache provider across
platforms, plus unit tests for `BasicCacheService` and `getCacheService`
selection logic.
- **CI workflow reorganization**: Dependency-submission integration
tests extracted into their own reusable suite
(`suite-integ-test-dependency-submission.yml`); sample project tests
moved into the caching suite.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 21:36:01 -06:00
Daz DeBoer d341a58140 Remove configuration-cache docs 2026-04-02 12:01:48 -06:00
bot-githubaction 00c71e737e Bump references to Develocity Gradle plugin from 4.3.2 to 4.4.0 2026-03-31 22:34:44 -06:00
Daz DeBoer 263d8fe18e Enhance setup-gradle.md with validation details
Added a point about Gradle Wrapper files validation to the setup documentation.
2026-03-27 12:50:52 -06:00
Daz DeBoer f64284c333 Mute license warning when terms are accepted (#911)
With licensing changes in v6, a license warning was added to the logs
and job summary. Now, accepting the Build Scan Terms of Use or providing
a Develocity Access Key will mute this warning.
2026-03-24 08:46:15 -06:00
Daz DeBoer 8205114447 Update Gradle version compatibility information 2026-03-23 17:38:52 -06:00
Zongle Wang 310f24cf39 Bump actions used in docs (#792) 2026-03-23 11:53:33 -06:00
Daz DeBoer a0ee12f71e 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.
2026-03-18 14:57:27 -06:00
bot-githubaction 9d5155435d Bump references to Develocity Gradle plugin from 4.3.1 to 4.3.2 2026-02-10 11:04:52 -07:00
bot-githubaction 4211840687 Bump references to Develocity Gradle plugin from 4.3 to 4.3.1 2026-01-16 02:45:19 +00:00
bot-githubaction 109851ed81 Bump references to Develocity Gradle plugin from 4.2.2 to 4.3 2025-12-11 02:41:32 +00:00
bot-githubaction 8597be932e Bump references to Develocity Gradle plugin from 4.2.1 to 4.2.2 2025-10-14 02:33:12 +00:00
Jérôme Prinet 0e6f9058cf Upgrade gradle/actions to v5 (#749) 2025-10-07 14:20:41 +02:00
bot-githubaction 20f2038387 Bump references to Develocity Gradle plugin from 4.2 to 4.2.1 2025-10-03 02:30:48 +00:00
Jerome Prinet 6f229686ee Upgrade gradle/actions to v5 2025-10-01 12:23:40 +02:00
bot-githubaction 9d20965223 Bump references to Develocity Gradle plugin from 4.1.1 to 4.2 2025-09-17 02:31:01 +00:00
bot-githubaction 28e981403f Bump references to Develocity Gradle plugin from 4.1 to 4.1.1 2025-08-20 02:35:24 +00:00
bot-githubaction 109bc4e45d Bump references to Develocity Gradle plugin from 4.0.2 to 4.1 2025-07-28 16:58:37 +02:00
bot-githubaction 5c3326b6e6 Bump references to Develocity Gradle plugin from 4.0.1 to 4.0.2 2025-05-28 02:36:07 +00:00
Daz DeBoer f8c7f760b1 Mention that build-scan-publish does not force publishing 2025-05-02 08:22:31 -06:00
bot-githubaction e12df82938 Bump references to Develocity Gradle plugin from 4.0 to 4.0.1 2025-04-27 13:03:24 -06:00
Bot Githubactionanddaz e63ba6843c Bump references to Develocity Gradle plugin from 3.19.2 to 4.0 (#596)
This PR bumps references to Develocity Gradle plugin from 3.19.2 to 4.0.

---------

Co-authored-by: daz <daz@gradle.com>
2025-04-09 09:19:54 -06:00
Bot Githubactionanddaz 572d36861a Update develocity-injection init script to v2.0 (#593)
Updates the develocity-injection init script to the latest reference
script content
from https://github.com/gradle/develocity-ci-injection.

---------

Co-authored-by: daz <daz@gradle.com>
2025-04-04 13:39:30 -06:00
bot-githubaction bd8a9b1582 Bump references to Develocity Gradle plugin from 3.19.1 to 3.19.2 2025-02-19 02:27:57 +00:00
Daz DeBoer 986922f6a6 Update docs for dependency review (#540)
Due to an issue with dependency-review-action (https://github.com/gradle/actions/issues/482),
the setup described in the documentation can result in duplicate 
dependencies being added to the dependency graph.

To avoid this, we now recommend using a common `dependency-submission`
workflow for both pushes to `main` and pull requests. 
The `dependency-review` workflow runs on any `pull_request` but will wait
for the `dependency-submission` to complete.

This setup works for both the standard setup, and for the advanced setup for 
pull requests from repository forks.
2025-01-30 08:35:10 -07:00
Daz DeBoer 9a0c3c9368 Document GRADLE_ACTIONS_SKIP_BUILD_RESULT_CAPTURE (#529)
Fixes #28
2025-01-24 11:00:39 -07:00
Goooler 7569aee516 Uppercase cache-encryption-key
It's not recommended to use camel cases in secrets.
2025-01-24 08:56:35 -07:00
bot-githubaction b426ffebae Bump references to Develocity Gradle plugin from 3.19 to 3.19.1 2025-01-24 06:16:18 -07:00
Daz DeBoer 3bfa1140fc Update to CCUDGP 2.1 (#524)
This change primarily impacts test projects and documentation. The only
material impact is that CCUD 2.1 will now be auto-applied when
publishing Build Scans automatically with `build-scan-publish: true`.
(Develocity injection does not hard-code any CCUD version)
2025-01-21 21:34:02 -07:00
daz 245c8a24de Save dependency-graph file as workflow artifact
Diagnosing unexpected dependencies in the GitHub Dependency Graph can
be difficult. In order to aid with diagnosis, the `dependency-submission`
action will  now save each dependency-graph file as a workflow artifact.

If this is undesirable, the prior behaviour can be restored by explicitly setting
`dependency-graph: generate-and-submit`.

Fixes #519
2025-01-21 14:34:49 -07:00
daz 34d6b69184 Use latest DV plugin version in docs 2024-12-17 18:13:21 -07:00
bot-githubaction eda5a3331f Bump references to Develocity Gradle plugin from 3.18.2 to 3.19 2024-12-13 09:02:59 -07:00
Daz DeBoer b8d9a58677 Document wrapper-validation with Git LFS 2024-12-12 12:04:12 -07:00
Daz DeBoer 375738a38b Add link to GitHub docs 2024-12-10 10:50:29 -07:00
Sebastian Dyroff 00781cbaae Fix typo in documentation 2024-12-09 08:41:16 -07:00
Daz DeBoer fb5165dcd4 Add note about cache-encryption-key being required 2024-11-14 21:09:29 -07:00
Daz DeBoerandbot-githubaction 5f21a9bb99 Bump Gradle from 8.10.2 to 8.11 (#443)
Co-authored-by: bot-githubaction <bot-githubaction@gradle.com>
2024-11-14 13:48:42 -07:00
bot-githubaction 084b95f65a Bump references to Develocity Gradle plugin from 3.18.1 to 3.18.2 2024-11-14 09:26:53 -07:00
Daniel Shuy 9d68e8b435 Update build reports path for multi-project build 2024-11-11 11:16:22 -07:00
bot-githubaction 5fe9264c08 Bump references to Develocity Gradle plugin from 3.18 to 3.18.1 2024-09-12 19:55:39 -06:00
Daz DeBoer a122cf5aa7 Document develocity-token-expiry parameter
Fixes #367
2024-09-12 18:32:17 -06:00