76 lines
1.8 KiB
PHP
76 lines
1.8 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');
|
|
$branch = 'production';
|
|
$new_release_dir = $releases_dir .'/'. $release;
|
|
@endsetup
|
|
|
|
@task('clone_repository')
|
|
echo 'Cloning repository'
|
|
[ -d {{ $releases_dir }} ] || mkdir {{ $releases_dir }}
|
|
git clone --depth 1 --single-branch --branch {{ $branch }} {{ $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
|
|
run_composer
|
|
update_symlinks
|
|
setup_laravel
|
|
clean_old_releases
|
|
@endstory
|
|
|
|
|
|
@story('deploy-dev',["on" => "dev"])
|
|
clone_repository
|
|
run_composer
|
|
update_symlinks
|
|
setup_laravel
|
|
clean_old_releases
|
|
@endstory
|