Skip to content

Instantly share code, notes, and snippets.

@yushine
Forked from gravitano/Envoy.blade.php
Created September 1, 2016 10:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yushine/5119ccfae51f64a54effeadb83e3b0d3 to your computer and use it in GitHub Desktop.
Save yushine/5119ccfae51f64a54effeadb83e3b0d3 to your computer and use it in GitHub Desktop.
Envoy as Deployer
@servers(['web' => 'deploy-ex'])
@setup
$repo = 'git@github.com:Servers-for-Hackers/deploy-ex.git';
$release_dir = '/var/www/releases';
$app_dir = '/var/www/app';
$release = 'release_' . date('YmdHis');
@endsetup
@macro('deploy', ['on' => 'web'])
fetch_repo
run_composer
migrate
update_permissions
update_symlinks
@endmacro
@task('fetch_repo')
[ -d {{ $release_dir }} ] || mkdir {{ $release_dir }};
cd {{ $release_dir }};
git clone -b master {{ $repo }} {{ $release }};
@endtask
@task('run_composer')
cd {{ $release_dir }}/{{ $release }};
composer install --prefer-dist --no-scripts;
php artisan clear-compiled --env=production;
php artisan optimize --env=production;
@endtask
@task('update_permissions')
cd {{ $release_dir }};
chgrp -R www-data {{ $release }};
chmod -R ug+rwx {{ $release }};
@endtask
@task('migrate')
cd {{ $release_dir }}/{{ $release }};
php artisan migrate --force;
@endtask
@task('update_symlinks')
ln -nfs {{ $release_dir }}/{{ $release }} {{ $app_dir }};
chgrp -h www-data {{ $app_dir }};
cd {{ $release_dir }}/{{ $release }};
ln -nfs ../../.env .env;
chgrp -h www-data .env;
rm -r {{ $release_dir }}/{{ $release }}/storage/logs;
cd {{ $release_dir }}/{{ $release }}/storage;
ln -nfs ../../../logs logs;
chgrp -h www-data logs;
sudo service php5-fpm reload;
@endtask
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment