gavinhewitt
10/13/2015 - 11:56 PM

Envoy.blade.php

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