Drush make driven development

811
-1

Published on

Présentation de drush make et de quelques astuces pour industrialiser et générer des Sites Drupal.

DrupalCamp Paris 2013

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
811
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Drush make driven development

  1. 1. Drush Make DrivenDevelopment
  2. 2. Qui suis-je ?Sébastien Corbin@SebCorbinDéveloppeur chez Makina CorpusDrupal depuis 2009
  3. 3. Petit historique de la gestion decode sous Drupal1. En premier le FTP, pour les vieux des années 802. Après ya eu Git, pour éviter de perdre ses fichiers durant le transfert,mais cest so 20053. Ensuite ya eu Features, parce que la conf en BDD: pas top, mais çacest encore so 2009
  4. 4. Le présent :Drush Make
  5. 5. Au programme1. Quelques rappels (Drush et Make, Features, profils, Git, Migrate)2. Bonnes pratiques et bénéfices3. Retour dexpérience
  6. 6. Quelques rappels
  7. 7. Drush & Drush Make"Drush, cest la vie"~toutdéveloppeurayantinstallédrushInstallation : https://drupal.org/project/drushDocumentation : http://www.drush.org/
  8. 8. FeaturesFeatures 1.0Toujours viable tant que la v2 nest pas stableFeatures 2.0-rc1Meilleure gestion des permissionsMeilleure gestion des instances de champsRétro-compatibleProjet : https://drupal.org/project/features
  9. 9. Quelques commandes utilesdrushfc#(features-components)listelesproviders:componentsdrushfefeature_nameprovider:component#(features-export)exporteuncomposantdrushfufeature_name#(features-update)metàjourlescomposantsdrushfrfeature_name#(features-revert)rétablitlafeaturedrushfra#(features-revert-all)rétablittouteslesfeaturesactivéesdrushsiprofile_name#(site-install)installeleprofildrushmakefile.make#construitlabasedecodedrushccall#préparelecafé
  10. 10. MigrateOn a pas trouvé mieux pour intégrer rapidement du contenu à partir defichiers XML<?xmlversion="1.0"?><nodes><nodeid="actualites-page"title="Nosactualités"language="fr"><fields><body>LoremIpsumDolorEstLoremIpsumDolorEstLoremIpsumDolorEstIpsumDolorEstLoremIps</body><field_image>**GENERATE**</field_image><field_date>now-10days</field_date></fields></node></nodes>
  11. 11. MigrateSeule contrainte, faire les gestionnaires dimportPermet une génération / import poussésPlus parlant que le contenu de devel_generate
  12. 12. Astuces et Bonnespratiques
  13. 13. Drush MakeUtile pour avoir la dernière version des projetsSpécifier les versions des projets que vous voulez patcherPenser aux includes pour les modules souvent utiliséesLes patchs, cest la vie, mangez-en
  14. 14. Un module en dev sanstraduction ?Oubliez :La traduction sera installée à lactivation du moduleprojects[nodequeue][version]=3.x-devlibraries[nodequeue_fr][download][type]="file"libraries[nodequeue_fr][download][url]="http://ftp.drupal.org/files/translations/7.x/nodequeue/nodequlibraries[nodequeue_fr][destination]="modules/nodequeue"libraries[nodequeue_fr][directory_name]="translations"libraries[nodequeue_fr][download][filename]="fr.po"
  15. 15. Exemple bête de contribCKEditor ajoute des CRLF au lieu de LF à sa config exportée via Features(dû au navigateur)drushcloneckeditorFix du code embêtant, puisPartage/Mise en ligne de la solution sur drupal.orggitdiff>adieu_souci.patchhttps://drupal.org/node/1960268Et enfin utilisation dans le projetprojects[ckeditor][patch][]="http://drupal.org/files/CRLF-issue.patch"
  16. 16. Drush et ses pluginsDrush issue queueSupportdegitetdesbranches,indispensableaumaintainersdemoduleDrush issue queue extrasdrushpatch1960268#4#appliquelepatchdu4ecommentdelissuedrushiq-diff>file.patch#créeunpatchformatéaveclesinfosdelauteurPostedirectementlediffcourant(formaté)danslissuePensez aux alias drush, dans drushrc.phpCloneunmoduledepuisgit.drupal.orgavecchoixdelaversiondrushiq-submit$options[shell-aliases][clone]="dl--package-handler=git_drupalorg--select";
  17. 17. Exemple de fichier bash dinstall#!/bin/bashif[["$#">0&&$1="make"]]then#executedrushmake./"`dirname"$0"`/make.sh";fi."profile_conf.sh";#storesessioninformationsifsitealreadyinstalledSESSIONS="$(mktempsessions_XXXXXXXXXX)";traprm"${SESSIONS}"EXITtest"`drushstbootstrap--pipe2>/dev/null`"=="Successful"&&drushsql-dump--tables-list=sessions>$drushsi"${PROFILE}"--locale="${LOCALE}"--account-mail="${MAIL}"#etc...#restoresessionsiftheyweresavedtest-f"${SESSIONS}"&&drushsqlc<"${SESSIONS}"&&echo"Sessionsrestored"#featuresScroller...
  18. 18. Retour dXP
  19. 19. Lintégrateur arrivant dans le projet à un site représentatif et qui fonctionne../bin/make.shUn peu de configuration...../bin/install.shDémo ! (ouais je suis un fou)
  20. 20. La génération du site permet à un dev dentrer facilement dans un projeten cours
  21. 21. puis ne fonctionner que sur des hook_update_N()Lors de la mise en prodchmod-xinstall.sh
  22. 22. Le recettage est toujours possible (sous réserve de commits clean)
  23. 23. Possibilité de coupler ceci en mode intégration continue avec jenkins oudes git-hooksDevelopment -> re-génération automatique du sitePré-production -> génération manuelle par le chef de projet
  24. 24. Les fichiers dexemple de Migrate, *.make seront bientôt mis en ligne sur leContributionblog de Makina
  25. 25. Merci
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×