S
S
StepEv2013-08-22 14:38:42
git
StepEv, 2013-08-22 14:38:42

Continuous Integration in conjunction with DVCS - how?

Given:
* DVCS - Git
* CI server - Hudson
* We use the GitFlow
branching model Now the question is - what events in the origin repository and what should CI collect?
Share your experience, please.
It is clear that any commit in master must build a release.
Most likely, a commit in develop should also compile the build, run the tests and deploy to the demo server.
But with feature branches there are misunderstandings. We need CI to integrate often. That is, ideally, for each commit in feature-*, you need to merge with develop and, if successful, compile and test the build. Do I need to commit the changes back to develop on origin upon success (like hudson can do this)?
If yes, then the risk of breaking develop increases. In any case, it contains unfinished features. If not, then integration with the work of other developers/teams is postponed until the completion of the feature and its final merge in origin/develop. And by this time, conflicts can accumulate.
And at what point do we do code review?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
Y
Yaroslav Astafiev, 2013-08-22
@kentilini

I don’t know, we make commits in develop only by hand and only after manual testing. Yes, hudson can do post-build push, but successful test runs do not mean that the program works absolutely correctly.

1
1nd1go, 2013-08-23
@1nd1go

a feature branch is generally speaking a thing for local development by a developer. Sometimes it is necessary to share with another developer the code from this branch, then, as a necessary evil, this branch ends up in the central repository of your team. But generally speaking, it does not exist for the rest of the world. And the functionality for the world begins to exist only when the branch is merged into develop, and it itself is already nailed.
So, based on the above, CI collects only develop and master. There are no other brunches for him.
The solution to the difficulties when merging branches to development after a long period is to periodically backport changes from development to branch so that the branch is always up-to-date with changes in development.
The review code is done when merging branches in development, i.e. when you can see the changes between the result git merge --no-ff --no-commitand the develop baseline.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question