導語
以前是使用 Git Hook 實現自動部署,現在改爲使用 Laravel Envoy,記錄一下。
安裝以及初始化
前提條件是可以免密登陸服務器,可以看這篇文章
- 執行
composer global require laravel/envoy
進行安裝 - 新建文件
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
編寫任務
執行完上面的步驟後,就可以編寫部署任務了。
- 簡單一些的部署,在上面的基礎上進行修改、添加命令即可,如下
@servers(['web' => 'user_name@ip_path'])
@task('deploy')
cd /path/to/site
git pull origin master
composer install --no-dev
@endtask
- 複雜一些可以聲明變量,以及使用
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
- 如果用了 Laradock,可以使用這樣的命令
docker exec -u=laradock laradock_workspace_1 bash -c 'cd path && composer install --no-dev'
執行
使用 envoy run deploy
執行即可。注意要將 Envoy.blade.php
文件加入 .gitignore
防止泄漏重要信息。