SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Drush Make Driven
Development
Qui suis-je ?
Sébastien Corbin
@SebCorbin
Développeur chez Makina Corpus
Drupal depuis 2009
Petit historique de la gestion de
code sous Drupal
1. En premier le FTP, pour les vieux des années 80
2. Après y'a eu Git, pour éviter de perdre ses fichiers durant le transfert,
mais c'est so 2005
3. Ensuite y'a eu Features, parce que la conf en BDD: pas top, mais ça
c'est encore so 2009
Le présent :
Drush Make
Au programme
1. Quelques rappels (Drush et Make, Features, profils, Git, Migrate)
2. Bonnes pratiques et bénéfices
3. Retour d'expérience
Quelques rappels
Drush & Drush Make
"Drush, c'est la vie"
~toutdéveloppeurayantinstallédrush
Installation : https://drupal.org/project/drush
Documentation : http://www.drush.org/
Features
Features 1.0
Toujours viable tant que la v2 n'est pas stable
Features 2.0-rc1
Meilleure gestion des permissions
Meilleure gestion des instances de champs
Rétro-compatible
Projet : https://drupal.org/project/features
Quelques commandes utiles
drushfc#(features-components)listelesproviders:components
drushfefeature_nameprovider:component#(features-export)exporteuncomposant
drushfufeature_name#(features-update)metàjourlescomposants
drushfrfeature_name#(features-revert)rétablitlafeature
drushfra#(features-revert-all)rétablittouteslesfeaturesactivées
drushsiprofile_name#(site-install)installeleprofil
drushmakefile.make#construitlabasedecode
drushccall#préparelecafé
Migrate
On a pas trouvé mieux pour intégrer rapidement du contenu à partir de
fichiers 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>
Migrate
Seule contrainte, faire les gestionnaires d'import
Permet une génération / import poussés
Plus parlant que le contenu de devel_generate
Astuces et Bonnes
pratiques
Drush Make
Utile pour avoir la dernière version des projets
Spécifier les versions des projets que vous voulez patcher
Penser aux includes pour les modules souvent utilisées
Les patchs, c'est la vie, mangez-en
Un module en dev sans
traduction ?
Oubliez :
La traduction sera installée à l'activation du module
projects[nodequeue][version]=3.x-dev
libraries[nodequeue_fr][download][type]="file"
libraries[nodequeue_fr][download][url]="http://ftp.drupal.org/files/translations/7.x/nodequeue/nodequ
libraries[nodequeue_fr][destination]="modules/nodequeue"
libraries[nodequeue_fr][directory_name]="translations"
libraries[nodequeue_fr][download][filename]="fr.po"
Exemple bête de contrib
CKEditor ajoute des CRLF au lieu de LF à sa config exportée via Features
(dû au navigateur)
drushcloneckeditor
Fix du code embêtant, puis
Partage/Mise en ligne de la solution sur drupal.org
gitdiff>adieu_souci.patch
https://drupal.org/node/1960268
Et enfin utilisation dans le projet
projects[ckeditor][patch][]="http://drupal.org/files/CRLF-issue.patch"
Drush et ses plugins
Drush issue queue
Supportdegitetdesbranches,indispensableaumaintainersdemodule
Drush issue queue extras
drushpatch1960268#4#appliquelepatchdu4ecommentdel'issue
drushiq-diff>file.patch#créeunpatchformatéaveclesinfosdel'auteur
Postedirectementlediffcourant(formaté)dansl'issue
Pensez aux alias drush, dans drushrc.php
Cloneunmoduledepuisgit.drupal.orgavecchoixdelaversion
drushiq-submit
$options['shell-aliases']['clone']="dl--package-handler=git_drupalorg--select";
Exemple de fichier bash d'install
#!/bin/bash
if[["$#">0&&$1="make"]]
then
#executedrushmake
./"`dirname"$0"`/make.sh";
fi
."profile_conf.sh";
#storesessioninformationsifsitealreadyinstalled
SESSIONS="$(mktemp'sessions_XXXXXXXXXX')";trap'rm"${SESSIONS}"'EXIT
test"`drushstbootstrap--pipe2>/dev/null`"=="Successful"&&drushsql-dump--tables-list=sessions>
$drushsi"${PROFILE}"--locale="${LOCALE}"--account-mail="${MAIL}"#etc...
#restoresessionsiftheyweresaved
test-f"${SESSIONS}"&&drushsqlc<"${SESSIONS}"&&echo"Sessionsrestored"
#features
Scroller...
Retour d'XP
L'intégrateur arrivant dans le projet à un site représentatif et qui fonctionne
../bin/make.sh
Un peu de configuration...
../bin/install.sh
Démo ! (ouais je suis un fou)
La génération du site permet à un dev d'entrer facilement dans un projet
en cours
puis ne fonctionner que sur des hook_update_N()
Lors de la mise en prod
chmod-xinstall.sh
Le recettage est toujours possible (sous réserve de commits clean)
Possibilité de coupler ceci en mode intégration continue avec jenkins ou
des git-hooks
Development -> re-génération automatique du site
Pré-production -> génération manuelle par le chef de projet
Les fichiers d'exemple de Migrate, *.make seront bientôt mis en ligne sur le
Contribution
blog de Makina
Merci
Drush make driven development

Más contenido relacionado

La actualidad más candente

Mixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopMixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopSMougenot
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?Membré Guillaume
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Jérôme Petazzoni
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.ioNicolas Hennion
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Aurelien Navarre
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
 
Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Aurelien Navarre
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Silicon Comté
 
[Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. [Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. Julien CROUZET
 
Workshop mesos docker devoxx fr 2016
Workshop mesos docker devoxx fr 2016Workshop mesos docker devoxx fr 2016
Workshop mesos docker devoxx fr 2016Julia Mateo
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec DockerLuis Lopez
 
Introduction à Docker et Gaudi
Introduction à Docker et GaudiIntroduction à Docker et Gaudi
Introduction à Docker et GaudiEmmanuel Quentin
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busyboxAyoub Rouzi
 
Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installationAyoub Rouzi
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedAnne Nicolas
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte Zenika
 

La actualidad más candente (20)

Mixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopMixit2014_Puppet_Workshop
Mixit2014_Puppet_Workshop
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
 
Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Configuration Management avec Drupal 8
Configuration Management avec Drupal 8
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
[Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. [Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit.
 
Workshop mesos docker devoxx fr 2016
Workshop mesos docker devoxx fr 2016Workshop mesos docker devoxx fr 2016
Workshop mesos docker devoxx fr 2016
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
 
Docker@linuq
Docker@linuqDocker@linuq
Docker@linuq
 
Introduction à Docker et Gaudi
Introduction à Docker et GaudiIntroduction à Docker et Gaudi
Introduction à Docker et Gaudi
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busybox
 
Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installation
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbedded
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte
 

Destacado

Continuous Delivery chez LesFurets -- Deep dive Dec 2015
Continuous Delivery chez LesFurets -- Deep dive Dec 2015Continuous Delivery chez LesFurets -- Deep dive Dec 2015
Continuous Delivery chez LesFurets -- Deep dive Dec 2015beastiefurets
 
Exemples et solutions : Difficultés de l’implémentation de SCRUM
Exemples et solutions : Difficultés de l’implémentation de SCRUMExemples et solutions : Difficultés de l’implémentation de SCRUM
Exemples et solutions : Difficultés de l’implémentation de SCRUMAgile Tour 2009 Québec
 
Comment construire sa communauté en partant de zéro : l'exemple Youmiam.
Comment construire sa communauté en partant de zéro : l'exemple Youmiam. Comment construire sa communauté en partant de zéro : l'exemple Youmiam.
Comment construire sa communauté en partant de zéro : l'exemple Youmiam. SocialMixCity
 
Avez-vous compris ce que sont les Features toggles ?
Avez-vous compris ce que sont les Features toggles ?Avez-vous compris ce que sont les Features toggles ?
Avez-vous compris ce que sont les Features toggles ?Eric Le Merdy
 
Réussir son startup weekend agile
Réussir son startup weekend agileRéussir son startup weekend agile
Réussir son startup weekend agileFlorian Labadens
 
Devoxx france 2015 livrer chaque jour ce qui est prêt
Devoxx france 2015   livrer chaque jour ce qui est prêtDevoxx france 2015   livrer chaque jour ce qui est prêt
Devoxx france 2015 livrer chaque jour ce qui est prêtbeastiefurets
 
Ionic, ce n'est pas que de l'UI, meetup PhoneGap le 25-05-2015
Ionic, ce n'est pas que de l'UI, meetup PhoneGap le 25-05-2015Ionic, ce n'est pas que de l'UI, meetup PhoneGap le 25-05-2015
Ionic, ce n'est pas que de l'UI, meetup PhoneGap le 25-05-2015Loïc Knuchel
 
Web Mobile : quelles opportunités face aux apps ?
Web Mobile : quelles opportunités face aux apps ?Web Mobile : quelles opportunités face aux apps ?
Web Mobile : quelles opportunités face aux apps ?NiceToMeetYou
 
De la pensée projet à la pensée produit
De la pensée projet à la pensée produitDe la pensée projet à la pensée produit
De la pensée projet à la pensée produitOCTO Technology Suisse
 
Formation Accélérer le time to market
Formation Accélérer le time to marketFormation Accélérer le time to market
Formation Accélérer le time to marketGrain Incubation
 
Loci formation d'architecte
Loci formation d'architecteLoci formation d'architecte
Loci formation d'architecteSami Sahli
 
Git Flow: un processus de développement Agile
Git Flow: un processus de développement AgileGit Flow: un processus de développement Agile
Git Flow: un processus de développement AgileXavier Hausherr
 
Lean & Agile UX - afterwork Axance
Lean & Agile UX - afterwork AxanceLean & Agile UX - afterwork Axance
Lean & Agile UX - afterwork AxanceAlexandre Jubien
 
Le journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
Le journal d'une tortue qui sprinte autour du monde - Vincent ClerouxLe journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
Le journal d'une tortue qui sprinte autour du monde - Vincent ClerouxAgile Montréal
 
DevExp 2012 methodes agiles SCRUM jesnault
DevExp 2012 methodes agiles SCRUM jesnaultDevExp 2012 methodes agiles SCRUM jesnault
DevExp 2012 methodes agiles SCRUM jesnaultJérôme Esnault
 
Valtech - Plateforme Agile
Valtech - Plateforme AgileValtech - Plateforme Agile
Valtech - Plateforme AgileValtech
 
Scrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisationsScrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisationsXavier Warzee
 
Rock The Product Map
Rock The Product MapRock The Product Map
Rock The Product MapBluewaves
 
Outils et pratiques agiles pour la définition de produit
Outils et pratiques agiles pour la définition de produitOutils et pratiques agiles pour la définition de produit
Outils et pratiques agiles pour la définition de produitErnst Perpignand
 

Destacado (20)

Continuous Delivery chez LesFurets -- Deep dive Dec 2015
Continuous Delivery chez LesFurets -- Deep dive Dec 2015Continuous Delivery chez LesFurets -- Deep dive Dec 2015
Continuous Delivery chez LesFurets -- Deep dive Dec 2015
 
Exemples et solutions : Difficultés de l’implémentation de SCRUM
Exemples et solutions : Difficultés de l’implémentation de SCRUMExemples et solutions : Difficultés de l’implémentation de SCRUM
Exemples et solutions : Difficultés de l’implémentation de SCRUM
 
Comment construire sa communauté en partant de zéro : l'exemple Youmiam.
Comment construire sa communauté en partant de zéro : l'exemple Youmiam. Comment construire sa communauté en partant de zéro : l'exemple Youmiam.
Comment construire sa communauté en partant de zéro : l'exemple Youmiam.
 
Avez-vous compris ce que sont les Features toggles ?
Avez-vous compris ce que sont les Features toggles ?Avez-vous compris ce que sont les Features toggles ?
Avez-vous compris ce que sont les Features toggles ?
 
Réussir son startup weekend agile
Réussir son startup weekend agileRéussir son startup weekend agile
Réussir son startup weekend agile
 
Devoxx france 2015 livrer chaque jour ce qui est prêt
Devoxx france 2015   livrer chaque jour ce qui est prêtDevoxx france 2015   livrer chaque jour ce qui est prêt
Devoxx france 2015 livrer chaque jour ce qui est prêt
 
Ionic, ce n'est pas que de l'UI, meetup PhoneGap le 25-05-2015
Ionic, ce n'est pas que de l'UI, meetup PhoneGap le 25-05-2015Ionic, ce n'est pas que de l'UI, meetup PhoneGap le 25-05-2015
Ionic, ce n'est pas que de l'UI, meetup PhoneGap le 25-05-2015
 
Web Mobile : quelles opportunités face aux apps ?
Web Mobile : quelles opportunités face aux apps ?Web Mobile : quelles opportunités face aux apps ?
Web Mobile : quelles opportunités face aux apps ?
 
De la pensée projet à la pensée produit
De la pensée projet à la pensée produitDe la pensée projet à la pensée produit
De la pensée projet à la pensée produit
 
Formation Accélérer le time to market
Formation Accélérer le time to marketFormation Accélérer le time to market
Formation Accélérer le time to market
 
Loci formation d'architecte
Loci formation d'architecteLoci formation d'architecte
Loci formation d'architecte
 
Git Flow: un processus de développement Agile
Git Flow: un processus de développement AgileGit Flow: un processus de développement Agile
Git Flow: un processus de développement Agile
 
Lean & Agile UX - afterwork Axance
Lean & Agile UX - afterwork AxanceLean & Agile UX - afterwork Axance
Lean & Agile UX - afterwork Axance
 
Le journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
Le journal d'une tortue qui sprinte autour du monde - Vincent ClerouxLe journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
Le journal d'une tortue qui sprinte autour du monde - Vincent Cleroux
 
Yope
YopeYope
Yope
 
DevExp 2012 methodes agiles SCRUM jesnault
DevExp 2012 methodes agiles SCRUM jesnaultDevExp 2012 methodes agiles SCRUM jesnault
DevExp 2012 methodes agiles SCRUM jesnault
 
Valtech - Plateforme Agile
Valtech - Plateforme AgileValtech - Plateforme Agile
Valtech - Plateforme Agile
 
Scrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisationsScrum au-delà du projet, pour des produits et des organisations
Scrum au-delà du projet, pour des produits et des organisations
 
Rock The Product Map
Rock The Product MapRock The Product Map
Rock The Product Map
 
Outils et pratiques agiles pour la définition de produit
Outils et pratiques agiles pour la définition de produitOutils et pratiques agiles pour la définition de produit
Outils et pratiques agiles pour la définition de produit
 

Similar a Drush make driven development

Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfHamida Rebai Trabelsi
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Pierre Ternon
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...AbdellahELMAMOUN
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsJohan Moreau
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 
Support : introduction à docker
Support : introduction à dockerSupport : introduction à docker
Support : introduction à dockerBoubker ABERWAG
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et DockerStephane Manciot
 
Dev cloud java : la tête dans les nuages
Dev cloud java : la tête dans les nuagesDev cloud java : la tête dans les nuages
Dev cloud java : la tête dans les nuagesSOAT
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
Drupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalDrupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalCore-Techs
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Mame Cheikh Ibra Niang
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugamine17157
 
Rmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-frRmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-frGaëtan Trellu
 
Créer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et MavenCréer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et MavenAmico Fabien
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 

Similar a Drush make driven development (20)

Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Support : introduction à docker
Support : introduction à dockerSupport : introduction à docker
Support : introduction à docker
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Dev cloud java : la tête dans les nuages
Dev cloud java : la tête dans les nuagesDev cloud java : la tête dans les nuages
Dev cloud java : la tête dans les nuages
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Drupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalDrupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet Drupal
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
Rmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-frRmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-fr
 
Créer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et MavenCréer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et Maven
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 

Drush make driven development

  • 2. Qui suis-je ? Sébastien Corbin @SebCorbin Développeur chez Makina Corpus Drupal depuis 2009
  • 3. Petit historique de la gestion de code sous Drupal 1. En premier le FTP, pour les vieux des années 80 2. Après y'a eu Git, pour éviter de perdre ses fichiers durant le transfert, mais c'est so 2005 3. Ensuite y'a eu Features, parce que la conf en BDD: pas top, mais ça c'est encore so 2009
  • 5. Au programme 1. Quelques rappels (Drush et Make, Features, profils, Git, Migrate) 2. Bonnes pratiques et bénéfices 3. Retour d'expérience
  • 7. Drush & Drush Make "Drush, c'est la vie" ~toutdéveloppeurayantinstallédrush Installation : https://drupal.org/project/drush Documentation : http://www.drush.org/
  • 8. Features Features 1.0 Toujours viable tant que la v2 n'est pas stable Features 2.0-rc1 Meilleure gestion des permissions Meilleure gestion des instances de champs Rétro-compatible Projet : https://drupal.org/project/features
  • 10. Migrate On a pas trouvé mieux pour intégrer rapidement du contenu à partir de fichiers 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. Migrate Seule contrainte, faire les gestionnaires d'import Permet une génération / import poussés Plus parlant que le contenu de devel_generate
  • 13. Drush Make Utile pour avoir la dernière version des projets Spécifier les versions des projets que vous voulez patcher Penser aux includes pour les modules souvent utilisées Les patchs, c'est la vie, mangez-en
  • 14. Un module en dev sans traduction ? Oubliez : La traduction sera installée à l'activation du module projects[nodequeue][version]=3.x-dev libraries[nodequeue_fr][download][type]="file" libraries[nodequeue_fr][download][url]="http://ftp.drupal.org/files/translations/7.x/nodequeue/nodequ libraries[nodequeue_fr][destination]="modules/nodequeue" libraries[nodequeue_fr][directory_name]="translations" libraries[nodequeue_fr][download][filename]="fr.po"
  • 15. Exemple bête de contrib CKEditor ajoute des CRLF au lieu de LF à sa config exportée via Features (dû au navigateur) drushcloneckeditor Fix du code embêtant, puis Partage/Mise en ligne de la solution sur drupal.org gitdiff>adieu_souci.patch https://drupal.org/node/1960268 Et enfin utilisation dans le projet projects[ckeditor][patch][]="http://drupal.org/files/CRLF-issue.patch"
  • 16. Drush et ses plugins Drush issue queue Supportdegitetdesbranches,indispensableaumaintainersdemodule Drush issue queue extras drushpatch1960268#4#appliquelepatchdu4ecommentdel'issue drushiq-diff>file.patch#créeunpatchformatéaveclesinfosdel'auteur Postedirectementlediffcourant(formaté)dansl'issue Pensez aux alias drush, dans drushrc.php Cloneunmoduledepuisgit.drupal.orgavecchoixdelaversion drushiq-submit $options['shell-aliases']['clone']="dl--package-handler=git_drupalorg--select";
  • 17. Exemple de fichier bash d'install #!/bin/bash if[["$#">0&&$1="make"]] then #executedrushmake ./"`dirname"$0"`/make.sh"; fi ."profile_conf.sh"; #storesessioninformationsifsitealreadyinstalled SESSIONS="$(mktemp'sessions_XXXXXXXXXX')";trap'rm"${SESSIONS}"'EXIT test"`drushstbootstrap--pipe2>/dev/null`"=="Successful"&&drushsql-dump--tables-list=sessions> $drushsi"${PROFILE}"--locale="${LOCALE}"--account-mail="${MAIL}"#etc... #restoresessionsiftheyweresaved test-f"${SESSIONS}"&&drushsqlc<"${SESSIONS}"&&echo"Sessionsrestored" #features Scroller...
  • 19. L'intégrateur arrivant dans le projet à un site représentatif et qui fonctionne ../bin/make.sh Un peu de configuration... ../bin/install.sh Démo ! (ouais je suis un fou)
  • 20. La génération du site permet à un dev d'entrer facilement dans un projet en cours
  • 21. puis ne fonctionner que sur des hook_update_N() Lors de la mise en prod chmod-xinstall.sh
  • 22. Le recettage est toujours possible (sous réserve de commits clean)
  • 23. Possibilité de coupler ceci en mode intégration continue avec jenkins ou des git-hooks Development -> re-génération automatique du site Pré-production -> génération manuelle par le chef de projet
  • 24. Les fichiers d'exemple de Migrate, *.make seront bientôt mis en ligne sur le Contribution blog de Makina
  • 25. Merci