导语

以前是使用 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')gitcomposer@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 Envoy、Laravel Envoy 文档。