avris/deployer

简单的部署助手

维护者

详细信息

gitlab.com/Avris/Deployer

源代码

问题

安装: 18

依赖项: 0

建议者: 0

安全: 0

星星: 0

分支: 1

类型:项目

v1.0 2024-07-04 20:31 UTC

This package is auto-updated.

Last update: 2024-09-04 18:49:07 UTC


README

简单的部署助手。此脚本

  • 克隆给定的存储库和分支到一个新目录(即不干扰处理过程中的实时进程)
  • 创建部署间共享文件的符号链接(例如日志目录或.env
  • 执行部署命令(默认为make deploy
  • 清理完成部署后不再需要的文件(例如.gitnode_modules
  • 清理旧版本(默认保留最新的3个)
  • 将最新版本符号链接为current目录
  • (可选)在部署的特定阶段运行额外命令。

安装

composer global require avris/deployer

为了执行全局安装的composer二进制文件,将以下内容添加到您的~/.bashrc / ~/.zshrc

export PATH="$(composer config -g home)/vendor/bin:$PATH"

用法

创建一个部署文件夹,并在其中初始化Deployer

mdkir project_name
cd project_name
deployer init <repo_url>

此命令将创建一个shared目录。将所有应该在部署间共享的文件放在那里。

它还将创建deploy.php文件。此文件包含部署的所有配置,其外观如下所示

<?php

return new class extends \Avris\Deployer\Config
{
        public function repositoryUrl(): string
        {
                return 'git@gitlab.com:Avris/OurSong.git';
        }

        public function sharedFiles(): iterable
        {
                yield '.env';
                yield 'keys';
                yield 'server/.env.local';
                yield 'server/var/geo.json';
                yield 'server/var/log';
        }

        public function finish(): iterable
        {
                yield ['sudo', 'service', 'php8.3-fpm', 'restart'];
        }
};

默认情况下,将要执行的构建发布版本的命令是make deploy。要使其生效,在项目的存储库中创建一个Makefile,例如。

deploy:
    composer install --no-dev --optimize-autoloader
    bin/console doctrine:migration:migrate -n
    yarn
    yarn build

可以在配置文件中指定的方法

  • repositoryUrl(必需)
  • branch(默认为main
  • keepReleases(默认为3)- 应在release文件夹中保留多少个目录(允许快速回滚到以前的版本)
  • sharedFiles - 文件或目录(相对路径)列表,应在发布间共享(通过从shared符号链接到每个发布)
  • removeFiles - 文件或目录(相对路径)列表,在构建步骤完成后应删除
  • build(默认为[make deploy])- 构建项目(编译等)的命令列表
  • 钩子 - 在各个阶段执行的命令列表
    • before - 在部署开始时运行
    • after - 在build之后立即运行
    • beforeRemove - 在清理旧版本之前立即运行(在版本的工作目录中)
    • finish - 在部署结束时运行
    • beforeSwitchVersion - 在切换到不同版本之前立即运行
    • afterSwitchVersion - 在切换到不同版本之后立即运行
    • reload - 在两次部署和切换的最后运行(例如,用于重新加载Apache)

现在您可以执行部署了:只需运行deployer(或deployer <branch>,如果您想覆盖默认分支)。

要切换版本,请运行deployer version list|prev|next

版权