Omega8 Deploy Workflow
I am new to OmegaCC, I have some previous Aegir experience but I am trying to build better habits. The Omega8cc team has been super helpful. I understand the Aegir workflow. That is the workflow on the server, always clone to a test site, test it, then move the live site, etc. I understand platforms, drush, drush make, and profiles. (Although I am least familiar with profiles, I have only used them in their most basic form).
My question is about my dev workflow, specifically deployment. I think the best way to ask my question is to present a scenario.
I have a site that is live on my Omega8cc box. I also have a dev version running locally. I add a major feature that takes a couple of weeks and in the end adds 4 new modules to /sites/example.com/module and has modifications to the theme's css. How do I deploy this?
My current Aegir (not Omega8cc) workflow is to have a repo per site. My repo is in my sites/example.com folder. So in the above example all 4 modules and my theme/css are all tracked in this one repo. I can then push my changes to the repo, go to my omega8cc box and pull. Done!
Now that I am moving to Omega8cc this workflow broke because I don't have write access to my sites/example.com folder. Now Omega8cc told me they can make an exception and give me this access. However I was also told this isn't a very aegir way of doing things. I want to start building better habits so I am all ears.
My understanding of the suggested deploy workflow would be, after all my local work, to go to my Omega box and pull each of these 4 modules and pull my theme. That is fine. My issue is that I have to remember that I installed these 4 modules and made these CSS changes. Depending on people "remembering" things is not an ideal process in my mind. Plus, one team member would have a hard time deploying another team member's work. They would have to investigate what modules/themes were added or modified.
I would love you know your thoughts and workflow, specifically for deployment.
Thanks, maestrojed
#1
I'm not sure if this is considered more Aegir like but I would be inclined to switch to make files and platforms. Test your new features / modules / theme code in the local dev environment and have git repos for each module and theme. In addition maintain a make file which as well as pulling together the std drupal platform you use the make file will pull in the modules and theme file (including latest revisions). You would also track the make file in version control. When it comes to deploy to production/staging you would create a new platform with the makefile then clone production site to test and migrate to the new platform. If all checks out you can then migrate the production site to the new platform.
Hopefully some more experienced members will chip in and refine the above to the considered best practice ;).
HTH,
JamieT