https://12factor.net/
Most implement Continous Deployment - a pipeline that is able to deploy a given artifact to a given environment
What deploying means is different from project to project
There are many vendors in this space
To best use CI/CD, we often combine it with a standardized git workflow.
This helps write CI/CD pipelines that match the intentions when using git
Each type of branch has a meaning
Is always in a releasable state - should only be merged into when ready to release
Contains the newest features being worked on - the basis for new features
When starting work on a new feature we create a feature branch starting from develop
.
This is the main unit of work - every bit of new code starts as a feature branch and is merged back into develop
when done, through a Pull Request.
When the feature branch is merged, it should be deleted
When we are ready to release, we create a release branch and run through the release checklist.
for example:
CI/CD is often set up to run deployment if it’s a tagged commit