Files
spring-cloud-app-broker/ci
2019-11-27 18:03:13 +01:00
..
2019-11-27 18:03:13 +01:00
2019-08-28 17:44:26 +02:00
2019-09-16 18:21:23 +02:00
2019-08-28 17:44:26 +02:00

#App Broker CI Pipeline

Running CI pipeline locally

CircleCI allows pipelines to be run locally, this is very useful development purposes

  • Install circle command line tool to run local builds:
curl -o /usr/local/bin/circleci https://circle-downloads.s3.amazonaws.com/releases/build_agent_wrapper/circleci && \
chmod +x /usr/local/bin/circleci
  • Run script to execute pipeline
ci/scripts/run-local-ci-job.sh

Running the acceptance tests on Cloud Foundry locally

With the following variables set:

API_HOST
API_PORT
USERNAME
PASSWORD
CLIENT_ID
CLIENT_SECRET
DEFAULT_ORG
DEFAULT_SPACE
SKIP_SSL_VALIDATION

Run script to execute the acceptance tests suite:

ci/scripts/acceptance-tests.sh

Releasing

A release pipeline inspired by the one created by the Spring boot team https://github.com/spring-projects/spring-boot/blob/master/ci/

It is composed by three different groups:

  • The first group is a basic build so that we can always be sure which build we will be getting when releasing, followed by the acceptance tests.
  • The second group are the releases.
  • The last group is the CI image used by the different tasks and the source can be found here: ci/images/release-ci-image/Dockerfile.

Releases

The original pipeline was decomposed into different jobs so that we could recover from each of them manually

Fly

The pipeline can be run using the following script:

$ ./ci/scripts/set-pipeline.sh

Release commands

If you don't want to click, you can trigger each job using the CLI:

To release a milestone:

$ fly -t scs trigger-job -j release-test/stage-milestone
$ fly -t scs trigger-job -j release-test/promote-milestone

To release an RC:

$ fly -t scs trigger-job -j release-test/stage-rc
$ fly -t scs trigger-job -j release-test/promote-rc

To release a GA:

$ fly -t scs trigger-job -j release-test/stage-release
$ fly -t scs trigger-job -j release-test/promote-release
$ fly -t scs trigger-job -j release-test/distribute-release
$ fly -t scs trigger-job -j release-test/sync-to-maven-central