Work and Build Flows
Pre
• This is our initial agreement and we are looking to
evaluate if there is better solution
• Currently investigating
h...
Gitflow
Vincent Driessen http://nvie.com/posts/a-successful-git-branching-model/
• Main branches
– master
– develop
• Supp...
Other view by stability
Picture from:
http://johanleino.wordpress.com/2013/05/06/using-gitflow-with-visual-studio-and-sour...
Start a feature (story)
• Git
– Git flow
• git flow feature start FEATURE
– Git
• git checkout -b feature/FEATURE develop
...
Publish/pull feature (story)
• Git flow
– git flow feature publish FEATURE
• Git
– git push origin feature/FEATURE
• Git f...
Finish a feature (story)
• Git
– Git flow
• git flow feature finish FEATURE
– Git
• git checkout develop
• git merge --no-...
Start a release
• Git
– Git flow
• git flow release start VERSION [BASE]
– Git
• git branch -b release/VERSION develop [BA...
Finish a release
• Git
– Git flow
• git flow release finish VERSION
– Git
• git checkout master
• git merge --no-ff releas...
Start a hotfix
• Git
– Git flow
• git flow hotfix start VERSION
– Git
• git branch -b hotfix/VERSION master
• Increase ver...
Finish a hotfix
• Git
– Git flow
• git flow hotfix finish VERSION
– Git
• git checkout master
• git merge --no-ff hotfix/V...
Versions checklist
• develop and feature branches must have SNAPSHOT version
• Increase develop version as soon as we star...
• Publish (Push) features, releases, hotfixes and tags
– git push --tags origin
• Pull before publishing
– git pull --reba...
• History manipulating
– git checkout/revert/reset
– git commit --amend
• Untracked files
– git clean
• Save temporary wor...
• branches
– develop is default
– feature/* are active
• deploy folder is latest
– *devapp.apk
– *feature-devapp.apk
• liv...
• branches
– hotfix/* are active
– release/* are active
– master is default branch
• deploy folder is pre-release
TeamCity...
• branches
– master is active
• deploy folder is release-candidate
• build is pinnable (deploy to beta.ebuddy.com)
• build...
• branches
– master is active
• deploy folder is market
• build is pinnable (to save in TC)
• build archived
TeamCity mark...
Our TeamCity screenshot
• Gitflow
– http://nvie.com/posts/a-successful-git-branching-model/
– http://danielkummer.github.io/git-flow-cheatsheet/
•...
Upcoming SlideShare
Loading in...5
×

Flow

679

Published on

Small overview of our development and release flow

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
679
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Flow"

  1. 1. Work and Build Flows
  2. 2. Pre • This is our initial agreement and we are looking to evaluate if there is better solution • Currently investigating https://bitbucket.org/atlassian/maven-jgitflow-plugin to avoid hand work as much as possible
  3. 3. Gitflow Vincent Driessen http://nvie.com/posts/a-successful-git-branching-model/ • Main branches – master – develop • Supporting branches – feature – release – hotfix
  4. 4. Other view by stability Picture from: http://johanleino.wordpress.com/2013/05/06/using-gitflow-with-visual-studio-and-sourcetree/ • More stable branch is upper
  5. 5. Start a feature (story) • Git – Git flow • git flow feature start FEATURE – Git • git checkout -b feature/FEATURE develop • FEATURE = <EDB-1222->some-meaningful-name • Change artifact version in pom to <version>-FEATURE
  6. 6. Publish/pull feature (story) • Git flow – git flow feature publish FEATURE • Git – git push origin feature/FEATURE • Git flow – git flow feature pull FEATURE • Git – git pull --rebase origin feature/FEATURE
  7. 7. Finish a feature (story) • Git – Git flow • git flow feature finish FEATURE – Git • git checkout develop • git merge --no-ff feature/FEATURE • git branch -d feature/FEATURE • Fix artifact version in the pom • Delete apk from file dev, artifactory and sonar project
  8. 8. Start a release • Git – Git flow • git flow release start VERSION [BASE] – Git • git branch -b release/VERSION develop [BASE] • Change version from snapshot to release pom • Increase version in develop pom
  9. 9. Finish a release • Git – Git flow • git flow release finish VERSION – Git • git checkout master • git merge --no-ff release/VERSION • git tag -a VERSION • git checkout develop • git merge --no-ff release/VERSION • git branch -d release/VERSION • Change version to snapshot in pom
  10. 10. Start a hotfix • Git – Git flow • git flow hotfix start VERSION – Git • git branch -b hotfix/VERSION master • Increase version in hotfix pom
  11. 11. Finish a hotfix • Git – Git flow • git flow hotfix finish VERSION – Git • git checkout master • git merge --no-ff hotfix/VERSION • git tag -a VERSION • git checkout develop (release/VERSION) • git merge --no-ff hotfix/VERSION • git branch -d hotfix/VERSION • Change version to snapshot in pom
  12. 12. Versions checklist • develop and feature branches must have SNAPSHOT version • Increase develop version as soon as we started release • release, hotfix and master branches should have RC candidate and not snapshot version until released • Hotfixes under unreleased versions increases version from RC<n> to RC<n+1> • master should have ‘clear’ version us soon as we released • tag master branch every time when we distribute build
  13. 13. • Publish (Push) features, releases, hotfixes and tags – git push --tags origin • Pull before publishing – git pull --rebase origin feature/FEATURE • Merge conflicts during rebasing – git add FILE – git rebease --continue – to revert: git rebase --abort Working with Git
  14. 14. • History manipulating – git checkout/revert/reset – git commit --amend • Untracked files – git clean • Save temporary work – git stash Manage changes with Git
  15. 15. • branches – develop is default – feature/* are active • deploy folder is latest – *devapp.apk – *feature-devapp.apk • live/beta/public beta are built on demand TeamCity development configuration
  16. 16. • branches – hotfix/* are active – release/* are active – master is default branch • deploy folder is pre-release TeamCity RC configuration
  17. 17. • branches – master is active • deploy folder is release-candidate • build is pinnable (deploy to beta.ebuddy.com) • build archived • Note: version is still RC TeamCity public beta configuration
  18. 18. • branches – master is active • deploy folder is market • build is pinnable (to save in TC) • build archived TeamCity market configuration
  19. 19. Our TeamCity screenshot
  20. 20. • Gitflow – http://nvie.com/posts/a-successful-git-branching-model/ – http://danielkummer.github.io/git-flow-cheatsheet/ • Git – http://www.atlassian.com/dms/wac/images/landing/git/atlassian_git_che – http://www.atlassian.com/git – http://gitready.com/ Resources

×