On Github GuGuss / 20141117-revealjs-bonnes-pratiques-drupal
Augustin Delaporte
Paris | London | Ann Arbor, MI
Faciliter les retours en arrière
Permettre le travail collaboratif
Rapidité et efficacité
Intégrité des données et transaction atomique
Création de branches
Staging area
Auditer des parties spécifiques du code
Identifier les problèmes qui peuvent survenir
Drupal without Drush is like life without mobile phones... you know you managed just fine but now you just can't imagine how
Think hard before clicking
Tester dans des conditions réélles et en isolation
Terminé les patchs affectés de façon aléatoire
Repartir de 0 à chaque instant
drush feature-revert
drush migrate-import
drush updatedb
#!/bin/bash set -xe if [ ! -d marketplace/.git ]; then git clone git@github.com:commerceguys/marketplace.git fi # Go to Marketplace to run backups. run-on-host marketplace_prod@marketplace.commerceguys.com << "END" # Backup files and database (just in case). export DIRDATE=`date '+%Y-%m-%d---%H-%M-%S'` export BACKUPDIR=$HOME/jenkins-backups/marketplace-$DIRDATE mkdir -p $BACKUPDIR cp -RL www $BACKUPDIR/www cd www drush sql-dump > $BACKUPDIR/marketplace-$DIRDATE.sql # End of backup script. END cd marketplace # Fetch the new commits and checkout. git fetch git reset "origin/master" --hard cd .. # Copy to marketplace rsync -a --delete marketplace/ marketplace_prod@marketplace.commerceguys.com:blimp run-on-host marketplace_prod@marketplace.commerceguys.com << "EOF" #!/bin/bash set -xe # Maintenance mode unlink live ln -s marketplace-maintenance live sudo /etc/init.d/php5-fpm restart cd www drush vset maintenance_mode 1 # Stop the Advanced Queue daemon. sudo sv stop advqueue-marketplace # Build website. cd ../blimp export BUILD_ROOT=".." chmod 755 ../www/sites/default ./scripts/build cd ../www # Remove all .txt files find . -name "*.txt" | xargs rm # Rebuild registry drush -y rr --no-cache-clear # Update database. drush -y updatedb --uri=https://marketplace.commerceguys.com # Clear drush caches. drush cc drush # Clear all caches. drush cc all # Revert features. drush -y fra # Rebuild indexes. drush -y sapi-c drush -y sapi-i productdisplay 0 drush -y sapi-i licenses 0 drush -y sapi-i delivery_partner 0 # Go live. drush vset maintenance_mode 0 sudo sv start advqueue-marketplace cd unlink live ln -s www live sudo /etc/init.d/php5-fpm restart EOF
Temps de développement allongés
Prédire les processus de développement
Réutiliser des composants à travers plusieurs projets
Optimiser les changements de configurations
Améliorer l'intégration avec des outils de tests automatisés
Quand suivre ces bonnes pratiques?
Drupal impose-t'il ces bonnes pratiques?
Quels facteurs définissent l'usage de ces bonnes pratiques?