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 deploystubrunner.idsproperty to retrieve list of collaborators for which stubs should be downloadedrunning smoke tests on a deployed app via the
smokeMaven profilerunning end to end tests on a deployed app via the
e2eMaven profile
For Gradle (in the
github-analyticsapplication check thegradle/pipeline.gradlefile):usage of Gradlew Wrapper
deploytask for artifacts deploymentrunning smoke tests on a deployed app via the
smoketaskrunning end to end tests on a deployed app via the
e2etaskgroupIdtask to retrieve group idartifactIdtask to retrieve artifact idcurrentVersiontask to retrieve the current versionstubIdstask 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.