feat: Laravel framework deploy script
This commit is contained in:
commit
70184edf11
61
Envoy.blade.php
Normal file
61
Envoy.blade.php
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
@servers(['localhost' => '127.0.0.1'])
|
||||
|
||||
@setup
|
||||
if (empty($repository)) {
|
||||
throw new Exception("Need --repository param", 1);
|
||||
}
|
||||
|
||||
if (empty($app_dir)) {
|
||||
throw new Exception("Need --app_dir param", 1);
|
||||
}
|
||||
$releases_dir = $app_dir . '/releases';
|
||||
$storage_dir = $app_dir . '/storage';
|
||||
$release_no = date('YmdHis');
|
||||
$new_release_dir = $releases_dir .'/'. $release_no;
|
||||
@endsetup
|
||||
|
||||
@story('deploy')
|
||||
clone_repository
|
||||
run_composer
|
||||
update_symlinks
|
||||
change_owner
|
||||
@endstory
|
||||
|
||||
@task('clone_repository')
|
||||
echo 'Cloning repository'
|
||||
[ -d {{ $app_dir }} ] || mkdir {{ $app_dir }}
|
||||
[ -d {{ $releases_dir }} ] || mkdir {{ $releases_dir }}
|
||||
git clone --depth 1 {{ $repository }} {{ $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
|
||||
[ -d {{ $storage_dir }} ] || mkdir {{ $storage_dir }} && chown www:www {{ $storage_dir }}
|
||||
ln -nfs {{ $storage_dir }} {{ $new_release_dir }}/storage
|
||||
|
||||
echo 'Linking .env file'
|
||||
if [ ! -f {{ $app_dir }}/.env ]; then
|
||||
cp {{ $new_release_dir }}/.env.example {{ $app_dir }}/.env
|
||||
ln -nfs {{ $app_dir }}/.env {{ $new_release_dir }}/.env
|
||||
cd {{ $app_dir }}/current && php artisan key:generate
|
||||
else
|
||||
ln -nfs {{ $app_dir }}/.env {{ $new_release_dir }}/.env
|
||||
cd {{ $app_dir }}/current && php artisan migrate
|
||||
fi
|
||||
|
||||
echo 'Linking current release'
|
||||
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current
|
||||
@endtask
|
||||
|
||||
@task('change_owner')
|
||||
chown -R www:www {{ $app_dir }}
|
||||
chown -R www:www {{ $releases_dir }}
|
||||
chown -R www:www {{ $new_release_dir }}
|
||||
@endtask
|
||||
Loading…
Reference in New Issue
Block a user