ERP-API/Envoy.blade.php

82 lines
2.1 KiB
PHP

@servers(['prod' => 'ubuntu@172.26.12.217', 'dev' => 'ubuntu@smgdev.top'])
@setup
$repository = 'git@172.26.1.255:SMG_DEV/ERP-API.git';
$releases_dir = '/var/www/erp-api/releases';
$app_dir = '/var/www/erp-api';
$release = date('YmdHis');
$new_release_dir = $releases_dir .'/'. $release;
@endsetup
@task('clone_repository_dev')
echo 'Cloning repository'
[ -d {{ $releases_dir }} ] || mkdir {{ $releases_dir }}
git clone --depth 1 --single-branch --branch development {{ $repository }} {{ $new_release_dir }}
cd {{ $new_release_dir }}
@endtask
@task('clone_repository_prod')
echo 'Cloning repository'
[ -d {{ $releases_dir }} ] || mkdir {{ $releases_dir }}
git clone --depth 1 --single-branch --branch production {{ $repository }} {{ $new_release_dir }}
cd {{ $new_release_dir }}
@endtask
@task('run_composer')
echo "Starting deployment ({{ $release }})"
cd {{ $new_release_dir }}
composer install --prefer-dist --no-scripts -q -o
@endtask
@task('update_symlinks')
echo "Linking storage directory"
rm -rf {{ $new_release_dir }}/storage
ln -nfs {{ $app_dir }}/storage {{ $new_release_dir }}/storage
echo 'Linking .env file'
ln -nfs {{ $app_dir }}/.env {{ $new_release_dir }}/.env
echo 'Linking current release'
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current
@endtask
@task('setup_laravel')
cd {{ $app_dir }}/current
php artisan migrate --force
php artisan storage:link
php artisan db:seed --class PermissionSeeder --force
@endtask
@task('clean_old_releases')
# This lists our releases by modification time and delete all but the 3 most recent.
purging=$(ls -dt {{ $releases_dir }}/* | tail -n +5);
if [ "{{ $releases_dir }}" != "" ]; then
if [ "$purging" != "" ]; then
echo Purging old releases: $purging;
rm -rf $purging;
else
echo "No releases found for purging at this time";
fi
fi
@endtask
@story('deploy',["on" => "prod"])
clone_repository_dev
run_composer
update_symlinks
setup_laravel
clean_old_releases
@endstory
@story('deploy-dev',["on" => "dev"])
clone_repository_prod
run_composer
update_symlinks
setup_laravel
clean_old_releases
@endstory