<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Envoy 任務運行器 - [簡介](#introduction) - [安裝](#installation) - [編寫任務](#writing-tasks) - [任務啟動](#setup) - [任務變量](#task-variables) - [任務故事](#stories) - [多個服務器](#multiple-servers) - [運行任務](#running-tasks) - [任務確認](#confirming-task-execution) - [通知](#notifications) - [Slack](#slack) <a name="introduction"></a> ## 簡介 [Laravel Envoy](https://github.com/laravel/envoy) 為定義在遠程服務器上運行的通用任務提供了一種簡潔、輕便的語法。它使用了 Blade 風格的語法,讓你可以很方便的啟動任務來進行項目部署、Artisan 命令運行等操作。目前,Envoy 只支持 Mac 及 Linux 操作系統。 <a name="installation"></a> ### 安裝 因為 Composer 的全局庫有時會導致包的版本沖突,所以你可以考慮使用 `cgr`,它是 `composer global require` 命令的一種替代實現。`cgr` 庫的安裝指導可以在 [GitHub上找到](https://github.com/consolidation-org/cgr)。 > {note} 一定要確保 `~/.composer/vendor/bin` 目錄加入到了你的 PATH 中,這樣才能在命令行運行 `envoy`。 #### 更新 Envoy 你也可以使用 Composer 來更新 Envoy 到最新版本。 要注意 `composer global update` 命令是更新你所有在全局安裝的包。 composer global update <a name="writing-tasks"></a> ## 編寫任務 所有的 Envoy 任務都必須定義在項目根目錄的 `Envoy.blade.php` 文件中,這里有個例子: @servers(['web' => 'user@192.168.1.1']) @task('foo', ['on' => 'web']) ls -la @endtask 如你所見,`@servers` 的數組被定義在文件的起始位置處,讓你在聲明任務時可以在 `on` 選項里參照使用這些服務器。在你的 `@task` 聲明里,你可以放置當任務運行時想要在遠程服務器運行的 Bash 命令。 你可以通過指定服務器的IP地址為 `127.0.0.1` 來執行本地任務: @servers(['localhost' => '127.0.0.1']) <a name="setup"></a> ### 任務啟動 有時,你可能想在任務啟動前運行一些 PHP 代碼。這時可以使用 ```@setup``` 區塊在 Envoy 文件中聲明變量以及運行普通的 PHP 程序: @setup $now = new DateTime(); $environment = isset($env) ? $env : "testing"; @endsetup 如果你想在任務執行前引入其他 PHP 文件,可以直接在 `Envoy.blade.php` 文件起始位置使用 `@include`: @include('vendor/autoload.php') @task('foo') # ... @endtask <a name="variables"></a> ### 任務變量 如果需要的話,你也可以通過命令行選項來傳遞變量至 Envoy 文件,以便自定義你的任務: envoy run deploy --branch=master 你可以通過 Blade 的「echo」語法使用這些選項, 當然也能在任務里用「if」 和循環操作。舉例來說,我們在執行 `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 <a name="stories"></a> ### 任務故事 任務故事通過一個統一的、便捷的名字來劃分一組任務,來讓你把小而專的子任務合并到大的任務里。比如說,一個名為 `deploy` 的任務故事可以在它定義范圍內列出子任務名字 `git` 和 `composer` 來運行各自對應的任務: @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 <a name="multiple-servers"></a> ### 多個服務器 你可以在多個服務器上運行任務。首先,增加額外的服務器至你的 `@servers` 聲明,每個服務器必須分配一個唯一的名稱。一旦你定義好其它服務器,就能夠在任務聲明的 `on` 數組中列出這些服務器: @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 #### 并行運行 默認情況下,任務會按照順序在每個服務器上運行。這意味著任務會在第一個服務器運行完后才跳到第二個。如果你想在多個服務器上并行運行任務,只需簡單的在任務聲明里加上 `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 <a name="running-tasks"></a> ##運行任務 要想運行一個在 `Envoy.blade.php` 文件中定義好的任務或者故事,就執行 Envoy 的 `run` 命令,并將這個任務的名字傳遞給它。Envoy 會去執行這個任務并且把任務執行過程中的輸出給打印出來: envoy run task <a name="confirming-task-execution"></a> ### 任務確認 如果你想要在運行任務之前進行提示確認,則可以增加 `confirm` 命令到任務聲明。這個選項對于破壞性的操作來說是相當有用的: @task('deploy', ['on' => 'web', 'confirm' => true]) cd site git pull origin {{ $branch }} php artisan migrate @endtask <a name="notifications"></a> <a name="hipchat-notifications"></a> ## 通知 <a name="slack"></a> ### Slack Envoy 也支持任務執行完畢后發送通知至 [Slack](https://slack.com)。`@slack` 命令接收 Slack hook 網址和頻道名稱。當你在 Slack 的網站控制面板上創建 `Incoming WebHooks` 時會獲得 webhook 網址。`webhook-url` 參數必須是 Slack 的 Incoming WebHooks 所提供的完整網址: @after @slack('webhook-url', '#bots') @endafter 你可以選擇下方的任意一個來作為 channel 參數: <div class="content-list" markdown="1"> - 如果要發送通知至一個頻道:`#channel` - 如果要發送通知給一位用戶:`@user` </div>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看