Drush Make DrivenDevelopment
Qui suis-je ?Sébastien Corbin@SebCorbinDéveloppeur chez Makina CorpusDrupal depuis 2009
Petit historique de la gestion decode sous Drupal1. En premier le FTP, pour les vieux des années 802. Après ya eu Git, pou...
Le présent :Drush Make
Au programme1. Quelques rappels (Drush et Make, Features, profils, Git, Migrate)2. Bonnes pratiques et bénéfices3. Retour ...
Quelques rappels
Drush & Drush Make"Drush, cest la vie"~toutdéveloppeurayantinstallédrushInstallation : https://drupal.org/project/drushDoc...
FeaturesFeatures 1.0Toujours viable tant que la v2 nest pas stableFeatures 2.0-rc1Meilleure gestion des permissionsMeilleu...
Quelques commandes utilesdrushfc#(features-components)listelesproviders:componentsdrushfefeature_nameprovider:component#(f...
MigrateOn a pas trouvé mieux pour intégrer rapidement du contenu à partir defichiers XML<?xmlversion="1.0"?><nodes><nodeid...
MigrateSeule contrainte, faire les gestionnaires dimportPermet une génération / import poussésPlus parlant que le contenu ...
Astuces et Bonnespratiques
Drush MakeUtile pour avoir la dernière version des projetsSpécifier les versions des projets que vous voulez patcherPenser...
Un module en dev sanstraduction ?Oubliez :La traduction sera installée à lactivation du moduleprojects[nodequeue][version]...
Exemple bête de contribCKEditor ajoute des CRLF au lieu de LF à sa config exportée via Features(dû au navigateur)drushclon...
Drush et ses pluginsDrush issue queueSupportdegitetdesbranches,indispensableaumaintainersdemoduleDrush issue queue extrasd...
Exemple de fichier bash dinstall#!/bin/bashif[["$#">0&&$1="make"]]then#executedrushmake./"`dirname"$0"`/make.sh";fi."profi...
Retour dXP
Lintégrateur arrivant dans le projet à un site représentatif et qui fonctionne../bin/make.shUn peu de configuration...../b...
La génération du site permet à un dev dentrer facilement dans un projeten cours
puis ne fonctionner que sur des hook_update_N()Lors de la mise en prodchmod-xinstall.sh
Le recettage est toujours possible (sous réserve de commits clean)
Possibilité de coupler ceci en mode intégration continue avec jenkins oudes git-hooksDevelopment -> re-génération automati...
Les fichiers dexemple de Migrate, *.make seront bientôt mis en ligne sur leContributionblog de Makina
Merci
Drush make driven development
Prochain SlideShare
Chargement dans…5
×

Drush make driven development

1 063 vues

Publié le

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

DrupalCamp Paris 2013

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 063
Sur SlideShare
0
Issues des intégrations
0
Intégrations
207
Actions
Partages
0
Téléchargements
21
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×