Let me preface this with some backstory.
I work for a digital agency that, you guessed it, has a development department. Thats actually how the company started, we now offer much more than that, but thats my focus, I head up the dev team. I have been trying desperately to move my team over to a version control system for the past two years, and finally its upon us. We have slowly started versioning projects in GitLab, we had originally used BitBucket, and I have some questions for the pro’s. I am going to run down what the workflow is in my head, and I would love some feedback that says “this is great” or “this is terrible” but really what I am looking for is some direction from people that do this on the daily and have found a very successful path to follow.
- new project repo created in gitlab (most likely done via a script on the server)
- staging destination created
- deploybot configured for staging (its currently what we have been using for deploying to staging and production, via develop and master branches)
- empty db is created
- dev creates new site locally (using vagrant and virtualbox here, local db is created to match the project as well)
- dev clones down bedrock, runs composer file (installs everything + sage)
- dev creates new branch to build on, will merge into dev and push once ready to see on staging site for PM to qa etc
- data - something like wp migrate db to sync data - this is really where it starts to get cloudy. if its a new site, working locally and pushing to staging via that plugin kind of makes sense?? really need insight in this area
- only thing tracked is the theme itself (plugins ie post types etc are part of the theme)
- composer is used to run updates on plugins and core
- once all is complete, merge dev back into master and deploy to production
I really want to lock down how we do this, so we can start pushing ahead with it. right now its kind of all over the place, with using git and gitlab and deploybot being the real constants. I would greatly appreciate any insight into the subject or direction, pointers, examples, what works for you etc.