Skip to content

Migrate to the OSS Community Develocity Instance#2381

Merged
leonard84 merged 3 commits into
spockframework:masterfrom
gabrielfeo:dv/onboard-oss-community-minimal
Jun 18, 2026
Merged

Migrate to the OSS Community Develocity Instance#2381
leonard84 merged 3 commits into
spockframework:masterfrom
gabrielfeo:dv/onboard-oss-community-minimal

Conversation

@gabrielfeo

@gabrielfeo gabrielfeo commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

This PR moves Spock's Build Scan publishing and remote Build Cache from
the self-hosted ge.spockframework.org instance to the OSS Community
Develocity Instance
at https://community.develocity.cloud under
project ID spockframework.

What this PR changes

  • settings.gradle: new Develocity server URL and Project-Level Access
    Control ID.
  • README.adoc: "Revved up by Develocity" badge link
  • GitHub Actions workflows: renamed GRADLE_ENTERPRISE_ACCESS_KEY
    to DEVELOCITY_ACCESS_KEY

Nothing else is touched: plugin versions, the Terms-of-Use fallback for
unauthenticated CI runs / --scan and the HTTP build cache fallback are all
preserved.

Step 1: Get an access key for community.develocity.cloud

  1. Visit https://community.develocity.cloud.
  2. Sign in as the CI service account that the Develocity Solutions
    team has provisioned for spockframework
    — that account was shared
    with you out-of-band when this onboarding was set up. The access key
    inherits that account's project memberships and permissions, which
    is exactly what you want for CI.
  3. From the user menu in the top-right, open My settingsAccess
    keys
    .
  4. Click Generate access key, give it a description (e.g.
    GitHub Actions), and copy the generated key. Keep this tab open
    until you complete Step 2 — the key is only shown once.

Step 2: Add the DEVELOCITY_ACCESS_KEY secret on this repository

CI exposes a repository secret named DEVELOCITY_ACCESS_KEY
to the build as DEVELOCITY_ACCESS_KEY (via
.github/workflows/common.main.kts). The secret name stays the
same; only the value needs to change to point at the new instance.

  1. Open this repository on GitHub.

  2. Click Settings.

  3. In the left sidebar, click Secrets and variablesActions.

  4. Find the DEVELOCITY_ACCESS_KEY secret and click Update.

  5. Set the new value to the line below, replacing
    PASTE_THE_ACCESS_KEY_FROM_STEP_1_HERE with the key you copied in
    Step 1:

    community.develocity.cloud=PASTE_THE_ACCESS_KEY_FROM_STEP_1_HERE
    

    The community.develocity.cloud= prefix is required — without
    the host name, the access key is silently ignored. This is the most
    common point of failure when onboarding, so please double-check the
    format.

  6. Click Update secret.

Step 3: Provision an access key for your local builds

Developers building spock locally should provision a personal access
key for community.develocity.cloud so their Build Scans publish and
they get reads from the remote Build Cache. The Develocity Gradle
plugin's provisionDevelocityAccessKey task does this in a single
command — it opens the browser, asks the developer to confirm, and
writes the key to ~/.gradle/develocity/keys.properties automatically.

Before running this command, sign out of
community.develocity.cloud in your browser (or use a
private/incognito window) so the access key gets associated with
your personal account, not the CI service account you signed in
as for Step 1.

./gradlew provisionDevelocityAccessKey

Note on the CI run on this PR

This PR was prepared from a fork. Forks can't read this repository's
secrets, which means the workflow run on this PR cannot publish to
community.develocity.cloud. If you'd rather see a scan published to
the new instance before merging, you're welcome to reopen this PR from
your own account.

Point Develocity server URL to https://community.develocity.cloud
and tag scans with projectId "spockframework", replacing the
self-hosted ge.spockframework.org instance. README badge link
updated to match.

The ToU fallback for unauthenticated CI runs and locally-requested
scans is preserved as-is.
@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 339dab16-027f-4060-b6c2-d5e791c9c96d

📥 Commits

Reviewing files that changed from the base of the PR and between 4b80ebe and 8aec753.

📒 Files selected for processing (1)
  • settings.gradle
🚧 Files skipped from review as they are similar to previous changes (1)
  • settings.gradle

📝 Walkthrough

Walkthrough

The Develocity server endpoint is migrated from https://ge.spockframework.org to https://community.develocity.cloud in build configuration and documentation. GitHub Actions workflows are updated to use the DEVELOCITY_ACCESS_KEY secret instead of the deprecated GRADLE_ENTERPRISE_ACCESS_KEY across multiple jobs and build steps.

Changes

Develocity Server and Secret Migration

Layer / File(s) Summary
Build configuration and README badge update
settings.gradle, README.adoc
develocityServer is changed to https://community.develocity.cloud, projectId = "spockframework" is added to the develocity configuration block, and the README badge link is updated to the new host.
GitHub Actions workflows secret migration
.github/workflows/common.main.kts, .github/workflows/branches-and-prs.yaml, .github/workflows/release.yaml
All GitHub Actions workflows are updated to source DEVELOCITY_ACCESS_KEY from secrets instead of GRADLE_ENTERPRISE_ACCESS_KEY. The common credential script binding is renamed, branches-and-prs build step is updated, and release workflow's Build, Publish, and Docs steps are aligned with the new secret name.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Suggested reviewers

  • Vampire

Poem

🐇 Hop, hop, the server has moved!
From ge.spockframework we've grooved,
To community.develocity.cloud so grand,
With projectId and secrets so planned,
The workflows and badge—all approved! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely describes the main change: migrating to the OSS Community Develocity Instance, which aligns perfectly with all changeset modifications.
Description check ✅ Passed The description comprehensively explains the migration purpose, code changes, preserved configurations, and provides clear step-by-step instructions for completing the migration setup.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps

greptile-apps Bot commented Jun 17, 2026

Copy link
Copy Markdown

Greptile Summary

This PR migrates Spock's Develocity Build Scan publishing and remote Build Cache from the self-hosted ge.spockframework.org instance to the OSS Community Develocity Instance at community.develocity.cloud, adding the required projectId for the multi-tenant hosting environment.

  • settings.gradle: Updates develocityServer URL and adds projectId = "spockframework" to the develocity {} block; all other configuration (auth fallback, build cache push policy, obfuscation, unauthenticated --scan path) is unchanged.
  • README.adoc: Updates the "Revved up by Develocity" badge link to the community instance, scoped to the spockframework project via a query parameter.

Confidence Score: 5/5

Straightforward infrastructure migration with two targeted changes; no build logic altered.

Both changes are minimal and correct: the new server URL and projectId are the right way to onboard to the OSS Community Develocity Instance, the existing auth/fallback/obfuscation logic is untouched, and the README badge URL now correctly scopes to the spockframework project on the shared host. The unauthenticated build-cache fallback also naturally follows the server URL update, which is the intended behavior.

No files require special attention.

Important Files Changed

Filename Overview
settings.gradle Server URL and projectId updated; unauthenticated fallback, build cache push policy, and all other settings preserved correctly.
README.adoc Badge link updated to community instance with project-scoped query parameter; no other content changed.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Gradle Build] --> B{buildScan flag OR\nCI + no access key?}
    B -- Yes --> C[termsOfUseUrl = gradle.com\nPublish to scans.gradle.com]
    B -- No --> D[server = community.develocity.cloud\nonlyIf authenticated]
    D --> E[Authenticated build scan\npublished to community.develocity.cloud\nprojectId = spockframework]

    A --> F{Same condition\nfor Build Cache}
    F -- Yes --> G[HttpBuildCache\ncommunity.develocity.cloud/cache/\npush = false]
    F -- No --> H[develocity.buildCache\npush = isCiServer]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Gradle Build] --> B{buildScan flag OR\nCI + no access key?}
    B -- Yes --> C[termsOfUseUrl = gradle.com\nPublish to scans.gradle.com]
    B -- No --> D[server = community.develocity.cloud\nonlyIf authenticated]
    D --> E[Authenticated build scan\npublished to community.develocity.cloud\nprojectId = spockframework]

    A --> F{Same condition\nfor Build Cache}
    F -- Yes --> G[HttpBuildCache\ncommunity.develocity.cloud/cache/\npush = false]
    F -- No --> H[develocity.buildCache\npush = isCiServer]
Loading

Reviews (1): Last reviewed commit: "Migrate build scans to OSS Community Dev..." | Re-trigger Greptile

@leonard84 leonard84 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good opportunity to rename the secret from GRADLE_ENTERPRISE_ACCESS_KEY to DEVELOCITY_ACCESS_KEY. The GE will have the old credentials, and the new DV one is set up for the new instance. Could you modify the workflow accordingly?

Comment thread settings.gradle
}

develocity {
projectId = "spockframework"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we now limited to a single project? Otherwise, this should probably be spockframework/spock or spockframework-spock if / is not allowed.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not 1:1 with Gradle projects and different from rootProject.name. You can have multiple Gradle projects using this same projectId. The projectId refers to an isolated namespace in terms of build scans and build cache that only your users are authorized to write to (Project-Level Access Control). It was named after the spockframework GitHub org. Does this clarify? Let me know if the name makes sense considering this.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I checked the docs first, but they don't make this clear.

Then, it should stay this way.

@gabrielfeo gabrielfeo changed the title Migrate build scans to the OSS Community Develocity Instance Migrate to the OSS Community Develocity Instance Jun 17, 2026
The Gradle Enterprise to Develocity rename is now several years old,
and the OSS Community Develocity migration is a natural point to retire
the legacy secret name. Update common.main.kts to declare the secret
as DEVELOCITY_ACCESS_KEY and regenerate the affected workflow YAMLs.
@gabrielfeo gabrielfeo requested a review from leonard84 June 17, 2026 17:32

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/common.main.kts:
- Around line 35-39: Change the source of the DEVELOCITY_ACCESS_KEY variable
assignment on line 35 from secrets.DEVELOCITY_ACCESS_KEY to
secrets.GRADLE_ENTERPRISE_ACCESS_KEY, reading from the legacy secret name
instead. Keep the commonCredentials mapping unchanged so that the value is still
mapped to the new DEVELOCITY_ACCESS_KEY environment variable name. This ensures
CI reads from the existing legacy secret while correctly mapping it to the new
environment variable during the migration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f001dde7-1dcb-4acd-8214-a42546828a20

📥 Commits

Reviewing files that changed from the base of the PR and between 55aa69f and 4b80ebe.

📒 Files selected for processing (3)
  • .github/workflows/branches-and-prs.yaml
  • .github/workflows/common.main.kts
  • .github/workflows/release.yaml

Comment thread .github/workflows/common.main.kts
@leonard84 leonard84 self-assigned this Jun 18, 2026
@leonard84 leonard84 enabled auto-merge (squash) June 18, 2026 08:20
@leonard84 leonard84 merged commit a9efe63 into spockframework:master Jun 18, 2026
37 checks passed
@codecov

codecov Bot commented Jun 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.33%. Comparing base (4d983c4) to head (8aec753).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##             master    #2381   +/-   ##
=========================================
  Coverage     82.32%   82.33%           
- Complexity     4876     4878    +2     
=========================================
  Files           474      474           
  Lines         15205    15205           
  Branches       1935     1935           
=========================================
+ Hits          12518    12519    +1     
  Misses         1993     1993           
+ Partials        694      693    -1     

see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@gabrielfeo gabrielfeo deleted the dv/onboard-oss-community-minimal branch June 19, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants