Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move CI to Concourse #22490

Closed
snicoll opened this issue Feb 28, 2019 · 2 comments
Closed

Move CI to Concourse #22490

snicoll opened this issue Feb 28, 2019 · 2 comments
Assignees
Labels
type: task A general task
Milestone

Comments

@snicoll
Copy link
Member

snicoll commented Feb 28, 2019

A number of teams have moved their builds to https://ci.spring.io/ and crafted/shared scripts to automate the release process. That part alone is interesting as it is vastly superior to what the Bamboo integration can do.

I suggest we harmonize here as well, moving our master branch to Concourse, potentially cherry-picking in the 5.1.x branch depending on the outcome of that work.

@bclozel bclozel self-assigned this Mar 24, 2020
@bclozel bclozel added this to the 5.3 M1 milestone Mar 24, 2020
bclozel added a commit that referenced this issue Apr 28, 2020
As we're moving the build to Concourse CI, we don't need to use the
Artifactory plugin anymore. Our build will publish the artifacts to a
repository on the local filesystem and will push its content to
Artifactory with the spring-io/artifactory-resource.

This commit also adds the conditional configuration for publishing to a
local repository.

See gh-22490
bclozel added a commit that referenced this issue Apr 28, 2020
This commit adds the Concourse build infrastructure under the "ci/"
folder. It contains:

* "images/", the definitions of container images used in the pipeline
* "pipeline.yml" the build pipeline definition
* "parameters.yml" the parameters for the pipeline definition
* "tasks/" the tasks used by the build pipeline
* "scripts/" scripts used by pipeline tasks

This first iteration of the Concourse pipeline builds CI container
images for JDK8, JDK11, JDK14 and JDK15.
These images are used for building and publishing the master branch of
Spring Framework using JDK8. Other JDK variants are sanity checks and
don't actually publish the produced artifacts.

See gh-22490
bclozel added a commit that referenced this issue Apr 28, 2020
This commit updates the build pipeline to only run the checks
(formatting and tests) with the build when non-JDK8 variants are used
for sanity checks.

See gh-22490
bclozel added a commit that referenced this issue Apr 28, 2020
@bclozel
Copy link
Member

bclozel commented Apr 28, 2020

I've done a first round of changes on master and we're publishing SNAPSHOTs with Concourse now. We also JDK variants (JDK11, JDK14 and JDK15) testing our build once a day.

I'm not closing this issue now as I'm working on the release pipeline now.

bclozel added a commit that referenced this issue Apr 29, 2020
The git repository input was missing.

See gh-22490
bclozel added a commit that referenced this issue Apr 29, 2020
This is required for exporting the Gradle Build Scan URL to
notifications.

See gh-22490
bclozel added a commit that referenced this issue Apr 29, 2020
This commit fixes the file pattern for the published zip artifacts.
Prior to this commit, the pattern was wrong and properties were not
applied to the published archives, preventing them from being published
automatically (javadoc, reference documentation, schemas...).

See gh-22490
bclozel added a commit that referenced this issue Apr 29, 2020
This commit ensures that the build directory exists before writing the
build scan URL to it. This is useful when the `clean` task is executed
and the build folder is gone by the time the execution is done.

See gh-22490
@bclozel
Copy link
Member

bclozel commented May 5, 2020

Next steps:

@bclozel bclozel closed this as completed in 5af3223 May 7, 2020
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
As we're moving the build to Concourse CI, we don't need to use the
Artifactory plugin anymore. Our build will publish the artifacts to a
repository on the local filesystem and will push its content to
Artifactory with the spring-io/artifactory-resource.

This commit also adds the conditional configuration for publishing to a
local repository.

See spring-projectsgh-22490
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
This commit adds the Concourse build infrastructure under the "ci/"
folder. It contains:

* "images/", the definitions of container images used in the pipeline
* "pipeline.yml" the build pipeline definition
* "parameters.yml" the parameters for the pipeline definition
* "tasks/" the tasks used by the build pipeline
* "scripts/" scripts used by pipeline tasks

This first iteration of the Concourse pipeline builds CI container
images for JDK8, JDK11, JDK14 and JDK15.
These images are used for building and publishing the master branch of
Spring Framework using JDK8. Other JDK variants are sanity checks and
don't actually publish the produced artifacts.

See spring-projectsgh-22490
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
This commit updates the build pipeline to only run the checks
(formatting and tests) with the build when non-JDK8 variants are used
for sanity checks.

See spring-projectsgh-22490
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
The git repository input was missing.

See spring-projectsgh-22490
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
This is required for exporting the Gradle Build Scan URL to
notifications.

See spring-projectsgh-22490
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
This commit fixes the file pattern for the published zip artifacts.
Prior to this commit, the pattern was wrong and properties were not
applied to the published archives, preventing them from being published
automatically (javadoc, reference documentation, schemas...).

See spring-projectsgh-22490
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
This commit ensures that the build directory exists before writing the
build scan URL to it. This is useful when the `clean` task is executed
and the build folder is gone by the time the execution is done.

See spring-projectsgh-22490
kenny5he pushed a commit to kenny5he/spring-framework that referenced this issue Jun 21, 2020
This commit finishes the first step for migrating our complete build and
release pipeline to Concourse CI.

We're creating here a new "Release" jobs group in our pipeline.
We can now release Milestones from our pipeline with:

* the "stage-milestone" job, which creates and tags a new Milestone
version on the source repository, builds the artifacts and deploys them
in a staging repository and updates the version to the next SNAPSHOT.

* the "promote-milestone" fetches the build information from the staging
repository and promotes the released milestone in the official milestone
repository.

Interactions with the Artifactory and Bintray REST APIs are done using
the https://github.com/spring-io/concourse-release-scripts project.

Closes spring-projectsgh-22490
snicoll added a commit that referenced this issue Mar 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: task A general task
Projects
None yet
Development

No branches or pull requests

2 participants