Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Release: Opensolr Search 4.5.0 Minor update available for module opensolr_search (4.5.0). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Drush pre deploy

178 sites Security covered Drupal 8–11
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.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
2
Tracked since
Oct 2025
Latest release
9 months ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Slowing

Releases

Version Type Core Release date
1.2.1 Stable 8–11 Nov 21, 2025
1.2.0 Stable 8–11 Oct 7, 2025