at the end of the day, it was inevitable
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
# Stages
|
||||
set :stages, %w(production demo development staging)
|
||||
set :default_stage, "development"
|
||||
set :stage_dir, "app/config/stage"
|
||||
set :keep_releases, 3
|
||||
|
||||
# Capifony settings
|
||||
require 'capistrano/ext/multistage'
|
||||
require 'fileutils'
|
||||
require 'zlib'
|
||||
|
||||
# Application
|
||||
set :application, "socialhose" #application name
|
||||
set :app_path, "app"
|
||||
set :web_path, "web"
|
||||
set :model_manager, "doctrine"
|
||||
set :deploy_dir, "deploy"
|
||||
set :log_path, "var/logs"
|
||||
set :cache_path, "var/cache"
|
||||
set :session_path, "var/sessions"
|
||||
set :node_modules_path, "frontend/node_modules"
|
||||
|
||||
# Version control
|
||||
# pass branch as parameter: example: cap development deploy -S branch=origin/development
|
||||
set :scm, :git
|
||||
set :repository, "git@github.com:melzubeir/socialhose.git" #application repository URL
|
||||
set :git_shallow_clone, 1
|
||||
set :branch, fetch(:branch, '').sub!(/^.*\//, "")
|
||||
|
||||
# Directories
|
||||
set :writable_dirs, [log_path, cache_path, session_path]
|
||||
set :shared_files, ["app/config/parameters.yml"]
|
||||
set :shared_children, [log_path, node_modules_path]
|
||||
|
||||
# Permissions
|
||||
set :permission_method, :acl
|
||||
set :use_set_permissions, true
|
||||
set :use_sudo, false
|
||||
set :webserver_user, "apache"
|
||||
ssh_options[:forward_agent] = true
|
||||
|
||||
# Symfony
|
||||
set :use_composer, true
|
||||
set :composer_options, "--verbose --prefer-dist --optimize-autoloader --no-progress --no-interaction"
|
||||
set :update_vendors, false
|
||||
set :copy_vendors, true
|
||||
set :dump_assetic_assets, true
|
||||
set :interactive_mode, false
|
||||
set :update_cmd, "./update.sh" # will run after deploy
|
||||
set :clear_controllers, false
|
||||
set :symfony_env, "dev"
|
||||
set :symfony_console, "bin/console"
|
||||
|
||||
# Custom tasks
|
||||
namespace :deployment do
|
||||
|
||||
desc "Update site config"
|
||||
task :update_site_config do
|
||||
capifony_pretty_print "--> Update site config"
|
||||
run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} socialhose:site-settings:sync #{console_options}'"
|
||||
capifony_puts_ok
|
||||
end
|
||||
|
||||
namespace :update_code do
|
||||
|
||||
desc "Rewrite parameters"
|
||||
task :rewrite_params do
|
||||
capifony_pretty_print "--> Rewriting parameters.yml with app/config/parameters.yml.#{stage}"
|
||||
run "sh -c 'cd #{latest_release} && cp app/config/parameters.yml.#{stage} app/config/parameters.yml'"
|
||||
capifony_puts_ok
|
||||
end
|
||||
|
||||
desc "Rewrite .htaccess"
|
||||
task :rewrite_htaccess do
|
||||
capifony_pretty_print "--> Rewriting .htaccess with .htaccess.#{stage}"
|
||||
run "sh -c 'cd #{latest_release} && cp web/.htaccess.#{stage} web/.htaccess'"
|
||||
capifony_puts_ok
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
namespace :frontend do
|
||||
|
||||
desc "Rewrite frontend/app/appConfig.js"
|
||||
task :rewrite_config do
|
||||
set :file, "frontend/app/appConfig.js"
|
||||
capifony_pretty_print "--> Rewriting #{file} with #{file}.#{stage}"
|
||||
run "sh -c 'cd #{latest_release} && cp #{file}.#{stage} #{file}'"
|
||||
capifony_puts_ok
|
||||
end
|
||||
|
||||
desc "Install node modules"
|
||||
task :install do
|
||||
capifony_pretty_print "--> Install node modules"
|
||||
run "sh -c 'cd #{latest_release}/frontend && npm install'"
|
||||
capifony_puts_ok
|
||||
end
|
||||
|
||||
desc "Build"
|
||||
task :build do
|
||||
capifony_pretty_print "--> Build forntend"
|
||||
run "sh -c 'cd #{latest_release}/frontend && npm run build'"
|
||||
capifony_puts_ok
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# Dependences
|
||||
before "symfony:composer:install", "deployment:update_code:rewrite_params"
|
||||
before "symfony:composer:install", "deployment:update_code:rewrite_htaccess"
|
||||
before "symfony:composer:install", "deployment:frontend:rewrite_config"
|
||||
before "symfony:composer:update", "deployment:update_code:rewrite_params"
|
||||
before "symfony:composer:update", "deployment:update_code:rewrite_htaccess"
|
||||
before "symfony:composer:update", "deployment:frontend:rewrite_config"
|
||||
before "symfony:cache:warmup", "symfony:doctrine:migrations:migrate"
|
||||
|
||||
after "deployment:frontend:rewrite_config", "deployment:frontend:install"
|
||||
after "deployment:frontend:install", "deployment:frontend:build"
|
||||
|
||||
after "deploy", "deploy:cleanup"
|
||||
after "deploy:cleanup", "deployment:update_site_config"
|
||||
|
||||
# Logging
|
||||
logger.level = Logger::MAX_LEVEL
|
||||
Reference in New Issue
Block a user