DEV Community

Discussion on: Tips and tricks for scalable CI/CD flow

 
neskhodovskiy profile image
Serhiy Neskhodovskiy

I think you misunderstand CI.

Unless you are the only developer on the project (and very often even then) you will have branches in your VCS.

Having branches does not prevent you from doing CI. However, not every branch is purposed for CI of course. You don't want to integrate everything without control, do you? Otherwise a small mistake may take down entire project and you'll have to rollback (and lose dollars meanwhile).

So CI is ONLY done on SOME branches. 1. A change is made on non-CI branch. 2. Change passes quality control. 3. Change is merged into a CI branch. 4. Deployment is triggered automatically on EVERY change in CI branch, that's why it's still CONTINUOUS integration (related to that controlled branch).

Thread Thread
 
anortef profile image
Adrián Norte

No, it isn´t and I explained it in my comment the why.

Branches are totally incompatible with CI is literally impossible to do CI having a branching strategy because you wouldn´t be integrating every little change in a continuous manner and your comment already says so with the "You don't want to integrate everything without control, do you?". Yes, I want to integrate everything and then run tests because that is CI.

The only way to do CI is to use trunk based development if not what you are doing is promiscuous integration that is also not bad, not everyone needs or is ready for CI.

Thread Thread
 
neskhodovskiy profile image
Serhiy Neskhodovskiy

Okay, Adrián, can you please reference any widely accepted definitions that prove your point?

Thread Thread
 
anortef profile image
Adrián Norte • Edited
Thread Thread
 
neskhodovskiy profile image
Serhiy Neskhodovskiy

Thanks