• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Flow
 

Flow

on

  • 601 views

Small overview of our development and release flow

Small overview of our development and release flow

Statistics

Views

Total Views
601
Views on SlideShare
601
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Flow Flow Presentation Transcript

    • Work and Build Flows
    • 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
    • Gitflow Vincent Driessen http://nvie.com/posts/a-successful-git-branching-model/ • Main branches – master – develop • Supporting branches – feature – release – hotfix
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Start a hotfix • Git – Git flow • git flow hotfix start VERSION – Git • git branch -b hotfix/VERSION master • Increase version in hotfix pom
    • 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
    • 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
    • • 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
    • • History manipulating – git checkout/revert/reset – git commit --amend • Untracked files – git clean • Save temporary work – git stash Manage changes with Git
    • • 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
    • • branches – hotfix/* are active – release/* are active – master is default branch • deploy folder is pre-release TeamCity RC configuration
    • • 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
    • • branches – master is active • deploy folder is market • build is pinnable (to save in TC) • build archived TeamCity market configuration
    • Our TeamCity screenshot
    • • 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