人気のPHP WEBアプリケーションフレームワークLaravelのTipsを記録していきます

タスクランナー Laravel Envoy と git を使って本番環境へのデプロイを自動化する

● タスクランナー Laravel Envoy と git を使って本番環境へのデプロイを自動化する

本番環境にデプロイするときに複数のリポジトリからデータを取ってくる必要があったりだとか
何かシェルコマンドを実行する必要があったりだとか処理が多い場合はタスクランナーを是非使いましょう。
Envoyは シンプルでとても使いやすいタスクランナーです。
(Laravel がインストールされていなくても使用することができます)

● Laravel Envoy 公式ドキュメント

https://readouble.com/laravel/5.8/ja/envoy.html
https://laravel.com/docs/5.8/envoy

● Laravel 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]

● Eovoy コマンドの作成

(ディレクトリはどこでも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

上の例ではタスク deployhoge が登録されています。

● Envoy タスクの実行

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タスクを確認する

envoy tasks

● Envoy 複数タスク(ストーリー)の実行

複数のタスクをまとめてストーリーとして登録しておいてそのストーリーを 実行することができます。

ストーリーの登録 

Envoy.blade.php ファイル内に以下を記述

@story('story_deploy_all__dev')
    task_deploydev_cms
    task_deploydev_html
@endstory

ストーリーの実行 

envoy run story_deploy_all__dev
No.1537
06/28 18:35

edit