Commit Graph

59 Commits

Author SHA1 Message Date
Stéphane Nicoll
b82a0dd31a Polish "Move CI and snapshot deployment to GitHub actions"
See gh-32436
2024-03-14 15:16:02 +01:00
Stéphane Nicoll
b7280400ee Move CI and snapshot deployment to GitHub actions
Closes gh-32436
2024-03-14 15:01:26 +01:00
Brian Clozel
f440d8719c Prepare JDK 23 early access build in CI
See gh-32090
2024-02-21 18:23:38 +01:00
Brian Clozel
564803f56a Trigger JDK 22 builds every morning in CI
Closes gh-31459
2023-12-19 18:39:23 +01:00
Brian Clozel
c73c16f07f Configure JDK 22 compatibility build on CI
This commit does not enable this build right now as testing libraries
are not ready yet for JDK 22.

See gh-31459
2023-10-19 13:59:13 +02:00
Brian Clozel
b02e1bb935 Update CI pipeline for api docs publication
See gh-31049
2023-09-07 17:00:20 +02:00
Brian Clozel
c93ae250f9 Stop publishing distribution zip artifact
Prior to this commit, the Spring Framework build would publish several
zip artifacts:

* a "*-schema.zip" containing all the XSD schemas produced
* a "*-docs.zip" containing the API docs
* a "*-dist.zip" containing all of the above, plus module jars

Since the reference docs are now produced by Antora in a separate
process, the "*-docs.zip" does not contain the reference docs anymore.
But it still contains the API docs which are automatically fetched from
the artifact repository and published on the docs.spring.io website.

This commit intends to update the current arrangement and optimize the
build.

First, the "*-dist.zip" is not published anymore, since it cannot be
consumed anyway by the community: repo.spring.io does not distribute
release artifacts publicly, developers are expected to get them from
Maven Central. This arrangement is quite dated anyway and is not really
useful in current application build setups.

The generation of API docs is moved to a new "framework-api" module,
separating it from the reference docs module ("framework-docs") which
contains Java, Kotlin and Asciidoctor sources. This removes the custom
javadoc aggregation task and instead uses a dedicated Gradle plugin.

This change also adds a new `-PskipDocs` Gradle project property that
skips entirely the documentation tasks (javadoc, kdocs) as well as the
"distrbution" tasks managed in the framework-api module.
This allows developers to publish locally a SNAPSHOT of Spring Framework
without creating the entire documentation distribution. This is
particularly useful for local testing.

For example, `$ ./gradlew pTML -PskipDocs`.

Closes gh-31049
2023-08-30 12:15:23 +02:00
Brian Clozel
6dbd446fc8 Update CI pipeline 2023-05-25 19:17:29 +02:00
Brian Clozel
a66f3e02f4 Upgrade CI Concourse resources 2023-04-14 10:39:39 +02:00
Brian Clozel
63e20404a2 Configure JDK 21 CI build
This commit replaces the JDK 20 compatibility build with a JDK 21 (early
access) variant.

See gh-30339
2023-04-14 10:35:51 +02:00
Brian Clozel
d9776941bf Update Java version for compatibility tests in CI
This commit configures Java 20 for compatibility tests in our CI,
replacing Java 19.
2023-03-23 15:47:06 +01:00
Brian Clozel
eff1a1a664 Upgrade to Artifactory Resource 0.0.18 2023-02-03 00:38:57 +01:00
Brian Clozel
8838e0d825 Use Docker Hub credentials for CI release tasks 2023-02-03 00:34:58 +01:00
Brian Clozel
41aeb07585 Rely only on Docker Hub for fetching OCI images 2023-02-02 20:56:50 +01:00
Brian Clozel
e725e3a51b Update Java versions and remove Java 18 build 2023-01-19 09:40:25 +01:00
Brian Clozel
676f163546 Fix Artifactory configuration for docs deployment
This commit aligns the Artifactory configuration with the changes
applied in gh-29417.
In order to be deployed, docs artifacts must have specific properties
attached to them.

See gh-29417
2022-11-02 11:42:49 +01:00
Brian Clozel
3d795ab986 Add Java 19 daily build to CI pipeline 2022-10-02 16:24:10 +02:00
Brian Clozel
68bb4023eb Merge branch '5.3.x' 2022-05-03 16:12:42 +02:00
Brian Clozel
7aedb9ee33 Build CI image using oci-build-task resource 2022-05-03 15:50:29 +02:00
Brian Clozel
c68665980f Merge branch '5.3.x' 2022-05-03 15:11:23 +02:00
Brian Clozel
5b1719cd77 Upgrade CI to concourse-release-scripts 0.3.4 2022-05-03 15:09:23 +02:00
Brian Clozel
dbdd67ec62 Remove outdated docker-image resource from CI
The docker-image resource is now replaced by the registry-image
resource.
2022-05-03 15:05:58 +02:00
Brian Clozel
f52920142b Merge branch '5.3.x' 2022-04-04 19:01:28 +02:00
Brian Clozel
270b167e08 Upgrade registry-image-resource in CI pipeline to 1.5.0
See spring-projects/spring-boot#30408
2022-04-04 19:01:03 +02:00
Brian Clozel
2a0ec0b2dd Merge branch '5.3.x' 2022-02-14 10:56:44 +01:00
Brian Clozel
0ab054c7b9 Upgrade concourse-release-scripts in CI
This commit also reverts the change of resource type for the publication
of the CI image and fixes a bug in the CI image setup with available
JDKs.
2022-02-14 10:55:07 +01:00
Brian Clozel
70269addb7 Merge branch '5.3.x' 2022-02-14 10:38:41 +01:00
Brian Clozel
2f78abd56e Upgrade CI pipeline
This commit upgrades the CI pipeline with the following:

* replace JDK16 with JDK17 as build variant
* upgrade all JDK versions
* replace docker-image with registry-image resource for CI image
2022-02-14 10:29:45 +01:00
Brian Clozel
65bf5f7c81 Add JDK18 variant to CI pipeline
This commit adds a new JDK 18 variant to the CI build image and
configures a JDK18 build (sources compiled with JDK17, tests compiled
and run with JDK18) to the CI pipeline.

Closes gh-27607
2021-10-25 10:02:39 +02:00
Stephane Nicoll
d16574f807 Merge branch '5.3.x' 2021-10-11 16:21:14 +02:00
Stephane Nicoll
83eac9af18 Upgrade CI to github-release resource 1.5.5
Closes gh-27459
2021-10-11 16:18:35 +02:00
Brian Clozel
c0e479460e Switch CI pipeline to a JDK17 baseline
This commit introduces a new `spring-framework-6.0.x` CI pipeline with
JDK 17 baseline.

Note that Kotlin still uses a JDK11 baseline for now, this will be
addressed in gh-27413.

Closes gh-27409
2021-09-15 12:37:10 +02:00
Stephane Nicoll
4c720eaa38 Fix GitHub credentials to use token rather than password
Closes gh-27402
2021-09-15 08:41:10 +02:00
Brian Clozel
532b4b636d Update CI pipeline with JDK16
This commit replaces the JDK15 build with a JDK16 variant.
This also updates the CI image with a new OS version and updated
JDK versions.
2021-09-06 18:13:41 +02:00
Brian Clozel
a522ed0788 Fix task parameters in CI build pipeline
Prior to this commit, the task parameters for the CI project checks were
overridden by a task anchor. This commit splits the anchor declaration
and ensures that the `TEST_TOOLCHAIN` setting is set for the JDK
variant builds.

See gh-25787
2021-05-04 11:48:17 +02:00
Brian Clozel
85eb589c2e Fix Gradle Java Toolchain configuration
This commit fixes various issues with the configuration of the Gradle
Java toolchain in the build.

First, the configuration of build properties is fixed in the CI pipeline
because it wasn't properly checked.
The JMH plugin is also upgraded and we now configure its toolchain
support.
This commit also rewrites the XJC tasks in the spring-oxm module,
leveraging a Gradle plugin that creates actual compile tasks we can
configure.

See gh-25787
2021-05-03 15:02:09 +02:00
Stephane Nicoll
4c7cc705de Build PRs on CI
Closes gh-26882
2021-04-30 09:38:30 +02:00
Brian Clozel
14a6909c4a Fix release pipeline for Maven Central publication
This commit fixes the missing pieces in our Maven Central publication
pipeline. Our first attempt at releasing with it showed a few problems:

* the promote task did not have the artifacts downladed with the
  artifactory repository
* we applied the wrong Sonatype credentials to the task
* the github changelog task would fail because of docker rate limiting
  since we were not using the right type of resource, which is
  configured with the proper caching mechanism

See gh-26654
2021-03-16 13:04:11 +01:00
Brian Clozel
a8d553218c Introduce Gradle Toolchain support in build
Prior to this commit, the Spring Framework build would rely on
setting a custom Java HOME for building all sources and tests
with that JDK.

This approach is not flexible enough, since we would be testing
the source compatibility against a recent JDK, but not a common
case experienced by the community: compiling and running
application code with a recent JDK and the official, JDK8-based
Framework artifacts.
This method is also limiting our choice of JDKs to the ones
currently supported by Gradle itself.

This commit introduces the support of Gradle JVM Toolchains in
the Spring Framework build.

We can now select a specific JDK for compiling the main
SourceSets (Java, Groovy and Kotlin) and another one for
compiling and running the test SourceSets:

`./gradlew check -PmainToolChain=8 -PtestToolchain=15`

Gradle will automatically find the JDKs present on the host or
download one automcatically. You can find out about the ones
installed on your host using:

`./gradlew -q javaToolchains`

Finally, this commit also refactors the CI infrastructure to:

* only have a single CI image (with all the supported JDKs)
* use this new feature to compile with JDK8 but test it
against JDK11 and JDK15.

Closes gh-25787
2021-03-15 14:33:41 +01:00
Stephane Nicoll
61cdd647b6 Fix image name for JDK 15 build 2021-03-10 14:17:37 +01:00
Stephane Nicoll
f6d3d9d6e6 Polish CI pipeline 2021-03-10 13:59:30 +01:00
Brian Clozel
ed71fe0460 Publish directly to Maven Central
This commit skips the Bintray-related tasks in our CI pipeline and
instead relies on Maven Central for publishing Spring Framework
artifacts.

This commit also updates the CI pipeline to sign the artifacts directly
with the `artifactory-resource`.

Closes gh-26654
2021-03-09 15:30:06 +01:00
Brian Clozel
657641ebaa Remove JDK14 CI variant from build pipeline 2020-12-11 11:08:33 +01:00
Brian Clozel
5efa4ad442 Pull images with registry-image resource in build 2020-12-07 20:38:07 +01:00
Brian Clozel
0df6d60fea Fix GitHub icon in build pipeline 2020-10-16 15:29:50 +02:00
Brian Clozel
6d4b286b1a Generate release notes in release pipeline
This commit adds new tasks to the release pipeline, generating release
notes automatically using the issues in the current milestone and
pushing that as the content of the GitHub release.

Closes gh-25922
2020-10-16 14:51:44 +02:00
Brian Clozel
970afbc614 Remove Slack "here" mentions for failed builds
This was introduced by mistake in 6b978cb5dc
2020-10-16 14:51:44 +02:00
Brian Clozel
b7d1bbb991 Configure Concourse release pipeline
Closes gh-25911
2020-10-15 18:06:37 +02:00
Brian Clozel
6b978cb5dc Refactor Concourse pipeline
Extract duplicate snippets as document anchors.
2020-10-15 18:02:00 +02:00
Stephane Nicoll
e9065402f2 Update CI pipeline to release RCs 2020-09-15 15:32:51 +02:00