terminal42 / mage-tools
Magephp tools for easier deployment of Contao and Symfony systems.
Installs: 22 007
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 7
Forks: 0
Open Issues: 0
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-10-29 05:10:30 UTC
README
A set of predefined tasks and helpful libraries for the Magallanes PHP Deployment Tool.
Most of the tasks were created to ease the deployment of Symfony and Contao applications. Check the list below for a full list of available tasks and their configurations.
Usage
To use the tasks simply added them to your .mage.yml
file. The recommended setup is:
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'
Available tasks
Terminal42\MageTools\Task\Symfony\AcceleratorCacheClearTask
Clears the accelerator cache. The AcceleratorCacheBundle is required for this to work.
on-release: - 'Terminal42\MageTools\Task\Symfony\AcceleratorCacheClearTask': { flags: "--opcode" }
Terminal42\MageTools\Task\Symfony\PlatformReleaseTask
Updates the platform version in the parameters.yml file.
Uses git describe
to fetch the version internally and adds the output
as platform_version
to your parameters.yml
.
on-deploy: - 'Terminal42\MageTools\Task\Symfony\PlatformReleaseTask'
Backup
Terminal42\MageTools\Task\Backup\DatabaseBackupTask
Runs the database backup task using backup-manager/symfony bundle.
This task should be run before ane database changes are made. The parameters are reflecting the bundle
configuration under bm_backup_manager
.
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
Runs the Contao automator task. You must provide the task name. Execute the Run "vendor/bin/contao-console contao:automator" command to see available tasks.
post-release: - 'Terminal42\MageTools\Task\Contao\AutomatorTask': { task: 'purgeSearchCache', env: 'prod' }
Doctrine
Terminal42\MageTools\Task\Doctrine\CacheClearTask
Clear the Doctrine metadata, query and result cache.
post-release: - 'Terminal42\MageTools\Task\Doctrine\CacheClearTask': { env: 'prod' }
Terminal42\MageTools\Task\Doctrine\MigrateTask
Run the Doctrine migrations.
post-release: - 'Terminal42\MageTools\Task\Doctrine\MigrateTask': { env: 'prod' }
Integrity check
Terminal42\MageTools\Task\IntegrityCheck\ContaoTask
Checks Contao by executing contao:version
command in Symfony's console.
pre-deploy: - 'Terminal42\MageTools\Task\IntegrityCheck\ContaoTask'
Maintenance
Terminal42\MageTools\Task\Maintenance\LockTask
Enable the maintenance mode.
on-deploy: - 'Terminal42\MageTools\Task\Maintenance\LockTask': { env: 'prod' }
Terminal42\MageTools\Task\Maintenance\UnlockTask
Disable the maintenance mode.
post-release: - 'Terminal42\MageTools\Task\Maintenance\UnlockTask': { env: 'prod' }
Custom commands
Deploy all
Deploys system to all configured environments.
vendor/bin/mage-terminal42 deploy-all
Connect via SSH
Allows to open the SSH connection based on configured environments.
Basic usage (will take the first host defined for the environment):
vendor/bin/mage-terminal42 ssh production
For multiple hosts given you have config:
hosts: - webserver1 - webserver2 - webserver3
You can connect to them using:
vendor/bin/mage-terminal42 ssh --host=webserver3 production
vendor/bin/mage-terminal42 ssh --host=2 production