spring-cloud / spring-cloud/spring-cloud-github-actions
Replace release-ci-settings.xml with maven-settings-action repository config
@ryanjbaxter がすでに取り組んでいます。
2026年8月1日 から。
- 主要言語
- 言語のデータがありません
- スター
- 0
- フォーク
- 0
- 平均マージ
- 2時間 31分
- マージ済み PR(30日)
- 6
説明
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-readyhas 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.ymldetects "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.xmlinadd-commercial-release-files - drop
--settings release-ci-settings.xml(MAVEN_SETTINGS) from the build commands - remove the
release-ci-settings.xmldeletion step fromspring-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
-
Replacement trigger.
deploy.ymlcurrently keys off the presence ofrelease-ci-settings.xmlto decide whether to apply commercial release settings. With the file gone this needs an explicit signal — most likely acommercial_release: trueinput passed from the generatedci-release.yml, which is clearer than sniffing for a file. -
Profile scoping changes. Today the commercial repos live inside
<profile id="spring">and only apply when-Pspringis active.s4u/maven-settings-actionwrites 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 OSSspring-snapshotsrepo must remain reachable — commercial Artifactory does not carry OSS snapshots. -
Backward compatibility. Branches created before this change will still have
release-ci-settings.xmlcommitted.deploy.ymlshould 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.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
評価
この issue はまだ評価されていません。