commit 70184edf11f81b9ec208ef7526bdf1e97e136e09 Author: Tsukasa Kanzaki Date: Mon Apr 15 12:31:46 2019 +0800 feat: Laravel framework deploy script diff --git a/Envoy.blade.php b/Envoy.blade.php new file mode 100644 index 0000000..27255e8 --- /dev/null +++ b/Envoy.blade.php @@ -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 \ No newline at end of file