foodkit/laravel-deployer

一个不使用符号链接版本的 Deployer 脚本,适用于 Laravel 项目。

1.0.21 2017-09-07 08:20 UTC

This package is auto-updated.

Last update: 2024-09-17 22:21:44 UTC


README

这是一个 Deployer 脚本,用于 Laravel 部署,不能(或更愿意不)依赖于符号链接。相反,Git 仅用于直接在服务器上更新代码库。

安装

通过 composer 安装此包

composer require foodkit/laravel-deployer

配置

在项目的根目录中定义 deploy.php 文件

<?php

namespace Deployer;

require __DIR__.'/vendor/foodkit/laravel-deployer/src/laravel-norevision.php';

// Configuration
set('ssh_type', 'native');
set('ssh_multiplexing', true);
set('branch', 'production');
set('repository', 'git@github.com:company/project.git');

// Servers
server('production', '1.2.3.4')
    ->user('root')
    ->identityFile()
    ->set('deploy_path', '/var/www/project');

您可能希望独立运行部署(不是项目的一部分)。这将跳过对本地存储库状态的某些检查。在这种情况下,使用 standalone 标志

set('standalone', true);

此外,如果您的项目不需要,可以禁用迁移步骤

set('migration', false);

Slack 集成

如果您想与 Foodkit 的发布说明生成器集成,请添加以下内容

option('start', null, InputOption::VALUE_OPTIONAL, 'The start tag/branch');
option('end', null, InputOption::VALUE_OPTIONAL, 'The end tag/branch');

set('slack_title', 'Release notes');
set('slack_color', '#4d91f7');
set('slack_emoji', ':ghost:');
set('slack_name', 'Laravel Deployer');
set('slack_webhook', 'https://hooks.slack.com/services/ABCDEFGH/IJLMNOPQ/OJI7OA9IU1BAJgGj4ge3YD9A');
set('release_notes_command', 'vendor/bin/release-notes generate');

然后使用 startend 命令行参数运行部署

API 集成

如果您想将发布说明发送到 API 端点,请添加以下内容

option('start', null, InputOption::VALUE_OPTIONAL, 'The start tag/branch');
option('end', null, InputOption::VALUE_OPTIONAL, 'The end tag/branch');

set('api_endpoint', 'https://api.product.com');

after('deploy', 'slack:send-release-notes-api');

然后使用 startend 命令行参数运行部署

如何部署

运行部署命令

php vendor/bin/dep deploy production

可选地,可以在命令行中指定标签或分支

php vendor/bin/dep deploy production --tag="v0.1"
php vendor/bin/dep deploy production --branch="develop"

可选地,如果您正在与发布说明生成器集成

php vendor/bin/dep deploy production --tag="v1.0.8" --start="v1.0.7" --end="v1.0.8"

要查看确切发生的事情,可以使用 --verbose 选项增加输出的详细程度

  • -v 用于常规输出
  • -vv 用于更多详细输出
  • -vvv 用于调试

对于语义版本

如果您使用语义版本,则仓库内置了 "hotfix" 和 "release" 任务。

hotfix

php vendor/bin/dep hotfix production

这将获取最新的标签,增加 0.0.1,创建一个新的标签并部署。

发布

php vendor/bin/dep release production

与 hotfix 命令相同,但它将最新标签增加 0.1

贡献

查看 问题列表

master 上提交拉取请求。