SlideShare une entreprise Scribd logo
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

Contenu connexe

Tendances

Mixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopMixit2014_Puppet_Workshop
Mixit2014_Puppet_Workshop
SMougenot
 
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.io
Nicolas 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
 
Livre blanc docker
Livre blanc docker Livre blanc docker
Livre blanc docker
JEAN-GUILLAUME DUJARDIN
 
Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Configuration Management avec Drupal 8
Configuration Management avec Drupal 8
Aurelien 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 2016
Julia Mateo
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec DockerLuis Lopez
 
Docker@linuq
Docker@linuqDocker@linuq
Docker@linuq
Sylvain Boily
 
Introduction à Docker et Gaudi
Introduction à Docker et GaudiIntroduction à Docker et Gaudi
Introduction à Docker et Gaudi
Emmanuel Quentin
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
Roberto Barros De Sousa
 
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é busybox
Ayoub Rouzi
 
Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installation
Ayoub 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
 

Tendances (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
 

En vedette

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
beastiefurets
 
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
Agile 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êt
beastiefurets
 
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
Loï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 produit
OCTO 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 market
Grain 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 Agile
Xavier Hausherr
 
Lean & Agile UX - afterwork Axance
Lean & Agile UX - afterwork AxanceLean & Agile UX - afterwork Axance
Lean & Agile UX - afterwork Axance
Alexandre 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 Cleroux
Agile Montréal
 
Yope
YopeYope
DevExp 2012 methodes agiles SCRUM jesnault
DevExp 2012 methodes agiles SCRUM jesnaultDevExp 2012 methodes agiles SCRUM jesnault
DevExp 2012 methodes agiles SCRUM jesnault
Jérôme Esnault
 
Valtech - Plateforme Agile
Valtech - Plateforme AgileValtech - Plateforme Agile
Valtech - Plateforme Agile
Valtech
 
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 Map
Bluewaves
 
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
Ernst Perpignand
 

En vedette (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
 

Similaire à 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.pdf
Hamida 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 bassin
Oxalide
 
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 logiciels
Johan Moreau
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
Christophe Villeneuve
 
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
Stéphane HULARD
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
Olivier Eeckhoutte
 
Support : introduction à docker
Support : introduction à dockerSupport : introduction à docker
Support : introduction à docker
Boubker ABERWAG
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
Stephane 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 nuages
SOAT
 
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
Julien 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 Drupal
Core-Techs
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
SQLI DIGITAL EXPERIENCE
 
envol08-sgv envol08-sgv envol08-sgv envol08-sgv
envol08-sgv envol08-sgv envol08-sgv envol08-sgvenvol08-sgv envol08-sgv envol08-sgv envol08-sgv
envol08-sgv envol08-sgv envol08-sgv envol08-sgv
mia884611
 
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
Mame 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 jhuhiuguigugyug
amine17157
 
Rmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-frRmll2010 admin sys-panelgzw-fr
Rmll2010 admin sys-panelgzw-fr
Gaë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 Maven
Amico Fabien
 

Similaire à 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
 
envol08-sgv envol08-sgv envol08-sgv envol08-sgv
envol08-sgv envol08-sgv envol08-sgv envol08-sgvenvol08-sgv envol08-sgv envol08-sgv envol08-sgv
envol08-sgv envol08-sgv envol08-sgv envol08-sgv
 
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
 

Dernier

Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
Horgix
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 

Dernier (6)

Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 

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