drush_pre_deploy
Documentation
This project is a drush integration that enables "pre-deploy" hooks.
Drush 10 introduced the drush deploy command with the intent to standardize drupal deployment. drush deploy is implemented in terms of a standard sequence of drush commands:
drush updatedb --no-cache-clear
drush cache:rebuild
drush config:import
drush cache:rebuild
drush deploy:hookThe very last step (drush deploy:hook) invokes HOOK_deploy_NAME hooks. The "deploy" hooks are similar to post_update hooks and are useful when you need to execute code at the very end of the deploy process.
This project introduces the concepts of "pre-deploy" hooks that are executed at the very beginning of the deploy process.
They take a similar form of the existing hooks, if your modules is named foo then in a foo.predeploy.php file you can write a function like this:
/**
* Hook description here.
*/
function foo_predeploy_some_text_here(&$sandbox) {
}Additionally, this project provides the deploy:pre-hook and deploy:pre-hook-status commands which are similar to the deploy:hook and deploy:hook-status commands. The first command runs pending "pre-deploy" hooks and the second one prints information about pending "pre-deploy" update hooks.
Installation
composer require drupal/drush_pre_deploy
This project requires drush at least at version 10.3.0.
In your project's main composer.json make sure installer-paths folder is set for "drupal-module" type:
"extra": {
...
"installer-paths": {
...
"web/modules/contrib/{$name}": ["type:drupal-module"],To make sure the hook command is discovered, you need to add a custom "drush.yml" configuration in a drush folder like this:
.
└── ROOT_PROJECT_PATH/
└── drush/
└── drush.ymlDrush will discover this file automatically and will use its configuration to load commands. Add the following code into drush.yml:
drush:
include:
- ${env.PWD}/web/modules/contrib/drush_pre_deploy/src/globalDocumentation note for D7
The D7 version README contains specific installation instructions for a d7 composer based installation and development instructions for writing predeploy hooks.