Skip to content

Instantly share code, notes, and snippets.

@selahattinunlu
Last active April 3, 2018 13:00
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save selahattinunlu/69db11b0764712d98240 to your computer and use it in GitHub Desktop.
Save selahattinunlu/69db11b0764712d98240 to your computer and use it in GitHub Desktop.
Envoy.blade.php
@servers(['production' => 'user@ipaddress'])
@setup
$repo = 'git@github.com:selahattinunlu/projectname.com.git';
$releaseDir = '/srv/projectname.com/releases';
$storageDir = '/srv/projectname.com/storage';
$appDir = '/srv/projectname.com/current';
$release = 'release_' . date('d-m-Y-His');
@endsetup
@macro('deploy', ['on' => 'production'])
deploy-prepare
fetch-repo
run-composer
update-permissions
move-env-file
run-migrations
update-symlinks
after-deploy
@endmacro
@task('deploy-prepare')
[ -d {{ $releaseDir }} ] || mkdir -p {{ $releaseDir }};
[ -d {{ $storageDir }}/uploads ] || mkdir -p {{ $storageDir }}/uploads;
[ -d {{ $storageDir }}/sessions ] || mkdir -p {{ $storageDir }}/sessions;
[ -f {{ $storageDir }}/.env ] || touch .env;
@endtask
@task('fetch-repo')
cd {{ $releaseDir }};
git clone {{ $repo }} {{ $release }};
@endtask
@task('run-composer')
cd {{ $releaseDir }}/{{ $release }};
composer install --prefer-dist;
@endtask
@task('update-permissions')
cd {{ $release_dir }};
chown -R :www-data {{ $releaseDir }}/{{ $release }};
chmod -R 777 {{ $releaseDir }}/{{ $release }}/storage;
chmod -R 777 {{ $releaseDir }}/{{ $release }}/bootstrap;
echo 'İzinler ayarlandı.';
@endtask
@task('move-env-file')
cp {{ $storageDir }}/.env {{ $releaseDir }}/{{ $release }}/.env
@endtask
@task('run-migrations')
cd {{ $releaseDir }}/{{ $release }};
php artisan migrate --force
@endtask
@task('update-symlinks')
ln -nfs {{ $storageDir }}/uploads {{ $releaseDir }}/{{ $release }}/public/uploads;
rm -R {{ $releaseDir }}/{{ $release }}/storage/framework/sessions;
echo "Release içerisindeki sessions klasörü silindi";
ln -nfs {{ $storageDir }}/sessions {{ $releaseDir }}/{{ $release }}/storage/framework/sessions;
echo "sessionların sembolik linki oluşturuldu";
ln -nfs {{ $releaseDir }}/{{ $release }} {{ $appDir }};
echo 'Sembolik link oluşturuldu.';
@endtask
@task('after-deploy')
echo 'Deployment tamamlandı.';
@endtask
@codersrini
Copy link

Awesome. Fantastic one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment