Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

Drush pre deploy

Security covered Under active development 184 sites

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.

Drupal 8–11

Ask your assistant about Drush pre deploy

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

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
6
Tracked since
Jan 2023
Latest release
10 months ago
Releases (12 mo)
1
Maintenance
Active

Release Timeline

Releases

Version Type Core PHP Release date
1.2.1 Stable 8–11 Nov 21, 2025
1.2.0 Stable 8–11 Oct 7, 2025
1.1.0 Stable 8–10 May 23, 2024
1.0.3 Stable 8–10 Jan 23, 2024
1.x-dev Dev 8–11 Oct 25, 2023
1.0.2 Stable 8–10 Jan 28, 2023