The opinionated pipeline
This repo contains an opinionated pipeline to deploy a Spring Cloud based microservice. We’ve taken the following opinionated decisions:
usage of Spring Cloud, Spring Cloud Contract Stub Runner and Spring Cloud Eureka
application deployment to Cloud Foundry
For Maven:
usage of Maven Wrapper
artifacts deployment by
./mvnw clean deploy
stubrunner.ids
property to retrieve list of collaborators for which stubs should be downloadedrunning smoke tests on a deployed app via the
smoke
Maven profilerunning end to end tests on a deployed app via the
e2e
Maven profile
For Gradle (in the
github-analytics
application check thegradle/pipeline.gradle
file):usage of Gradlew Wrapper
deploy
task for artifacts deploymentrunning smoke tests on a deployed app via the
smoke
taskrunning end to end tests on a deployed app via the
e2e
taskgroupId
task to retrieve group idartifactId
task to retrieve artifact idcurrentVersion
task to retrieve the current versionstubIds
task to retrieve list of collaborators for which stubs should be downloaded
This is the initial approach that can be easily changed since all the core deployment logic is done in a form of Bash scripts.
You can go through the setup of the demo environment for
Each of these setups are available under the folders jenkins
and concourse
respectively.