Merge branch '4.0.x'

This commit is contained in:
Ryan Baxter
2024-06-18 10:19:59 -04:00
616 changed files with 6029 additions and 52 deletions

View File

@@ -23,18 +23,18 @@ git pull origin jenkins-releaser-config
[start=2]
. Find the most recent release in the desired release train. In this document we will use: 2020_0_x.properties
. Create a copy of that file and set the name of the copy to <name-of-the-release>.properties (for example: 2020_0_2.properties)
. Edit this file and update all project versions to their latest release.
.. The latest release for each project can be determined by navigating to the individual Github project and checking for commits since the last release, where the last release is marked by a commit from spring-cloud-issues. If there are commits since the last release, change the value in the properties file. If there are no commits since the last release (i.e. the last commit is from spring-cloud-issues) then do not increment the value.
. Edit this file and update all project versions to their latest release.
.. The latest release for each project can be determined by navigating to the individual Github project and checking for commits since the last release, where the last release is marked by a commit from spring-cloud-issues. If there are commits since the last release, change the value in the properties file. If there are no commits since the last release (i.e. the last commit is from spring-cloud-issues) then do not increment the value.
. Make a note of the projects that did not increment their version number, as those projects will need to be specified later in the “RELEASER_PROJECTS_TO_SKIP” field in the Jenkins project spring-cloud-<release train>-meta-releaser
NOTE: Sometimes the release value for a project will need to be incremented by more than one,
NOTE: Sometimes the release value for a project will need to be incremented by more than one,
for example if there was a release for an individual project due to a CVE and there were commits made after that release. To determine the new version number, look for the latest version in the commit history from spring-cloud-issues.
[start=6]
. Commit the change
. Push the changes back to github. For example:
```bash
git push origin jenkins-releaser-config
git push origin jenkins-releaser-config
```
[start=8]
. Request that project owners verify versions in the Spring Cloud Slack room by sharing a github link to the 2020_0_x.properties you just pushed.
@@ -43,12 +43,12 @@ git push origin jenkins-releaser-config
NOTE: The builder project is required to run first because it is required for spring-cloud-function and spring-cloud-stream. All other spring-cloud builds will run after spring-cloud-function and spring-cloud-stream have performed a successful release
[start=10]
. Click `Build With Parameters` on the left side of page
. Click `Build With Parameters` on the left side of page
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools/main/docs/src/main/asciidoc/images/build-releaser-buildwithparams.png[Build With Params]
[start=11]
. In the RELEASE_VERSION column enter the name of the file you created without the properties extension
. In the RELEASE_VERSION column enter the name of the file you created without the properties extension
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools/main/docs/src/main/asciidoc/images/build-releaser-setreleaseversion.png[Set The Version]
@@ -57,12 +57,12 @@ image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools/main/docs/src/main/asciidoc/images/build-releaser-selectdryrun.png[Set Dry Run]
[start=13]
. Once the dry run is successfully complete we need to remove all of the artifacts from the dry run.
To do this select the `spring-cloud-purge-worker-artifacts-releaser` job from the list of jobs.
. Once the purge work has completed successfully,
. Once the dry run is successfully complete we need to remove all of the artifacts from the dry run.
To do this select the `spring-cloud-purge-worker-artifacts-releaser` job from the list of jobs.
. Once the purge work has completed successfully,
. Select Rebuild Last option on the left side of the page.
. Now go to the `spring-cloud-build-<release train>-version-releaser` job on Jenkins
, Select the last build
, Select the last build
. When build page appears click the `Rebuild` option.
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools/main/docs/src/main/asciidoc/images/build-releaser-selectlastrun.png[Select Last Run]
@@ -74,12 +74,12 @@ image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools
. Once Spring Cloud Stream and Function projects are released verify that all other builds are succeeding
. Now go to the `Spring-cloud-<release train>-meta-releaser` job on Jenkins. For example: `spring-cloud-Kilburn-meta-releaser`
. Click `Build With Parameters` on the left side of page
. Click `Build With Parameters` on the left side of page
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools/main/docs/src/main/asciidoc/images/meta-releaser-buildwithparameters.png[Build With Params]
[start=4]
. Update RELEASE_VERSION with the current release and corresponds to the release file.
. Update RELEASE_VERSION with the current release and corresponds to the release file.
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools/main/docs/src/main/asciidoc/images/meta-releaser-setreleaseversion.png[Set The Version]
@@ -100,7 +100,7 @@ NOTE: Spring Cloud K8s Integration tests may time out. Restart the build.
Select Rebuild Last option on the left side of the page.
[start=8]
. Upon a successful "DRY_RUN".
. Upon a successful "DRY_RUN".
. Click "Rebuild Last" option on the left side of the page.
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools/main/docs/src/main/asciidoc/images/meta-releaser-rebuildlast.png[Rebuild Last]
@@ -110,3 +110,69 @@ image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools
. Deselect “DRY_RUN” then click the build button.
. Clear the Start_From field
. Click Rebuild
=== Commercial Releases
See https://docs.google.com/document/d/10pk6b2Cy0OW9fzFKEHSRIys-2Z_rseqnu7CIYFXnJoM/edit#heading=h.slor8nyo3f1n[this document] from Trevor for more information on the requirement to create release bundles
and distribute the release artifacts to the edge repository.
==== Creating and Distributing Release Bundles
The releaser will create release bundles for individual project releases as well as when doing a release for the entire release train.
Release bundles and distribution of those bundles are disabled by default.
To enable the creation of project release bundles set `releaser.bundles.create-project-release-bundle=true`.
The task which creates individual project release bundles, `CreateProjectReleaseBundlePostReleaseTask`, is run when doing a
release of an individual project AND when doing a release train release.
To enable the creation of release train release bundles set `releaser.bundles.distribute-release-train-source-bundle`.
The task which creates a release train source bundle, `CreateReleaseTrainReleaseBundlePostReleaseTask`, is run as a release train
`PostReleaseTask`.
To distribute a project release bundle to the edge repo you must set `releaser.bundles.distribute-project-release-bundle=true`.
The task which distributes the release bundle to the edge repo, `DistributeProjectReleaseBundleTask`, runs as a project post release
task and runs after `CreateProjectReleaseBundlePostReleaseTask`. Unlike `CreateProjectReleaseBundlePostReleaseTask`, `DistributeProjectReleaseBundleTask`
*should not* be run during a release train release. This is because distributing the release train source release bundle will take care of
distributing all the individual project release bundles.
To distribute a release train source bundle to the edge repo you must set `releaser.bundles.distribute-release-train-source-bundle=true`.
The task which distributes release train release source bundles, `DistributeReleaseTrainSourceBundleTask`, runs as a release train post
release task.
*Release bundles and distribution of those bundles only occurs `releaser.commercial=true`, it is not a snapshot release, and is not a dry run.*
NOTE: Distribution of release bundles to the edge repo can only be done on a CI system like Jenkins.
==== Creating and Distributing Release Bundles On Jenkins
Our Jenkins jobs have been updated to allow the creation and distribution of release bundles for commercial releases.
When releasing individual projects you will see 2 new post release tasks in the job options
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools/main/docs/src/main/asciidoc/images/project_release_bundles.png[Project Release Bundles]
When these options are checked the correct properties will be passed to the releaser when run to create and distribute release bundles for an individual project release.
If you just want to create and distribute the release bundles for an individual project without doing an entire release make sure the two check boxes are checked and then
add `createReleaseBundle,distributeProjectReleaseBundleTask` in the `TASK_NAMES` field and specify the `RELEASE_VERSION` you want to create and distribute the release bundles for.
Similar options exist for the Jenkins jobs for the meta-release.
image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-release-tools/main/docs/src/main/asciidoc/images/meta_release_release_bundles.png[Release Train Source Release Bundles]
If you just want to create the release train source release bundles and distribute them without doing an entire release you can select `RELEASER_POST_RELEASE_ONLY`, uncheck the other post
release tasks in the job configuration, but leaving `RELEASER_PUBLISH_RELEASE_BUNDLES` and `DISTRIBUTE_RELEASE_BUNDLES` checked.
==== Verify Distribution Of Artifacts
Packages will be distributed to the edge repo at https://packages.broadcom.com/artifactory/spring-enterprise/org/springframework/cloud/[https://packages.broadcom.com/artifactory/spring-enterprise/org/springframework/cloud/].
To authenticate to that repo and verify the artifacts are present follow the instructions here[https://docs.vmware.com/en/Tanzu-Spring-Runtime/Commercial/Tanzu-Spring-Runtime/guide-artifact-repository-administrators.html#access-commercial-subscription].
NOTE: For Broadcom employees access to the Broadcom Customer Support Portal can be found under Okta.