Pipeline
CD - continuous deployment
CI - continuous integration
First step on pipeline
On git push, the build is run on a build agent, this allows the app to have a source of truth and place to start from to deploy a working app
Run all tests
Unit
acceptance/documentation
Integration
End to end
Tests that dont run locally
mutation or long running static analysis tests
pacts/consumer contracts
Creates the binary, ie the jar
Create the docker image
Places the binary or image on a Repository
continuous delivery
Seperating CI/CD
PArt of 12 factor app
The build (CI) creates the binary
Another pipeline deploys the binary, and is versioned differently
Should not need to build a new binary to release a new version
especially for config changes
https://12factor.net/build-release-run
Build Monitor
A scrreen which displays the all the CI builds, and give visual feed back to what build is failing (coloured red).
It should be updated constently and not be out of date
Instant feedback means devs who pushed code that broke build must fix it as a priority, before anyone works on it.
Should be in a place visible to all the team
Can have reminders, calendars on it too
Gocd
Creating pipelines
pipelines that pull from git (master or branch)
manual gates
materials
tasks
jobs
artifacts
logs
Quality gates
check status pages
Teamcity
Example
https://www.edureka.co/blog/ci-cd-pipeline/
Jenkins
https://www.edureka.co/blog/install-jenkins/
Last updated
Was this helpful?