sparkfabrik / drush_pre_deploy
drush integration that enables "pre-deploy" hooks.
Installs: 182
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 7
Forks: 0
Open Issues: 0
Type:drupal-module
Requires (Dev)
- drupal/coder: ^8
Conflicts
- drush/drush: <10.3.0
README
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:hook
The 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 sparkfabrik/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.yml
Drush 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/global