6
0
Fork 0
jiqu-library-server/deploy/lib/capistrano/tasks/composer.rake

42 lines
1.2 KiB
Ruby

namespace :load do
task :defaults do
set :composer_roles, :all
set :composer_download_url, "https://getcomposer.org/installer"
set :composer_install_flags, "--no-dev --prefer-dist --no-interaction --optimize-autoloader"
end
end
namespace :composer do
desc "检查 Composer 是否已安装"
task :check do
on release_roles(fetch(:composer_roles)) do
next if test("[ -f #{deploy_path}/.dep/composer.phar ]")
composer_version = fetch(:composer_version, nil)
composer_version_flag = composer_version ? "-- --version=#{composer_version}" : ""
execute :mkdir, "-p", "#{deploy_path}/.dep"
execute :curl, "-sS", fetch(:composer_download_url), "|", :php, composer_version_flag
execute :mv, "composer.phar #{deploy_path}/.dep/composer.phar"
end
end
desc "执行 Composer 命令"
task :run, :command do |t, args|
args.with_defaults(:command => :list)
on release_roles(fetch(:composer_roles)) do
within release_path do
execute :php, "#{deploy_path}/.dep/composer.phar", args[:command], *args.extras
end
end
end
desc "安装应用依赖"
task :install do
invoke "composer:run", :install, fetch(:composer_install_flags)
end
after "deploy:started", "composer:check"
end