本番環境にデプロイするときに複数のリポジトリからデータを取ってくる必要があったりだとか
何かシェルコマンドを実行する必要があったりだとか処理が多い場合はタスクランナーを是非使いましょう。
Envoyは シンプルでとても使いやすいタスクランナーです。
(Laravel がインストールされていなくても使用することができます)
https://readouble.com/laravel/5.8/ja/envoy.html
https://laravel.com/docs/5.8/envoy
composer global require laravel/envoy
パスを通します。
cd
vi .bash_profile
次の内容を追加
# laravel / envoy
export PATH="~/.composer/vendor/bin:$PATH"
envoy -v
次のようにバージョンが帰って来ればインストール成功です
Laravel Envoy 1.5.0
Usage:
command [options] [arguments]
(ディレクトリはどこでもokです。自分で好きなディレクトリを作成し、そのディレクトリ内で Envoy コマンドを作成して実行できます。)
ディレクトリの作成
mkdir test
cd test
envoyコマンドファイルの作成 (ローカルで作業する場合)
envoy init 127.0.0.1
envoyコマンドファイルの作成 ( 他のサーバに対して作業する場合)
envoy init [user]@[host]
実行するとカレントディレクトリに Envoy.blade.php が生成されます。
少し編集して以下のようにします。
@servers(['web' => '127.0.0.1'])
@task('deploy')
cd /path/to/site
git pull origin master
@endtask
@task('hoge')
ls -la
@endtask
上の例ではタスク deploy と hoge が登録されています。
envoy run hoge
実行結果
[127.0.0.1]: total 8
[127.0.0.1]: drwxr-xr-x 3 akimitsu staff 96 6 26 22:44 .
[127.0.0.1]: drwxr-xr-x+ 45 akimitsu staff 1440 6 26 22:43 ..
[127.0.0.1]: -rw-r--r--@ 1 akimitsu staff 144 6 26 22:44 Envoy.blade.php
このようにタスクを登録して使用します。
envoy tasks
複数のタスクをまとめてストーリーとして登録しておいてそのストーリーを 実行することができます。
Envoy.blade.php ファイル内に以下を記述
@story('story_deploy_all__dev')
task_deploydev_cms
task_deploydev_html
@endstory
envoy run story_deploy_all__dev