valorin/deploy

Deploy 是一个 Artisan 命令,旨在提供一个非常简单的方式来部署您的代码到预发布和生产环境,同时确保应用了有效的版本标签。

v1.3.0 2014-09-19 04:42 UTC

This package is auto-updated.

Last update: 2024-09-08 20:12:08 UTC


README

Deploy 受到 Laravel Envoy 的启发,旨在提供一个非常简单的方式来部署您的代码到生产环境,同时确保应用了有效的版本标签。它允许您在任何时候部署到预发布/验收环境,当您推送到生产环境时,将额外执行一个版本标签检查,以确保所有生产版本都被适当地标记。

它使用在 app/config/remote.php 中配置的远程主机,并以 Artisan 命令的形式集成到您的应用程序中,因此部署代码就像这样: ./artisan deploy

自 v1.2 版本起,它包括指定自定义标签的功能,这些标签可以在命令执行时替换,允许您指定如下命令

$commands = ['git pull -f {remote|origin} {branch|master}'];

但根据需要应用自定义分支和远程名称

php artisan deploy --remote=github --branch=production

安装

使用 composer 将包添加到您的应用程序中

composer require "valorin/deploy:~1.2"

DeployServiceProvider 服务提供者添加到 ./app/config/app.php 中的 providers 列表

'providers' => array(
    ...
    'Valorin\Deploy\DeployServiceProvider',
),

更新 app/config/remote.php 以至少包含一个远程主机。

使用方法

要部署到在 app/config/remote.php 中指定的远程主机,请运行 deploy 命令并指定远程主机名称(键,不是主机名),或者将其留空以使用默认远程

./artisan deploy <name>

默认情况下,Deploy 将执行以下操作

首先,在 本地环境 中,它将检查指定的远程名称。如果是 production,它将触发版本标签检查。

版本标签检查会在最新提交中查找有效的 语义版本 标签。如果没有找到,它将计算多种发布类型的下一个可能的版本(主要、次要、补丁、rc 等),并提示您选择一个。当您选择了有效的版本后,Deploy 将标记您的最新提交。

一旦存在有效的版本标签,或者您没有部署到生产环境,Deploy 将执行一个 git push 来确保您没有忘记推送任何内容。

在推送成功后,它将连接到远程服务器并运行预定义的命令列表

'commands' => array(
    'down'     => 'php artisan down',
    'checkout' => 'git checkout -f {branch|master}',
    'fetch'    => 'git fetch {remote|origin}',
    'tags'     => 'git fetch {remote|origin} --tags',
    'pull'     => 'git pull -f {remote|origin} {branch|master}',
    'composer' => 'composer install {composer-args|--no-dev}',
    'up'       => 'php artisan up',
    'queue'    => 'php artisan queue:restart',
)

注意:所有这些选项和行为都可以在配置中进行自定义。

使用选项标签

Deploy 支持使用选项标签,允许您在运行 deploy 时通过命令行传递参数(甚至是命令),而不是需要手动扩展和编辑配置文件。

如上所示的默认命令列表所示,标签的格式为 {option}{option|default}。当您指定一个没有默认值的 {option} 时,如果没有提供选项,Deploy 将抛出错误。

选项通过添加格式为 --set-option=value 的参数进行指定,其中 --set- 是选项名称的前缀。

使用默认命令(如上所示),您可以告诉 Deploy 使用 github 远程和 production 分支,如下所示

php artisan deploy --set-remote=github --set-branch-production

配置

要更改默认配置,请运行

./artisan config:publish "valorin/deploy"

然后编辑配置文件

./app/config/packages/valorin/deploy/config.php

该文件将包含每个选项的解释,因此您可以根据需要自定义 Deploy。

版本历史

  • v1.3.0
    • 支持Laravel 5,并从Laravel核心框架中移除了远程/SSH。
  • v1.2.1
  • v1.2.0
    • 实现了选项标签,使命令更加灵活。
    • 为每个默认命令添加了键名,以便扩展更简单。
    • 使用新的选择器清理了下一个版本提示。
  • v1.1.0
    • 清理了默认配置,使其对新用户更友好。
  • v1.0.0
    • 首次发布

* 注意,存在一个bug,阻止了嵌套包配置的级联。