kodilab / deployer
Deployer
Requires
- php: >=7.0
- illuminate/console: 5.5.*|5.6.*|5.7.*|5.8.*
- illuminate/support: 5.5.*|5.6.*|5.7.*|5.8.*
- phpseclib/phpseclib: ~2.0
- symfony/console: ~4.0
Requires (Dev)
- fzaninotto/faker: ^1.4
- orchestra/testbench: ~3.0
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2020-09-09 18:11:37 UTC
README
1 - 免责声明
Deployer 是一个无需人工干预的脚本。然而,为了让您检查 Deployer 将要进行的更改,它将打印更改列表,并在开始过程前等待 15 秒。如果您看到意外的情况,请关闭进程。
此外,Deployer 还可以以 模拟模式
启动,以模拟部署过程(不会在生产环境中进行更改),以便您检查将要修改/添加/删除的文件。
请考虑在发现错误或意外行为时填写问题。这将有助于使 Deployer 更加完善。
2 - Deployer 是什么
Deployer 是一个无需人工干预的脚本,它比较生产项目版本和当前版本,以列出已更改的文件(这意味着:新文件、修改文件和删除文件),并使用 SFTP 或 FTP(目前提供 SFTP 和 FTP,但可以轻松添加更多协议)在上传/删除它们到生产环境。
它使用 git(您的项目必须在 Git 仓库中)来比较版本。并解析 composer.lock
文件以了解项目所需的 composer 包哪些是新的/更新的/删除的。
2.1 - BUILD 文件
为了使 Deployer 了解生产环境版本,它将在生产环境中生成一个名为 BUILD
的文件,其中包含提交引用。此文件应可由 Deployer 访问,因为它将在部署过程的初始步骤中尝试下载它。如果 Deployer 无法获取此文件,则将比较项目的第一个提交(这意味着,它将部署所有跟踪的文件)。
您可以在调用 Deployer 时手动指定提交 SHA 引用以更改此行为。您可以在 如何使用它
部分中查看此操作。
3 - 入门
Deployer 已经被设计成可以在任何 PHP 项目中工作。如果您正在开发 Laravel 项目,一个 Laravel 集成包可以在这里找到。
您可以使用以下命令将 deployer 安装到您的项目中:
composer require kodilab/deployer dev-master
如何使用它
您可以使用 deploy_it()
辅助方法调用 Deployer。这是该函数的签名
deploy_it(string $project_path, array $config = [], string $from_commit = null)
- project_path 是项目存在的路径
- config 配置数组。在下一节中解释。
- from_commit(optional) 您可以定义 SHA 提交引用而不是从生产环境下载。
以下是一个启动 Deployer 的脚本示例
<?php
deploy_it($project_path, $config);
4 - 配置
Deployer 配置是一个数组,它在实例化 Deployer 时定义。在 config/config.php
文件中提供了一个配置数组示例,您可以使用它作为示例。该文件包含每个参数的注释,以便根据您的需要调整 deployer
。看看吧!
4.1 - 协议
协议让deployer
知道部署必须遵循的方式。目前实现了3种不同的协议:FTP
、SFTP
和Simulate
。最后一个Simulate
是一种特殊的协议,用于模拟部署过程,以便让你了解deployer
在没有对生产环境进行任何更改的情况下会如何工作。
Deployer
已被设计为可扩展的,可以添加更多协议。