-
-
Save trueparallels/26d5116b97e5c819609e009b46311c3b to your computer and use it in GitHub Desktop.
Capistrano deploy file for Laravel 5.x
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# config valid only for current version of Capistrano | |
lock '3.4.0' | |
set :application, "Your app name" # EDIT your app name | |
set :repo_url, "https://github.com/laravel/laravel.git" # EDIT your git repository | |
set :deploy_to, "/var/www/my-app" # EDIT folder where files should be deployed to | |
set :keep_releases, 5 | |
# set :linked_files, %w{.env} #EDIT uncomment this line once you have a .env file in :deploy_to/shared | |
set :linked_dirs, %w{storage} | |
namespace :composer do | |
#### Commented out because not everyone can run self update with deploy user | |
# desc "Running Composer Self-Update" | |
# task :update do | |
# on roles(:app), in: :sequence, wait: 5 do | |
# execute :composer, "self-update" | |
# end | |
# end | |
desc "Running Composer Install" | |
task :install do | |
on roles(:app), in: :sequence, wait: 5 do | |
within release_path do | |
execute :composer, "install --no-dev --quiet" | |
end | |
end | |
end | |
end | |
namespace :laravel do | |
desc "Set up Laravel storage folders." | |
task :create_storage do | |
required_directories = [ | |
"#{shared_path}/storage/framework/cache", | |
"#{shared_path}/storage/framework/meta", | |
"#{shared_path}/storage/framework/sessions", | |
"#{shared_path}/storage/framework/views", | |
"#{shared_path}/storage/logs", | |
] | |
on roles(:app) do | |
required_directories.each do |directory| | |
execute "if test ! -d #{directory}; then mkdir -m 777 -p #{directory} 1>&2; true; fi" | |
end | |
end | |
end | |
desc "Setup Laravel folder permissions" | |
task :permissions do | |
on roles(:app), in: :sequence, wait: 2 do | |
within release_path do | |
execute :chmod, "u+x artisan" | |
execute :chmod, "-R 777 storage" | |
execute :chmod, "-R 777 bootstrap/cache" | |
end | |
end | |
end | |
#### Doesn't work until you have a valid .env | |
# desc "Run Laravel Artisan migrate task." | |
# task :migrate do | |
# on roles(:app), in: :sequence, wait: 5 do | |
# within release_path do | |
# execute :php, "artisan migrate" | |
# end | |
# end | |
# end | |
#### Doesn't work until you have a valid .env | |
# desc "Run Laravel Artisan seed task." | |
# task :seed do | |
# on roles(:app), in: :sequence, wait: 5 do | |
# within release_path do | |
# execute :php, "artisan db:seed" | |
# end | |
# end | |
# end | |
desc "Optimize Laravel Class Loader" | |
task :optimize do | |
on roles(:app), in: :sequence, wait: 5 do | |
within release_path do | |
execute :php, "artisan clear-compiled" | |
execute :php, "artisan optimize" | |
end | |
end | |
end | |
end | |
namespace :deploy do | |
# after :published, "composer:update" | |
after :published, "composer:install" | |
after :published, "laravel:permissions" | |
after :published, "laravel:optimize" | |
# after :published, "laravel:migrate" | |
# after :published, "laravel:seed" | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment