Hi everyone,
Like many of you, I'm jumping into GIT. With my latest SS project, I've created the code, pushed to GIT and am ready to deploy.
For the last few years, I've used Capistrano and SVN and it's worked very well. However, in setting up Capistrano for GIT, I'm running into a few roadblocks and wanted to reach out to the community to see what you do.
How are you all deploying your GIT projects? Capistrano? I had a look at: http://help.github.com/capistrano/ but stilll have a few questions.
Related portion of my Capistrano recipe:
default_run_options[:pty] = true
set :application, '1095'
set :repository, "xxxx@xxx.net:/home/xxx/git/1095.git"
set :scm, "git"
set :branch, "master"
set :scm_verbose, true
set :deploy_via, :remote_cache
set :ssh_options, { :forward_agent => true }
set :git_enable_submodules, 1
set :use_sudo, false
Issues:
1. On the remote server, the project is checked out to a releases/xxx directory. Then a 'current' symlink is created to point to the latest release. Seems simple enough, however, does anyone know how to build directly to web root? What use is the symlink? Obviously, there are other directories (assets, silverstripe-cache) that aren't in version control and would need to not be touched.
2. Permissions are all tweaked by Capistrano and can't be executed after manually 'mv' the files over. Any way to suppress this?
3. Capistrano adds a number of directories that SS doesn't need/want. 'tmp', 'logs', etc.
Thanks for your time replying. Would love to hear your deploy strategies and trade any Cap recipe tips.
Best,
Wilson