SlideShare una empresa de Scribd logo
1 de 20
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

Más contenido relacionado

La actualidad más candente

Git: A Getting Started Presentation
Git: A Getting Started PresentationGit: A Getting Started Presentation
Git: A Getting Started Presentation
Nap Ramirez
 
Git Introduction
Git IntroductionGit Introduction
Git Introduction
Gareth Hall
 

La actualidad más candente (20)

Git & Github
Git & GithubGit & Github
Git & Github
 
Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015
 
Brief tutorial on Git
Brief tutorial on GitBrief tutorial on Git
Brief tutorial on Git
 
Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflows
 
Git and git workflow best practice
Git and git workflow best practiceGit and git workflow best practice
Git and git workflow best practice
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Git kelvin
Git   kelvinGit   kelvin
Git kelvin
 
Mini git tutorial
Mini git tutorialMini git tutorial
Mini git tutorial
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Git: A Getting Started Presentation
Git: A Getting Started PresentationGit: A Getting Started Presentation
Git: A Getting Started Presentation
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Git advanced
Git advancedGit advanced
Git advanced
 
Git, GitHub and Open Source
Git, GitHub and Open SourceGit, GitHub and Open Source
Git, GitHub and Open Source
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
Git 101
Git 101Git 101
Git 101
 
Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?
 
GitHub
GitHubGitHub
GitHub
 
Open source
Open sourceOpen source
Open source
 
Git Introduction
Git IntroductionGit Introduction
Git Introduction
 
Git tutorial git branches 20131206-Bryan
Git tutorial   git branches 20131206-BryanGit tutorial   git branches 20131206-Bryan
Git tutorial git branches 20131206-Bryan
 

Similar a Flow

Git workflows
Git workflowsGit workflows
Git workflows
Xpand IT
 
3 Git
3 Git3 Git
Git basic stanley hsiao 2010_12_15
Git basic stanley hsiao 2010_12_15Git basic stanley hsiao 2010_12_15
Git basic stanley hsiao 2010_12_15
Chen-Han Hsiao
 

Similar a Flow (20)

git Technologies
git Technologiesgit Technologies
git Technologies
 
Git collaboration
Git collaborationGit collaboration
Git collaboration
 
Collaborative development with git
Collaborative development with gitCollaborative development with git
Collaborative development with git
 
Working with Git
Working with GitWorking with Git
Working with Git
 
Introduction into Git
Introduction into GitIntroduction into Git
Introduction into Git
 
Git workflows
Git workflowsGit workflows
Git workflows
 
Git version control and trunk based approach with VSTS
Git version control and trunk based approach with VSTSGit version control and trunk based approach with VSTS
Git version control and trunk based approach with VSTS
 
Managing e commerce systems codebase with git
Managing e commerce systems codebase with gitManaging e commerce systems codebase with git
Managing e commerce systems codebase with git
 
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
 
01 - Git vs SVN
01 - Git vs SVN01 - Git vs SVN
01 - Git vs SVN
 
3 Git
3 Git3 Git
3 Git
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requests
 
Git basic
Git basicGit basic
Git basic
 
.Git for WordPress Developers
.Git for WordPress Developers.Git for WordPress Developers
.Git for WordPress Developers
 
Git basics, Team Workflows (Ciro Miranda)
Git basics, Team Workflows (Ciro Miranda)Git basics, Team Workflows (Ciro Miranda)
Git basics, Team Workflows (Ciro Miranda)
 
Working with Git
Working with GitWorking with Git
Working with Git
 
Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levels
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git basic stanley hsiao 2010_12_15
Git basic stanley hsiao 2010_12_15Git basic stanley hsiao 2010_12_15
Git basic stanley hsiao 2010_12_15
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
 

Más de Eugen Martynov

Más de Eugen Martynov (13)

Kotlin Script
Kotlin ScriptKotlin Script
Kotlin Script
 
My path to freelance
My path to freelanceMy path to freelance
My path to freelance
 
Gradle Again
Gradle AgainGradle Again
Gradle Again
 
Android CD
Android CDAndroid CD
Android CD
 
Lokalise
LokaliseLokalise
Lokalise
 
DI with Dagger2
DI with Dagger2DI with Dagger2
DI with Dagger2
 
Facebook Stetho
Facebook StethoFacebook Stetho
Facebook Stetho
 
Template project
Template projectTemplate project
Template project
 
Robolectric v2
Robolectric v2Robolectric v2
Robolectric v2
 
Android Brown Bag Lunch - DroidconNL overview
Android Brown Bag Lunch - DroidconNL overviewAndroid Brown Bag Lunch - DroidconNL overview
Android Brown Bag Lunch - DroidconNL overview
 
Robolectric Adventure
Robolectric AdventureRobolectric Adventure
Robolectric Adventure
 
Mobile developer is Software developer
Mobile developer is Software developerMobile developer is Software developer
Mobile developer is Software developer
 
XP Days UA Pecha kucha
XP Days UA Pecha kuchaXP Days UA Pecha kucha
XP Days UA Pecha kucha
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Flow

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