terminal42 / mage-tools
Magephp 工具,简化 Contao 和 Symfony 系统的部署。
Requires
- php: >=5.5
- andres-montanez/magallanes: ^3.4 || ^4.0
- symfony/yaml: ^3.0 || ^4.0
Requires (Dev)
- backup-manager/symfony: ^2.1
Suggests
- backup-manager/symfony: To perform database backup before modifying database
- smart-core/accelerator-cache-bundle: To clear OpCode and other caches using AcceleratorCacheClearTask
Conflicts
- smart-core/accelerator-cache-bundle: <1.2 || >=2.0
This package is auto-updated.
Last update: 2024-08-29 04:49:31 UTC
README
为 Magallanes PHP 部署工具提供一系列预定义任务和有用的库。
大多数任务都是为了简化 Symfony 和 Contao 应用程序的部署而创建的。以下列表提供了所有可用任务及其配置的完整列表。
用法
要使用这些任务,只需将它们添加到您的 .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