Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). Varbase Media Header 9.2.1 Minor update available for module varbase_media_header (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

Drush pre deploy

183 sites Security covered
View on drupal.org

This project adds "pre-deploy" hooks to Drush, allowing custom code to run at the very beginning of the deployment process, complementing the existing "post-deploy" functionality. It also provides commands to execute and check the status of these pre-deploy hooks.

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
7 months ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Slowing

Releases

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