spring-cloud / spring-cloud/spring-cloud-github-actions

Replace release-ci-settings.xml with maven-settings-action repository config

Aperta
#5 1 commento 0 reazioni 1 assegnatario Vedi su GitHub

@ryanjbaxter ci sta già lavorando.

Dal 1/8/2026.

Lingua principale
Nessun dato sulla lingua
Stelle
0
Fork
0
Merge medio
2h 31m
PR unite (30g)
6

Descrizione

Summary

Replace the release-ci-settings.xml file that is added to commercial release branches with s4u/maven-settings-action inputs in deploy.yml, so the commercial repository configuration is written to ~/.m2/settings.xml at runtime instead of being committed to the branch.

Not actionable yet — projects are mid-release using release-ci-settings.xml today. This is tracked for after those releases complete.

Motivation

Commercial release branches (release/<version> and the new <major>.<minor>.x-internal branches) get two files added during initialization by add-commercial-release-files: ci-release.yml and release-ci-settings.xml. The design goal is to avoid modifying any existing file so the branch merges back into the OSS repo cleanly.

release-ci-settings.xml still puts a file in the repo, which means:

  • spring-release-train-project-ready has to delete it before the release is finalised
  • it appears in branch history that later merges back to OSS
  • every build command has to carry --settings release-ci-settings.xml
  • deploy.yml detects "this is a commercial release branch" by sniffing for the file (if [[ -f "release-ci-settings.xml" ]]), which couples an unrelated concern to a file's existence

deploy.yml already runs s4u/maven-settings-action to write ~/.m2/settings.xml. At the currently pinned SHA (894661b3ddae382f1ae8edbeab60987e08cf0788) that action supports servers, repositories, pluginRepositories and mirrors — everything release-ci-settings.xml provides.

Proposed change

Map the contents of config/release-ci-settings.xml onto the action's inputs:

release-ci-settings.xml Action input
5 <server> entries (commercial + the repo.spring.io alias) servers (already used, extend it)
4 <repository> entries in the spring profile repositories
4 <pluginRepository> entries pluginRepositories

Then:

  • stop adding release-ci-settings.xml in add-commercial-release-files
  • drop --settings release-ci-settings.xml (MAVEN_SETTINGS) from the build commands
  • remove the release-ci-settings.xml deletion step from spring-release-train-project-ready
  • delete config/release-ci-settings.xml

Deploy targeting is unaffected — that is altSnapshotDeploymentRepository (MAVEN_DEPLOY_FLAGS), not settings.

Open questions to resolve during implementation

  1. Replacement trigger. deploy.yml currently keys off the presence of release-ci-settings.xml to decide whether to apply commercial release settings. With the file gone this needs an explicit signal — most likely a commercial_release: true input passed from the generated ci-release.yml, which is clearer than sniffing for a file.

  2. Profile scoping changes. Today the commercial repos live inside <profile id="spring"> and only apply when -Pspring is active. s4u/maven-settings-action writes repositories into a profile it activates unconditionally, so they would be visible to every Maven invocation in the job. Probably fine, but it is a behavioral difference. The OSS spring-snapshots repo must remain reachable — commercial Artifactory does not carry OSS snapshots.

  3. Backward compatibility. Branches created before this change will still have release-ci-settings.xml committed. deploy.yml should keep honouring the file for some transition period so in-flight release branches keep building.

Out of scope

This does not enable delegating to a project's own CI workflow (e.g. spring-cloud-kubernetes's maven.yaml with its sharded test matrix). s4u/maven-settings-action runs as a step and only affects Maven invocations in the same job, so a called reusable workflow running on a fresh runner is unaffected. That would still require editing the project's maven.yaml or .mvn/maven.config.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.