使用 Laravel Envoy 实现自动部署

导语

之前是使用 Git Hook 实现自动部署,如今改成使用 Laravel Envoy,记录一下。php

安装以及初始化

前提条件是能够免密登录服务器,能够看这篇文章html

  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

编写任务

执行完上面的步骤后,就能够编写部署任务了。laravel

  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 防止泄漏重要信息。git


参考资料:Laravel EnvoyLaravel Envoy 文档github

相关文章
相关标签/搜索