You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/release-automation.md
+112-3Lines changed: 112 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,7 @@ the seams are.
17
17
-[The OSS release, end to end](#the-oss-release-end-to-end)
18
18
-[The commercial release, and how it differs](#the-commercial-release-and-how-it-differs)
19
19
-[Hotfixes](#hotfixes)
20
+
-[Which actions each workflow uses](#which-actions-each-workflow-uses)
20
21
-[Everything else this repo runs](#everything-else-this-repo-runs)
21
22
-[This repository's own versioning](#this-repositorys-own-versioning)
22
23
-[Conventions](#conventions)
@@ -341,9 +342,9 @@ uses. They do not interfere.
341
342
4.**`new-milestones`** — open the next milestone per project
342
343
5.**`merge-back-and-update`** — merge the commercial `release/<version>` back into the OSS `.x`
343
344
branch, bump to next-snapshot versions, push, comment `@dependabot recreate` on superseded PRs
344
-
6.**`milestones-and-releases`** — close the release milestone
345
-
([`close-milestone`](../.github/actions/close-milestone/), which moves any still-open issues
346
-
forward so they are not stranded), publish the GitHub Release with generated notes
345
+
6.**`milestones-and-releases`** — close the release milestone (inline, via a `gh api ... --method
346
+
PATCH --field state=closed` call rather than the `close-milestone` action) and publish the
347
+
GitHub Release with generated notes
347
348
7.**`website-pr`** — PR against `spring-io/spring-website-content`: blog post and
348
349
`documentation.json`
349
350
8.**`start-site-pr`** — PR against `spring-io/start.spring.io` bumping the Initializr's Spring
@@ -659,6 +660,114 @@ would make it skip along with the merge-back, leaving a hotfix run doing nothing
659
660
660
661
---
661
662
663
+
## Which actions each workflow uses
664
+
665
+
The release workflows are thin: almost everything they do is a composite action from
666
+
[`.github/actions/`](../.github/actions/). This is the map of which workflow calls what, and why.
667
+
668
+
### `create-oss-release-branch.yml`
669
+
670
+
| Job | Action | What it does here |
671
+
|---|---|---|
672
+
|`init-internal-branch`|[`add-commercial-release-files`](../.github/actions/add-commercial-release-files/)| Writes `ci-release.yml` and `release-ci-settings.xml` onto the `-internal` branch |
673
+
|`init-internal-branch`|[`update-projects-json`](../.github/actions/update-projects-json/)| Registers the `-internal` branch, with `remove-oss-branch: false`|
674
+
|`init-internal-branch`|[`update-project-versions`](../.github/actions/update-project-versions/)| Stamps `-INTERNAL-SNAPSHOT` from the train's internal properties file |
675
+
|`update-release-branch`|[`add-commercial-release-files`](../.github/actions/add-commercial-release-files/)| Re-targets `ci-release.yml` at `release/<version>`|
676
+
|`create-milestone`|[`create-milestone`](../.github/actions/create-milestone/)| Opens the milestone — in the **OSS** repo |
677
+
|`ensure-workflows`|[`check-release-train-workflows`](../.github/actions/check-release-train-workflows/)| Reports which release-train workflows are missing |
678
+
|`ensure-workflows`|[`generate-workflows-for-branch`](../.github/actions/generate-workflows-for-branch/)| Runs the external generator when any are |
679
+
680
+
### `create-commercial-release-branch.yml`
681
+
682
+
| Job | Action | What it does here |
683
+
|---|---|---|
684
+
|`join-release-train`|[`is-commercial-repo`](../.github/actions/is-commercial-repo/)| Gates the whole run, and yields `base-repo-name` for the OSS tag check |
685
+
|`join-release-train`|[`check-release-train-workflows`](../.github/actions/check-release-train-workflows/)|`fail-on-missing: 'true'`, before anything is created |
686
+
|`join-release-train`|[`create-milestone`](../.github/actions/create-milestone/)| Opens the milestone — in the **commercial** repo |
687
+
|`join-release-train`|[`update-oss-workflows-to-commercial`](../.github/actions/update-oss-workflows-to-commercial/)| Rewrites `ci.yml` / `pr.yml` on the release branch |
Note what is absent: no `update-project-versions`. This path stamps nothing — versions stay as
691
+
they are until readiness.
692
+
693
+
### `create-hotfix-release-branch.yml`
694
+
695
+
| Job | Action | What it does here |
696
+
|---|---|---|
697
+
|`initialize`|*calls*[`initialize-commercial-branch.yml`](../.github/workflows/initialize-commercial-branch.yml)| The whole commercial-setup chain — see below |
698
+
|`update-versions`|[`update-project-versions`](../.github/actions/update-project-versions/)| First pass: dependency versions from a release train, when `release_train_version` is given |
699
+
|`update-versions`|[`update-project-versions`](../.github/actions/update-project-versions/)| Second pass: stamps the hotfix project version, always |
700
+
|`create-milestone`|[`create-milestone`](../.github/actions/create-milestone/)| Opens the milestone — in the **commercial** repo |
701
+
|`ensure-workflows`|[`check-release-train-workflows`](../.github/actions/check-release-train-workflows/)| Reports which release-train workflows are missing |
702
+
|`ensure-workflows`|[`generate-workflows-for-branch`](../.github/actions/generate-workflows-for-branch/)| Runs the external generator when any are |
703
+
704
+
The `initialize` job pulls in a second workflow, which runs nine actions of its own in order —
0 commit comments