You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
52 lines
1.6 KiB
@servers(['localhost' => 'deployer@192.168.0.13'])
|
|
|
|
@setup
|
|
$repository = 'ssh://git@g.skillbox.ru:22004/kor_a_m/skill-back.git';
|
|
$releases_dir = '/www/site/back_go.skillbox.ru/releases';
|
|
$app_dir = '/www/site/back_go.skillbox.ru';
|
|
$release = date('YmdHis');
|
|
$new_release_dir = $releases_dir .'/'. $release . '_' . $branch;
|
|
@endsetup
|
|
|
|
@story('deploy', ['on' => 'localhost'])
|
|
clone_repository
|
|
run_tests
|
|
update_symlinks
|
|
deployment_option_cleanup
|
|
@endstory
|
|
|
|
@task('clone_repository', ['on' => 'localhost'])
|
|
echo '>> Клонируем репозиторий'
|
|
|
|
echo '{{ $new_release_dir }}'
|
|
[ -d {{ $releases_dir }} ] || mkdir {{ $releases_dir }}
|
|
@if ($branch)
|
|
git clone -b {{ $branch }} {{ $repository }} {{ $new_release_dir }}
|
|
@endif
|
|
@endtask
|
|
|
|
@task('run_tests', ['on' => 'localhost'])
|
|
echo '>> Запускаем тесты'
|
|
@if ($branch)
|
|
cd {{ $new_release_dir }}
|
|
source /www/servers/python-server/bin/activate && python manage.py test
|
|
@endif
|
|
@endtask
|
|
|
|
@task('update_symlinks', ['on' => 'localhost'])
|
|
@if ($branch)
|
|
ln -nfs {{ $new_release_dir }}/lms/wsgi.py {{ $app_dir }}/configs/{{ $branch }}/wsgi.py
|
|
echo '>> Создаем симлинк на папку текущего релиза'
|
|
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current_{{ $branch }}
|
|
echo '>> restart Supervisor'
|
|
supervisorctl restart {{ $branch }}:
|
|
@endif
|
|
@endtask
|
|
|
|
@task('deployment_option_cleanup')
|
|
cd {{ $releases_dir }}
|
|
@if ( isset($cleanup) && $cleanup )
|
|
find . -maxdepth 1 -name "20*{{ $branch }}" -mmin +30 | head -n 3 | xargs rm -Rf
|
|
echo "Cleaned up old deployments"
|
|
@endif
|
|
@endtask |