terminal42/mage-tools

Magephp 工具,简化 Contao 和 Symfony 系统的部署。

1.0.0 2018-10-02 08:28 UTC

This package is auto-updated.

Last update: 2024-08-29 04:49:31 UTC


README

Magallanes PHP 部署工具提供一系列预定义任务和有用的库。

大多数任务都是为了简化 SymfonyContao 应用程序的部署而创建的。以下列表提供了所有可用任务及其配置的完整列表。

用法

要使用这些任务,只需将它们添加到您的 .mage.yml 文件中。推荐的设置是

pre-deploy:
    - 'Terminal42\MageTools\Task\IntegrityCheck\ContaoTask'
on-deploy:
    # ... symlinks, composer install ...
    - 'Terminal42\MageTools\Task\Symfony\PlatformReleaseTask'
    # ... symfony cache warmup, symfony assets install ...
    - 'Terminal42\MageTools\Task\Maintenance\LockTask'
on-release:
    - 'Terminal42\MageTools\Task\Symfony\AcceleratorCacheClearTask'
post-release:
    - 'Terminal42\MageTools\Task\Backup\DatabaseBackupTask'
    - 'Terminal42\MageTools\Task\Doctrine\MigrateTask'
    - 'Terminal42\MageTools\Task\Doctrine\CacheClearTask'
    # ... symfony cache clear ...
    - 'Terminal42\MageTools\Task\Maintenance\UnlockTask'

可用任务

Terminal42\MageTools\Task\Symfony\AcceleratorCacheClearTask

清除加速器缓存。需要 AcceleratorCacheBundle 才能正常工作。

on-release:
    - 'Terminal42\MageTools\Task\Symfony\AcceleratorCacheClearTask': { flags: "--opcode" }
Terminal42\MageTools\Task\Symfony\PlatformReleaseTask

更新参数.yml 文件中的平台版本。使用 git describe 内部获取版本,并将输出作为 platform_version 添加到您的 parameters.yml 文件中。

on-deploy:
    - 'Terminal42\MageTools\Task\Symfony\PlatformReleaseTask'

备份

Terminal42\MageTools\Task\Backup\DatabaseBackupTask

使用 backup-manager/symfony bundle 运行数据库备份任务。在更改数据库之前应该运行此任务。参数反映了在 bm_backup_manager 下的 bundle 配置。

post-release:
    - 'Terminal42\MageTools\Task\Backup\DatabaseBackupTask': { database: 'production', storage: 'local' }

    # Optional parameters:
    # - filename (defaults to: Y-m-d-H:i:s.sql)
    # - compression (defaults to: none)
    # - flags (defaults to: none)

Contao

Terminal42\MageTools\Task\Contao\AutomatorTask

运行 Contao 自动化任务。您必须提供任务名称。执行 "vendor/bin/contao-console contao:automator" 命令以查看可用任务。

post-release:
    - 'Terminal42\MageTools\Task\Contao\AutomatorTask': { task: 'purgeSearchCache', env: 'prod' }

Doctrine

Terminal42\MageTools\Task\Doctrine\CacheClearTask

清除 Doctrine 元数据、查询和结果缓存。

post-release:
    - 'Terminal42\MageTools\Task\Doctrine\CacheClearTask': { env: 'prod' }
Terminal42\MageTools\Task\Doctrine\MigrateTask

运行 Doctrine 迁移。

post-release:
    - 'Terminal42\MageTools\Task\Doctrine\MigrateTask': { env: 'prod' }

完整性检查

Terminal42\MageTools\Task\IntegrityCheck\ContaoTask

通过在 Symfony 控制台中执行 contao:version 命令来检查 Contao。

pre-deploy:
    - 'Terminal42\MageTools\Task\IntegrityCheck\ContaoTask'

维护

Terminal42\MageTools\Task\Maintenance\LockTask

启用维护模式。

on-deploy:
    - 'Terminal42\MageTools\Task\Maintenance\LockTask': { env: 'prod' }
Terminal42\MageTools\Task\Maintenance\UnlockTask

禁用维护模式。

post-release:
    - 'Terminal42\MageTools\Task\Maintenance\UnlockTask': { env: 'prod' }

自定义命令

部署全部

将系统部署到所有配置的环境。

vendor/bin/mage-terminal42 deploy-all

通过 SSH 连接

允许根据配置的环境打开 SSH 连接。

基本用法(将使用环境定义的第一个主机)

vendor/bin/mage-terminal42 ssh production

对于多个主机,您有配置

hosts:
    - webserver1
    - webserver2
    - webserver3

您可以使用以下方式连接到它们

vendor/bin/mage-terminal42 ssh --host=webserver3 production
vendor/bin/mage-terminal42 ssh --host=2 production