CI/CD — how deep the rabbit hole is?
Context
I start to ask myself a question recently: How hard can it be to copy functionality of Bitbucket pipelines, Circle CI or GitLab like tools?
Of course, there are years behind development of each platform - and probably hundreds of developers behind - yet the scope of the single blog post entry is very limited, so I for sure need to do some simplifications here, but before we jump into basic requirements definitions - get back to the context for a second. In this post, I will try to mimic the basic features of modern CI/CD tools. I am particularly interested in the build process of simple python/django application, but I also will try to make the examples more general - which should work for most of the technology stacks.
CI/CD tools short overview
Each modern CI/CD has a couple of features, some of them are interesting in the context of this post — some not, let’s try to list them.
User and access management
This feature answer the question: who has access where?
As this is a very important feature - it will be not important in the context of this article. Why? Well - more or less all user/access systems look similar - in the end, it doesn't matter if the main entity which we would like to limit access to is a project, repository…