(This is a repost of the article I wrote in 2017. I think it is as relevant now as it was then)
For any code you write, you need several steps to transform it from a set of text files to a certain release artifact or a running service. You go through these steps manually at first, but sooner or later you decide to automate them. And this is how the CI/CD pipeline of a project is born.
But there are different ways how you can organize the automation.