52 lines
2.4 KiB
Plaintext
52 lines
2.4 KiB
Plaintext
== Spring for GraphQL Concourse pipeline
|
|
|
|
The Spring for GraphQL project is using 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.
|
|
|
|
=== Setting up your development environment
|
|
|
|
If you're part of the Spring for GraphQL team 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-graphql login -n spring-graphql -c https://ci.spring.io
|
|
----
|
|
|
|
Once logged in, you should get something like:
|
|
|
|
[source]
|
|
----
|
|
$ fly ts
|
|
name url team expiry
|
|
spring-graphql https://ci.spring.io spring-graphql Wed, 25 Mar 2020 17:45:26 UTC
|
|
----
|
|
|
|
=== Pipeline configuration and structure
|
|
The build pipelines are described in `pipeline.yml` file.
|
|
This file is listing Concourse resources, i.e. build inputs and outputs such as container images, artifact repositories, source repositories, notification services, etc.
|
|
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://www.vaultproject.io/[Vault instance].
|
|
|
|
You'll find in this folder the following resources:
|
|
* `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`
|
|
* `config` contains the Spring Boot configuration for the https://github.com/spring-io/github-changelog-generator[changelog generator] and https://github.com/spring-io/concourse-release-scripts[concourse-release-scripts]
|
|
|
|
=== Updating the build pipeline
|
|
|
|
Updating files on the repository is not enough to update the build pipeline, as changes need to be applied.
|
|
The pipeline can be deployed using the following command:
|
|
|
|
[source]
|
|
----
|
|
$ fly -t spring-graphql set-pipeline -p spring-graphql -c ci/pipeline.yml -l ci/parameters.yml
|
|
----
|
|
|
|
NOTE: This assumes that you have Vault configured with the appropriate secrets. |