We currently have multiple Git repos for different projects.
At present we have the following work flow:
Master – all commits here
Deploy – production code used on live server
We have Hudson ci checking master on every new commit. Polling every minute for changes.
We also have a staging server for signing off work requests testing physical functionality prior to deploy from our master branch
The main problem we are seeing now is the we work on a ticket/work request basis and we may not always wish to deploy all changes in a release basis but if and when tickets are signed off from a senior member of staff.
I’ve looked at the likes of Git flow and github flow. Both have their advantages however I was unable to find a strategy to include the staging server and ci.
Any help or recommendation for reading would be greatly appreciated!
Updated 1
Our work flow should follow the following:
Production: -------------I-----------O----
/ /
B---E---F---G J---K---L
Master: A--/--C---D---H--\--/---M---N-\---
\-1-/-2-/-3-/ \-1-/-2-/
Ci and Staging area all runs from Master, All work is carried out on a branch and merged to staging.
On sign off work from the feature/ticket branch is then merged into production, only taking changes been made within the specific branch.
Correct me if this is wrong or if anyone has a better solution for this
so you have a master branch and any commit there goes to prod and a staging branch and any commit there goes to a staging server i take it..
So this makes sense to me.. each ticket should be it’s own branch off master. From there a dev can merge into staging to test there.. once it passes testing and is signed off, that branch is good to go. From there you can decide which branches to merge into your “release” branch and merge that branch into master for deploy.
You could even merge the release branch to staging to test the release there one more time to make sure each branch plays nice with the others.
Or.. if you use github.. just have each dev branch off a new branch based on ticket.. then send a PR to master