@setup $user = 'ei'; $timezone = 'Europe/Moscow'; $path = '/home/ei/domains/easyimages.net'; $current = $path . '/current'; $repo = "git@gitlab.com:AlmeAlme/easyimages.git"; $branch = 'master'; $chmods = [ 'storage/logs' ]; $date = new datetime('now', new DateTimeZone($timezone)); $release = $path . '/releases/' . $date->format('YmdHis'); @endsetup @servers(['production' => $user . '@148.72.153.122']) @task('clone', ['on' => $on]) mkdir -p {{$release}} git clone --depth 1 -b {{$branch}} "{{$repo}}" {{$release}} echo "#1 - Repository has been cloned" @endtask @task('composer', ['on' => $on]) composer self-update cd {{$release}} composer install --no-interaction --no-dev --prefer-dist echo "#2 - Composer dependecies have been installed" @endtask @task('artisan', ['on' => $on]) cd {{$release}} ln -nfs {{$path}}/.env .env; chgrp -h www-data .env; php artisan config:clear php artisan cache:clear php artisan migrate php artisan clear-compiled --env=production; php artisan optimize --env=production; echo "#3 - Composer dependecies have been installed" @endtask @task('chmod', ['on' => $on]) chgrp -R www-data {{$release}}; chmod -R ug+rwx {{$release}}; @foreach ($chmods as $file) chmod R -755 {{$release}}/{{$file}} chown -R {{$user}}:www-data {{$release}}/{{$file}} echo "Permissions have been set for {{$file}}" @endforeach echo "#4 - Permissions has been set" @endtask @task('update_symlinks', ['on' => $on]) ln -nfs {{$release}} {{$current}}; chgrp -h www-data {{$current}}; echo "#5 - Symlink has been set" @endtask @task('deploy', ['on' => 'production']) clone composer artisan chmod update_symlinks @endtask {{-- mkdir -p '/home/ei/domains/easyimages.net/releases/test' git clone --depth 1 -b master "git@gitlab.com:AlmeAlme/easyimages.git" '/home/ei/domains/easyimages.net/releases/test' /usr/local/bin/composer self-update cd '/home/ei/domains/easyimages.net/releases/test' /usr/local/bin/composer install --no-interaction --no-dev --prefer-dist ln -nfs '/home/ei/domains/easyimages.net/releases/test' '/home/ei/domains/easyimages.net/current' chgrp -h www-data '/home/ei/domains/easyimages.net/current' --}}