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.
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'
Clears the accelerator cache. The AcceleratorCacheBundle is required for this to work.
on-release:
- 'Terminal42\MageTools\Task\Symfony\AcceleratorCacheClearTask': { flags: "--opcode" }
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'
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)
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' }
Clear the Doctrine metadata, query and result cache.
post-release:
- 'Terminal42\MageTools\Task\Doctrine\CacheClearTask': { env: 'prod' }
Run the Doctrine migrations.
post-release:
- 'Terminal42\MageTools\Task\Doctrine\MigrateTask': { env: 'prod' }
Checks Contao by executing contao:version
command in Symfony's console.
pre-deploy:
- 'Terminal42\MageTools\Task\IntegrityCheck\ContaoTask'
Enable the maintenance mode.
on-deploy:
- 'Terminal42\MageTools\Task\Maintenance\LockTask': { env: 'prod' }
Disable the maintenance mode.
post-release:
- 'Terminal42\MageTools\Task\Maintenance\UnlockTask': { env: 'prod' }
Deploys system to all configured environments.
vendor/bin/mage-terminal42 deploy-all
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