Mittwoch, 6. Mai 2015

How we organize branches and releases in GitHub


After some experience with Git Flow & GitHub Flow, AppVeyor as Continous Integration tool, our OneClickBuild to simplify the build & deploy process and a bunch of other tools, we finally came up with the following workflow.

AppVeyor automatically builds and tests the master branch and publishes the package to nuget. We need to increase the (semantic) version number manually in two files (appveyor.yml and solution.targets), otherwise the publish step will fail.

Note that we switched to GitVersion which automates versioning.
Therefore we don't want to get each typo, minor pull request or a change in a readme be reversioned and published to NuGet.

So we created the develop branch as the default branch used for pull requests. If we decide to create a new version, we increase the version number and do a pull request to the master. This reduces the number of NuGet versions but we still can manage as many pull requests as we want.

Finally we use a simplified version of Git Flow but a more "complex" version of GitHub Flow. We don't create release branches in favour of pull requests. On the other hand we use a develop branch for pull requests.

Keine Kommentare:

Kommentar veröffentlichen