Drupal Deploy Flow
Most Drupal projects currently use a specific deployment flow that either still uses Jenkins, or uses a flow that closely mimics the steps Jenkins used to execute. This is for backwards compatibility reasons, mostly, and the aim is to move all Drupal projects to the general deploy flow.
This is what the Drupal Deploy Flow entails:
- Syncing specifically
docroot
folder (excluding files folders) - Syncing
composer.json
- Syncing
composer.lock
- Syncing
private
folder (excluding files folder) - Syncing
vendor
folder - Syncing
bash
folder - Syncing
etc
folder - Syncing
config
folder - Syncing
etc/drupal/settings_<environment>.php
todocroot/sites/default/settings.php
unlessetc/drupal/settings_<environment>_override.php
exists in which case that one gets synced. - Syncing
etc/drupal/.htaccess
if it exists todocroot/.htaccess
, unlessetc/drupal/htaccess_<environment>
exists in which case that one gets synced. - Syncing
etc/drupal/robots.txt
if it exists todocroot/robots.txt
, unlessetc/drupal/robots_<environment>.txt
exists in which case that one gets synced.
After this, we determine which update script to run as the environment user. Either bash/updates/update_<environment>.sh
or bash/updates/update_<environment>_override.sh
.