6
0
Fork 0

优化发布脚本

release
李静 2022-01-13 10:18:31 +08:00
parent 88ae0c873d
commit 580e97203d
3 changed files with 35 additions and 14 deletions

View File

@ -0,0 +1,12 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false

View File

@ -33,6 +33,7 @@ install_plugin Capistrano::SCM::Git
# require "capistrano/rails/assets" # require "capistrano/rails/assets"
# require "capistrano/rails/migrations" # require "capistrano/rails/migrations"
# require "capistrano/passenger" # require "capistrano/passenger"
require "capistrano/file-permissions"
# Load custom tasks from `lib/capistrano/tasks` if you have any defined # Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }

View File

@ -16,6 +16,7 @@ namespace :load do
# 可写文件夹 # 可写文件夹
set :laravel_writable_dirs, [ set :laravel_writable_dirs, [
"bootstrap/cache",
"storage", "storage",
"storage/app", "storage/app",
"storage/app/public", "storage/app/public",
@ -23,8 +24,10 @@ namespace :load do
"storage/framework/cache", "storage/framework/cache",
"storage/framework/sessions", "storage/framework/sessions",
"storage/framework/views", "storage/framework/views",
"storage/logs", "storage/logs"
] ]
set :laravel_server_user, 'www-data'
end end
end end
@ -44,8 +47,8 @@ namespace :laravel do
end end
end end
desc "准备软链文件" desc "检查软链文件"
task :resolve_linked_files do task "check:linked_files" do
on release_roles(fetch(:laravel_roles)) do on release_roles(fetch(:laravel_roles)) do
laravel_linked_files = fetch(:laravel_linked_files) laravel_linked_files = fetch(:laravel_linked_files)
@ -60,8 +63,8 @@ namespace :laravel do
end end
end end
desc "准备软链目录" desc "检查软链目录"
task :resolve_linked_dirs do task "check:linked_dirs" do
laravel_linked_dirs = fetch(:laravel_linked_dirs) laravel_linked_dirs = fetch(:laravel_linked_dirs)
if fetch(:laravel_linked_dirs) if fetch(:laravel_linked_dirs)
@ -69,16 +72,20 @@ namespace :laravel do
end end
end end
desc "准备可写文件" desc "给与可写文件夹权限"
task :resolve_writable_dirs do task :writable do
on release_roles(fetch(:laravel_roles)) do on release_roles(fetch(:laravel_roles)) do
laravel_writable_dirs = fetch(:laravel_writable_dirs) laravel_writable_dirs = fetch(:laravel_writable_dirs)
next unless laravel_writable_dirs next unless laravel_writable_dirs
within release_path do set :file_permissions_paths, fetch(:file_permissions_paths, [])
execute :mkdir, "-p", laravel_writable_dirs.join(" ") .push(*laravel_writable_dirs)
end .uniq
set :file_permissions_users, fetch(:file_permissions_users, [])
.push(fetch(:laravel_server_user))
.uniq
end end
end end
@ -163,11 +170,12 @@ namespace :deploy do
invoke "composer:install" invoke "composer:install"
end end
before "deploy:starting", "laravel:resolve_linked_dirs" before "deploy:starting", "laravel:check:linked_dirs"
after "deploy:check:directories", "laravel:upload_dotenv_file" after "deploy:check:directories", "laravel:check:linked_files"
after "deploy:check:directories", "laravel:resolve_linked_files" after "deploy:updated", "laravel:writable"
after "deploy:updated", "laravel:resolve_writable_dirs" after 'deploy:updated', 'deploy:set_permissions:acl'
after "deploy:updated", "deploy:vendors" after "deploy:updated", "deploy:vendors"
after "deploy:updated", "laravel:upload_dotenv_file"
after "deploy:vendors", "laravel:artisan:config:cache" after "deploy:vendors", "laravel:artisan:config:cache"
after "deploy:vendors", "laravel:artisan:route:cache" after "deploy:vendors", "laravel:artisan:route:cache"
after "deploy:vendors", "laravel:artisan:view:cache" after "deploy:vendors", "laravel:artisan:view:cache"