

In my team we use C# as a programming language, but these rules are more or less the same in other languages too. This is achieved by using rules you and your team has agreed upon. The idea of Continuous Integration (CI) is to ensure the proposed changes (by your PR) can be merged into the trunk without negatively affecting the existing code. Such a package is used by Octopus and is deployed automatically on each environment, starting from test and getting promoted to staging and production. we can always create a deployable package from master. The master branch is considered stable in terms of deployability, i.e. Tasks are created by the reviewers to improve the PR

We apply trunk-based development, meaning all changes go to one master branch in our version control system (VCS) (we use git on BitBucket).

I will focus on two concrete tools I have used in the past years – TeamCity and Octopus Deploy, which have helped me create automated deployment pipelines. In this post, I want to summarize my experience with creating deployment pipelines and I will try to provide as many details as possible, despite the broad topic. Nowadays it is essential to be able to deploy to production in a reasonably short amount of time and in an automated manner.
