2020-04-28 20:25:04 +08:00
== Spring Framework Concourse pipeline
2021-03-03 18:36:09 +08:00
The Spring Framework uses https://concourse-ci.org/[Concourse] for its CI build and other automated tasks.
The Spring team has a dedicated Concourse instance available at https://ci.spring.io with a build pipeline
2021-10-11 22:22:30 +08:00
for https://ci.spring.io/teams/spring-framework/pipelines/spring-framework-6.0.x[Spring Framework 6.0.x].
2020-04-28 20:25:04 +08:00
=== Setting up your development environment
If you're part of the Spring Framework project on GitHub, you can get access to CI management features.
First, you need to go to https://ci.spring.io and install the client CLI for your platform (see bottom right of the screen).
You can then login with the instance using:
[source]
----
$ fly -t spring login -n spring-framework -c https://ci.spring.io
----
Once logged in, you should get something like:
[source]
----
$ fly ts
name url team expiry
spring https://ci.spring.io spring-framework Wed, 25 Mar 2020 17:45:26 UTC
----
=== Pipeline configuration and structure
2021-03-03 18:36:09 +08:00
2020-04-28 20:25:04 +08:00
The build pipelines are described in `pipeline.yml` file.
2021-03-03 18:36:09 +08:00
2020-04-28 20:25:04 +08:00
This file is listing Concourse resources, i.e. build inputs and outputs such as container images, artifact repositories, source repositories, notification services, etc.
2021-03-03 18:36:09 +08:00
2020-04-28 20:25:04 +08:00
It also describes jobs (a job is a sequence of inputs, tasks and outputs); jobs are organized by groups.
The `pipeline.yml` definition contains `((parameters))` which are loaded from the `parameters.yml` file or from our https://docs.cloudfoundry.org/credhub/[credhub instance].
You'll find in this folder the following resources:
2021-03-03 18:36:09 +08:00
2020-04-28 20:25:04 +08:00
* `pipeline.yml` the build pipeline
* `parameters.yml` the build parameters used for the pipeline
* `images/` holds the container images definitions used in this pipeline
* `scripts/` holds the build scripts that ship within the CI container images
* `tasks` contains the task definitions used in the main `pipeline.yml`
=== Updating the build pipeline
Updating files on the repository is not enough to update the build pipeline, as changes need to be applied.
2021-03-03 18:36:09 +08:00
2020-04-28 20:25:04 +08:00
The pipeline can be deployed using the following command:
[source]
----
2021-10-11 22:22:30 +08:00
$ fly -t spring set-pipeline -p spring-framework-6.0.x -c ci/pipeline.yml -l ci/parameters.yml
2020-04-28 20:25:04 +08:00
----
2021-03-03 18:36:09 +08:00
NOTE: This assumes that you have credhub integration configured with the appropriate secrets.