Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-----------------------------------------------------------
- # General
- #-----------------------------------------------------------
- set :application, 'SOD'
- set :keep_releases, 3
- set :use_composer, true
- set :dump_assetic_assets, true
- set :model_manager, 'doctrine'
- set :deploy_via, :remote_cache
- set :vendors_mode, 'install'
- set :php_bin, '/usr/bin/php'
- set :composer_bin, '/usr/local/bin/composer'
- #-----------------------------------------------------------
- # multi stage
- #-----------------------------------------------------------
- set :stages, %w[pre prod]
- set :default_stage, 'pre'
- set :stage_dir, 'app/config/deploy'
- require 'capistrano/ext/multistage'
- #-----------------------------------------------------------
- # Users and permission
- #-----------------------------------------------------------
- set :webserver_user, 'www-data'
- set :permission_method, :chmod
- set :use_sudo, true
- set :writable_dirs, ['app/cache', 'app/logs', web_path + '/media']
- set :shared_children, [ app_path + '/logs', web_path + '/media']
- ssh_options[:forward_agent] = true
- default_run_options[:pty] = true
- #-----------------------------------------------------------
- # Git
- #-----------------------------------------------------------
- set :repository, 'git@bitbucket.org:tadium/sod.git'
- set :scm, :git
- set :branch, 'master'
- #-----------------------------------------------------------
- # Tasks
- #-----------------------------------------------------------
- before 'symfony:composer:install', "deploy:move_files"
- before 'symfony:composer:install', 'composer:copy_vendors'
- before 'symfony:composer:update', "deploy:move_files"
- before 'symfony:composer:update', 'composer:copy_vendors'
- after "symfony:cache:warmup", "symfony:project:permissions"
- #after "deploy:update", "symfony:rabbit:setup"
- after "deploy:update", "symfony:doctrine:schema:update"
- after "deploy:update", "deploy:cleanup"
- namespace :composer do
- task :copy_vendors, :except => { :no_release => true } do
- capifony_pretty_print "--> Copy vendor directory from previous release"
- run "vendorDir=#{current_path}/vendor; if [ -d $vendorDir ] || [ -h $vendorDir ]; then cp -a $vendorDir #{latest_release}/vendor; fi;"
- capifony_puts_ok
- end
- end
- namespace :symfony do
- namespace :rabbit do
- desc "Create Rabbit MQ channels"
- task :setup, :roles => :app do
- capifony_pretty_print "--> Create Rabbit MQ channels"
- run "php #{current_path}/app/console rabbitmq:setup-fabric --env=dev"
- run "php #{current_path}/app/console rabbitmq:setup-fabric --env=prod"
- capifony_puts_ok
- end
- end
- end
- namespace :symfony do
- namespace :doctrine do
- namespace :schema do
- desc "Force Schema Update"
- task :update, :roles => :app do
- capifony_pretty_print "--> Force Schema Update"
- run "php #{current_path}/app/console doctrine:schema:update --force"
- capifony_puts_ok
- end
- end
- end
- end
- namespace :symfony do
- namespace :project do
- desc "Fixes symfony directory permissions"
- task :permissions do
- capifony_pretty_print "--> Fixing permissions"
- run "sudo mkdir -p #{latest_release}/#{cache_path}/prod/translations"
- run "sudo chown -R www-data:www-data #{latest_release}/#{cache_path}"
- run "sudo chown -R www-data:www-data #{latest_release}/#{log_path}"
- run "sudo chown -R www-data:www-data #{latest_release}/web/media"
- capifony_puts_ok
- end
- end
- end
- namespace :symfony do
- namespace :cache do
- desc "Fixes symfony directory permissions"
- task :warmup do
- capifony_pretty_print "--> Fixing permissions"
- run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} cache:warmup --env=prod'"
- capifony_puts_ok
- end
- end
- end
- namespace :deploy do
- desc "Move configuration files"
- task :move_files, :roles => :app do
- capifony_pretty_print "--> Move configuration files"
- run "mv #{latest_release}/app/config/parameters/#{stage}.yml #{latest_release}/app/config/parameters.yml"
- capifony_puts_ok
- end
- end
- #-----------------------------------------------------------
- # Output
- #-----------------------------------------------------------
- # IMPORTANT = 0
- # INFO = 1
- # DEBUG = 2
- # TRACE = 3
- # MAX_LEVEL = 3
- logger.level = Logger::MAX_LEVEL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement