国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Envoy 部署工具

Envoy 部署工具


Laravel Envoy

簡介

Laravel Envoy 為定義遠程服務器的日常任務,提供了一套簡潔、輕量的語法。Blade 風格語法即可實現(xiàn)部署任務的配置、Artisan 命令的執(zhí)行等。目前,Envoy 僅支持 Mac 和 Linux 操作系統(tǒng)。.

安裝

首先,運行 Composer 的 global require 命令進行全局安裝 Envoy:

composer global require laravel/envoy

由于全局 Composer 庫有時會導致包版本沖突,因此您可能希望考慮使用 cgr ,它是 composer global require 命令的直接替代品。  cgr 庫的安裝說明可參閱 found on GitHub.

確保將 ?/ .composer / vendor / bin 目錄放在 PATH 中,以便在終端中運行 envoy 命令時找到 envoy 可執(zhí)行文件。

更新 Envoy

您也可以使用 Composer 使您的 Envoy 安裝保持最新。 使用 composer global update 命令將更新所有全局安裝的 Composer 包:

composer global update

編寫任務

您的所有 Envoy 任務都應該在項目根目錄中的 Envoy.blade.php 文件中定義。 這是一個讓你入門的例子:

@servers(['web' => ['user@192.168.1.1']])
@task('foo', ['on' => 'web'])
    ls -la
@endtask

如您所見,在文件頂部定義了一個 @server 數(shù)組,允許您在任務聲明的 on 選項中引用這些服務器。 在你的 @ task 聲明中,你應該放置在任務執(zhí)行時應該在你的服務器上運行的 Bash 代碼。

您可以通過將服務器的 IP 地址指定為 127.0.0.1 來強制腳本在本地運行:

@servers(['localhost' => '127.0.0.1'])

配置

有時,您可能需要在執(zhí)行 Envoy 任務之前執(zhí)行一些 PHP 代碼。 您可以使用 @ setup 指令聲明變量,并在執(zhí)行任何其他任務之前執(zhí)行其他常規(guī) PHP 工作:

@setup
    $now = new DateTime();    
    $environment = isset($env) ? $env : "testing";
@endsetup

如果在執(zhí)行任務之前需要其他 PHP 文件,可以在 Envoy.blade.php 文件的頂部使用 @include 指令:

@include('vendor/autoload.php')
@task('foo')   
 # ...
@endtask

變量

如果需要,您可以使用命令行將選項值傳遞到 Envoy 任務:

envoy run deploy --branch=master

您可以通過 Blade 的「echo」 語法訪問任務中的選項。 您也可以在任務中使用 if 語句和循環(huán)。 例如,在執(zhí)行 git pull 命令之前,讓我們驗證 $ branch 變量的存在:

@servers(['web' => '192.168.1.1'])
@task('deploy', ['on' => 'web'])
    cd site

    @if ($branch)
        git pull origin {{ $branch }}
    @endif

    php artisan migrate
@endtask

Stories

Stories 將一組任務分組在一個方便的名稱下,允許您將小型,集中的任務分組到大型任務中。 例如, deploy 故事可以通過在其定義中列出任務名稱來運行 gitcomposer 任務:

@servers(['web' => '192.168.1.1'])
@story('deploy')
    git
    composer
@endstory

@task('git')
    git pull origin master
@endtask

@task('composer')
    composer install
@endtask

一旦編寫了 story ,你可以像一個典型的任務一樣運行它:

envoy run deploy

多服務器

Envoy 允許您輕松跨多個服務器運行任務。 首先,在 @server 聲明中添加其他服務器。 應為每個服務器分配一個唯一的名稱。 定義了其他服務器后,列出任務的「on」數(shù)組中的每個服務器:

@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

并行運行

默認情況下,將在每個服務器上串行執(zhí)行任務。 換句話說,任務將在繼續(xù)在第二臺服務器上執(zhí)行之前在第一臺服務器上完成運行。 如果您想并行運行多個服務器上的任務,請在任務聲明中添加 parallel 選項:

@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

運行任務

要運行在 Envoy.blade.php 文件中定義的任務或故事,請執(zhí)行 Envoy 的 run 命令,傳遞您要執(zhí)行的任務或故事的名稱。 當任務運行時, Envoy 將運行任務并顯示服務器的輸出:

envoy run task

任務確認

如果您希望在服務器上運行給定任務之前提示您進行確認,則應將 confirm 指令添加到任務聲明中。 此選項對于破壞性操作特別有用:

@task('deploy', ['on' => 'web', 'confirm' => true])
    cd site
    git pull origin {{ $branch }}
    php artisan migrate
@endtask

消息通知

Slack

Envoy 還支持在執(zhí)行每個任務后向 Slack 發(fā)送通知。   @slack 指令接受 Slack 鉤子 URL 和通道名稱。 您可以通過在 Slack 控制面板中創(chuàng)建 Incoming WebHooks 集成來檢索您的 webhook URL 。 您應該將整個 webhook URL 傳遞給 @slack 指令:

@finished
    @slack('webhook-url', '#bots')
@endfinished

您可以提供以下其中一項作為頻道參數(shù):

  • 給頻道發(fā)送通知: #channel
  • 給用戶發(fā)送通知: @user

Discord

Envoy 還支持在執(zhí)行每項任務后向 Discord 發(fā)送通知。  @ discord 指令接受 Discord 鉤子 URL 和消息。 您可以通過在 Webhook 中創(chuàng)建 Webhook 并選擇 webhook 應發(fā)布到哪個頻道來檢索您的 webhook URL。 您應該將整個 Webhook URL 傳遞到 @ discord 指令:

@finished
    @discord('discord-webhook-url')
@endfinished
本文章首發(fā)在 LearnKu.com 網(wǎng)站上。