Laravel Envoy は、リモートホスト上で実行される一般的なタスクを定義するためのクリーンで単純化された構文を提供します。 Blade スタイルの構文を使用すると、開発用のタスクやアーティザン コマンドなどを簡単に設定できます。現在、Envoy は Mac と Linux オペレーティング システムのみをサポートしています。
まず、Composer のグローバル コマンドを使用して Envoy をインストールします:
composer global require "laravel/envoy=~1.0"
~/.composer/vendor/bin ディレクトリがシステム パス PATH にあることを確認してください。そうでない場合、envoy をインストールできないため、ターミナルでコマンドを実行できません。見つかった。
Envoy を更新する
Composer を使用して、インストールされている Envoy を最新バージョンに保つこともできます。
composer global update
@servers(['web' => 'user@192.168.1.1'])@task('foo', ['on' => 'web']) ls -la@endtask
スタートアップ
Envoy タスクを評価する前に、いくつかの PHP コードを実行する必要がある場合があります。Envoy ファイルで @setup ディレクティブを使用して、変数と実行される PHP コードを宣言できます。
@setup $now = new DateTime(); $environment = isset($env) ? $env : "testing";@endsetup
@include('vendor/autoload.php');
サーバー上で特定のタスクを実行する前に確認のポップアップ プロンプトが必要な場合は、タスク ステートメントで確認ディレクティブを使用できます:
@task('deploy', ['on' => 'web', 'confirm' => true]) cd site git pull origin {{ $branch }} php artisan migrate@endtask
envoy run deploy --branch=master
@servers(['web' => '192.168.1.1'])@task('deploy', ['on' => 'web']) cd site git pull origin {{ $branch }} php artisan migrate@endtask
@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])@task('deploy', ['on' => ['web-1', 'web-2']]) cd site git pull origin {{ $branch }} php artisan migrate@endtask
並列実行
複数のサーバーで並列実行したい場合は、タスク宣言に並列オプションを追加します:
@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])@task('deploy', ['on' => ['web-1', 'web-2'], 'parallel' => true]) cd site git pull origin {{ $branch }} php artisan migrate@endtask
@servers(['web' => '192.168.1.1'])@macro('deploy') git composer@endmacro@task('git') git pull origin master@endtask@task('composer') composer install@endtask
envoy run deploy
envoy run task
@servers(['web' => '192.168.1.1'])@task('foo', ['on' => 'web']) ls -la@endtask@after @hipchat('token', 'room', 'Envoy')@endafter
必要に応じて、Envoy タスクで有効なすべての変数は、メッセージの作成時にも有効です:
@after @hipchat('token', 'room', 'Envoy', "{$task} ran in the {$env} environment.")@endafter
4.2 Slack
@after @slack('hook', 'channel', 'message')@endafter
Slack Web サイトに統合された Incoming WebHook を作成することでフック URL を取得できます。フック パラメータは Incoming によって統合されます。 Webhook Slack 完全な Webhook URL を指定します。例:
https://hooks.slack.com/services/ZZZZZZZZZ/YYYYYYYYY/XXXXXXXXXXXXXXX
次の 2 つのいずれかをチャネル パラメーターとして指定できます:
チャネルにメッセージを送信します: #channel