Branch release and continuous delivery

Requirements

  • We have 2 environments. - Test and Prod
  • We want to do continuous deployment.
  • We are using Git Flow.

With git-flow, we have to deploy the release (or master) branch to production. (two different pipelines, one for continuous integration (fork) and one for continuous delivery (fork master).

How do I use my release branch?

What do I mean if tests pass in development. I would make a CI server to create a commit of the release branch. And deploy the updated release branch points to my game slot. Once the business is approved, one of the release points will be rolled out to production.

This means I let the CI server automatically create a release branch and rerun all tests in the staging slots of the production environment. If that fails, it will report and delete the release branch, otherwise it will create a release point, initiate a network change and merge it for management.

What are the pros and cons of this approach? What's the best practice?

Do we really need a release branch, especially when we don't use the switch feature to split releases? (several people work in one project)

enter image description here enter image description here] [2

Link

+3


source to share


2 answers


As a rule, I will create / shorten the release branch if you think the code is close enough to stable. Then you need to refine that branch until it's ready for release. After that, you will do extensive regression testing and then finally tag it and release it.



If you are making real continuous releases, you might miss a lot of this testing, so there really isn't much of a difference even with a release branch. This is much more dangerous, but you can do it if it fits your model.

+1


source


git-flow says about release branches:

Disable support branches for preparing a new release. They allow last-minute point and cross ts. In addition, they allow minor bug fixes and prepare release metadata (version number, build dates, etc.). By doing all this work on the release branch, the development branch is cleaned up to receive features for the next major release.

If your team's workflow doesn't match the use case for the release branches, don't use them. If you find you need it later, start using them.



We are using git-flow in one of the teams where I work. Often we only have one or two developers working on a project doing maintenance, and we rarely have to fix bugs and add features. We don't use release branches unless we have this particular scenario.

In general, I like the pipelines you set up.

+2


source







All Articles