Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

drush_pre_deploy

224 sites Security covered
View on drupal.org

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: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 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.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

Documentation note for D7

The D7 version README contains specific installation instructions for a d7 composer based installation and development instructions for writing predeploy hooks.

Activity

Total releases
2
First release
Oct 2025
Latest release
4 months ago
Release cadence
45 days
Stability
100% stable

Releases

Version Type Release date
1.2.1 Stable Nov 21, 2025
1.2.0 Stable Oct 7, 2025