使用 Laravel Envoy 實現自動部署

導語

以前是使用 Git Hook 實現自動部署,現在改爲使用 Laravel Envoy,記錄一下。

安裝以及初始化

前提條件是可以免密登陸服務器,可以看這篇文章

  1. 執行 composer global require laravel/envoy 進行安裝
  2. 新建文件 envoy init user_name@ip_path,執行操作後,會創建 Envoy.blade.php 文件如下
@servers(['web' => 'user_name@ip_path'])

@task('deploy')
    cd /path/to/site
    git pull origin master
@endtask

編寫任務

執行完上面的步驟後,就可以編寫部署任務了。

  1. 簡單一些的部署,在上面的基礎上進行修改、添加命令即可,如下
@servers(['web' => 'user_name@ip_path'])

@task('deploy')
    cd /path/to/site
    git pull origin master
    composer install --no-dev
@endtask
  1. 複雜一些可以聲明變量,以及使用 story,將多個 task 進行拆分,如下
@servers(['web' => 'user_name@ip_path'])

@setup
$path = '/path/to/site';
@endsetup

@story('deploy')
git
composer
@endstory

@task('git')
cd $path
git pull origin master
@endtask

@task('composer')
composer install --no-dev
@endtask
  1. 如果用了 Laradock,可以使用這樣的命令 docker exec -u=laradock laradock_workspace_1 bash -c 'cd path && composer install --no-dev'

執行

使用 envoy run deploy 執行即可。注意要將 Envoy.blade.php 文件加入 .gitignore 防止泄漏重要信息。


參考資料:Laravel EnvoyLaravel Envoy 文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章