SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Github workflow 
Gestion de projet tech
Jim LAURIE 
@laurie_jim / hack1337
Gestion des 
sprints
Milestones. 
! 
! 
! 
- Pour chaque sprint on crée une nouvelle 
milestone.
Milestones. 
! 
! 
! 
- Pour chaque sprint on crée une nouvelle 
milestone. 
! 
- Bien nommer et documenter la milestone
Milestones. 
! 
! 
! 
- Pour chaque sprint on crée une nouvelle 
milestone. 
! 
- Bien nommer et documenter la milestone: 
! 
- Créer les labels convenant au projet
Milestones. 
! 
! 
! 
- Pour chaque sprint on crée une nouvelle 
milestone. 
! 
- Bien nommer et documenter la milestone: 
! 
- Créer les labels convenant au projet 
! 
- Ajouter une issue pour chaque tâche, il faut 
qu’elle soit bien détaillée. Plus il y a d’issues, plus 
on a de la visibilité sur l’avancement du sprint. 
> Lier l’issue à la milestone 
> Mettre les labels correspondants 
> Assigner l’issue à une personne
Milestones. 
! 
! 
! 
- Pour chaque sprint on crée une nouvelle 
milestone. 
! 
- Bien nommer et documenter la milestone: 
! 
- Créer les labels convenant au projet 
! 
- Ajouter une issue pour chaque tâche, il faut 
qu’elle soit bien détaillée. Plus il y a d’issues, plus 
on a de la visibilité sur l’avancement du sprint. 
> Lier l’issue à la milestone 
> Mettre les labels correspondants 
> Assigner l’issue à une personne
Milestones. 
! 
! 
! 
- Pour chaque sprint on crée une nouvelle 
milestone. 
! 
- Bien nommer et documenter la milestone: 
! 
- Créer les labels convenant au projet 
! 
- Ajouter une issue pour chaque tâche, il faut 
qu’elle soit bien détaillée. Plus il y a d’issues, plus 
on a de la visibilité sur l’avancement du sprint. 
> Lier l’issue à la milestone 
> Mettre les labels correspondants 
> Assigner l’issue à une personne
Gestion des 
branchs
Branch static. 
! 
! 
! 
! 
! 
! 
! 
! 
2 branchs static: 
- preprod 
- production (master) 
preprod master
Branch feature. 
! 
! 
! 
! 
- Chaque feature doit avoir une branch 
spécifique. 
! 
- Ne pas séparer le front et le back 
- Nomenclature à respecter: 
{type}/{featureName} 
! 
- Chaque nouvelle feature part de 
la branch preprod. 
> git checkout preprod 
> git checkout -b {branchName} 
! 
feature/linkProviders front/landingPage preprod master
feature/linkProviders front/landingPage preprod 
Feature development. 
! 
! 
- Bien nommer chaque commit ! 
> git commit -am ‘[{featureName}] description simple’ 
master 
2 1
feature/linkProviders front/landingPage preprod 
Feature development. 
! 
! 
- Bien nommer chaque commit ! 
> git commit -am ‘[{featureName}] description simple’ 
! 
- Une fois qu’une feature est fini, le développeur de 
la feature soumet une pull request de sa branch 
sur la branch preprod. 
! 
- Seule une personne accepte les PR ! (gatekeeper) 
Il faut nécessairement une double relecture afin de 
corriger des fautes et garantir la qualité du code 
qui sera mis en production. 
master 
2 1 
D
feature/linkProviders front/landingPage preprod 
Feature development. 
! 
! 
- Bien nommer chaque commit ! 
> git commit -am ‘[{featureName}] description simple’ 
! 
- Une fois qu’une feature est fini, le développeur de 
la feature soumet une pull request de sa branch 
sur la branch preprod. 
! 
- Seule une personne accepte les PR ! (gatekeeper) 
Il faut nécessairement une double relecture afin de 
corriger des fautes et garantir la qualité du code 
qui sera mis en production. 
! 
- Lors du merge de la branch, les autres branchs 
doivent pull la branch preprod afin d’être à jour et 
de traiter au plus vite les possibles conflits. 
> git pull origin preprod 
master 
2 1 
2 
D 
2
feature/linkProviders front/landingPage preprod 
Feature development. 
! 
! 
- Bien nommer chaque commit ! 
> git commit -am ‘[{featureName}] description simple’ 
! 
- Une fois qu’une feature est fini, le développeur de 
la feature soumet une pull request de sa branch 
sur la branch preprod. 
! 
- Seule une personne accepte les PR ! (gatekeeper) 
Il faut nécessairement une double relecture afin de 
corriger des fautes et garantir la qualité du code 
qui sera mis en production. 
! 
- Lors du merge de la branch, les autres branchs 
doivent pull la branch preprod afin d’être à jour et 
de traiter au plus vite les possibles conflits. 
> git pull origin preprod 
master 
2 1 
2 
D 
D 
2
Fix / Hot fix. 
! 
! 
- Suppression des branches des features 
développés et mergés. 
> git checkout preprod 
> git pull origin preprod 
> git push origin {branchName} —delete 
> git branch -D {branchName} 
master 
feature/linkProviders front/landingPage preprod 
D
Fix / Hot fix. 
! 
! 
- Suppression des branches des features 
développés et mergés. 
> git checkout preprod 
> git pull origin preprod 
> git push origin {branchName} —delete 
> git branch -D {branchName} 
! 
- Une fois que toute les features que l’on veut 
sortir sont sur la branch preprod, il faut les 
tester et s’assurer que tout fonctionne bien. 
master 
preprod 
D
Fix / Hot fix. 
! 
! 
- Suppression des branches des features 
développés et mergés. 
> git checkout preprod 
> git pull origin preprod 
> git push origin {branchName} —delete 
> git branch -D {branchName} 
! 
- Une fois que toute les features que l’on veut 
sortir sont sur la branch preprod, il faut les 
tester et s’assurer que tout fonctionne bien. 
! 
- Lors d’un retour à traiter la personne concerné le 
traite sur une nouvelle branch de fix. 
fix/linkProviders fix/landingPage preprod 
master 
D 
4 
3 
D
Fix / Hot fix. 
! 
! 
- Suppression des branches des features 
développés et mergés. 
> git checkout preprod 
> git pull origin preprod 
> git push origin {branchName} —delete 
> git branch -D {branchName} 
! 
- Une fois que toute les features que l’on veut 
sortir sont sur la branch preprod, il faut les 
tester et s’assurer que tout fonctionne bien. 
! 
- Lors d’un retour à traiter la personne concerné le 
traite sur une nouvelle branch de fix. 
! 
- Le process reste le même que pour le 
développement de feature. 
master 
fix/linkProviders fix/landingPage preprod 
D 
4 
3 
D 
D 
3 
3 
D 
4 
D
master 
D 
fix/linkProviders fix/landingPage 
Release. 
! 
! 
- Suppression des branchs de fix. 
preprod
Release. 
! 
! 
- Suppression des branchs de fix. 
master 
preprod 
D
Release. 
! 
! 
- Suppression des branchs de fix. 
! 
- Une fois que les bugs sont fixés et vérifiés, le 
gatekeeper fait un commit en changeant les 
numéros de versions là où il faut (package.json) et 
ajout les modifications de la realese dans le 
CHANGELOG.md. 
> git commit -am ‘{numVersion}’ 
master 
preprod 
D 
D
master 
D 
M 
D 
Release. 
! 
! 
- Suppression des branchs de fix. 
! 
- Une fois que les bugs sont fixés et vérifiés, le 
gatekeeper fait un commit en changeant les 
numéros de versions là où il faut (package.json) et 
ajout les modifications de la realese dans le 
CHANGELOG.md. 
> git commit -am ‘{numVersion}’ 
! 
- Merge de la branch preprod sur master. 
! 
- Ajout d’un tag de version. 
> git tag {version} 
> git push origin {version} 
! 
- Après un merge sur master, on re teste mais cette 
fois la version en production. 
! 
- Si un bug est relevé, on utilise le workflow précédent 
(Fix / Hot fix) avec hotfix en préfix de branch. 
preprod
Tips. 
! 
- Utiliser les lignes de command git 
! 
- 1 personne gère les PR ! (gatekeeper) 
! 
- Ne pas push des trucs qui marchent pas 
! 
- Commit sans modération 
! 
- Utiliser les commentaire de github 
! 
- Message explicite du commit 
! 
- 1 commit = qqchose en particulier 
! 
- Utiliser le .gitignore / .gitkeep 
! 
- Relire son code avant PR 
! 
- Double relecture pour la PR 
! 
- https://try.github.io 
- https://education.github.com/
MERCI.

Más contenido relacionado

La actualidad más candente

Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséECAM Brussels Engineering School
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVNneuros
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienneSylvain Witmeyer
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitGeoffrey Bachelet
 
Petit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina CorpusPetit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina Corpusleplatrem
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Gitmsadouni
 
Prise en main de Jhipster
Prise en main de JhipsterPrise en main de Jhipster
Prise en main de JhipsterKokou Gaglo
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsKokou Gaglo
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Ippon
 
REX - Passage de CVS à Git
REX - Passage de CVS à GitREX - Passage de CVS à Git
REX - Passage de CVS à GitPierre Templier
 
IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)
IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)
IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)Kokou Gaglo
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ ekino
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+ekino
 

La actualidad más candente (20)

Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
Les bases de git
Les bases de gitLes bases de git
Les bases de git
 
Git flow in action
Git flow in actionGit flow in action
Git flow in action
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
GIT Fundamentals
GIT FundamentalsGIT Fundamentals
GIT Fundamentals
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
 
Petit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina CorpusPetit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina Corpus
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
Git développez autrement
Git développez autrementGit développez autrement
Git développez autrement
 
Prise en main de Jhipster
Prise en main de JhipsterPrise en main de Jhipster
Prise en main de Jhipster
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec Jenkins
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
REX - Passage de CVS à Git
REX - Passage de CVS à GitREX - Passage de CVS à Git
REX - Passage de CVS à Git
 
IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)
IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)
IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 

Destacado

Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflowsArthur Shvetsov
 
140-Le chaman et l’écologiste. P. Raine. (document à télécharger en format PD...
140-Le chaman et l’écologiste. P. Raine. (document à télécharger en format PD...140-Le chaman et l’écologiste. P. Raine. (document à télécharger en format PD...
140-Le chaman et l’écologiste. P. Raine. (document à télécharger en format PD...Eldoux
 
Salle de sport le LIFECLUB : musculation, crosstraining, esthetique à Avignon.
Salle de sport le LIFECLUB : musculation, crosstraining, esthetique à Avignon.Salle de sport le LIFECLUB : musculation, crosstraining, esthetique à Avignon.
Salle de sport le LIFECLUB : musculation, crosstraining, esthetique à Avignon.lifeclubavignon
 
Ouwe missi oukem défis de la communication à travers quelques exemples de r...
Ouwe missi oukem défis de la communication à travers quelques exemples de r...Ouwe missi oukem défis de la communication à travers quelques exemples de r...
Ouwe missi oukem défis de la communication à travers quelques exemples de r...Eldoux
 
Authentique aid kaebir (1)
Authentique aid kaebir (1)Authentique aid kaebir (1)
Authentique aid kaebir (1)fbibe
 
Entre jeux d’échelle et publics-cibles, la difficile valorisation des données...
Entre jeux d’échelle et publics-cibles, la difficile valorisation des données...Entre jeux d’échelle et publics-cibles, la difficile valorisation des données...
Entre jeux d’échelle et publics-cibles, la difficile valorisation des données...eGov Innovation Center
 
Diapo ludivine, axelle ,mélanie
Diapo ludivine, axelle ,mélanieDiapo ludivine, axelle ,mélanie
Diapo ludivine, axelle ,mélanieyoyobig
 
Diapo mélissa stacey charlotte
Diapo mélissa stacey charlotteDiapo mélissa stacey charlotte
Diapo mélissa stacey charlotteyoyobig
 
La rennaissance amérindienne robert vachon
La rennaissance amérindienne  robert vachonLa rennaissance amérindienne  robert vachon
La rennaissance amérindienne robert vachonEldoux
 
11 presentación dr.-héctor-lindo.-foro-educación-superior- obstáculos paa el ...
11 presentación dr.-héctor-lindo.-foro-educación-superior- obstáculos paa el ...11 presentación dr.-héctor-lindo.-foro-educación-superior- obstáculos paa el ...
11 presentación dr.-héctor-lindo.-foro-educación-superior- obstáculos paa el ...Adalberto
 
Estilo de enseñanza
Estilo de enseñanza Estilo de enseñanza
Estilo de enseñanza Adalberto
 
Séminaire sur les investigations
Séminaire sur les investigationsSéminaire sur les investigations
Séminaire sur les investigationsLoïc Hervier
 

Destacado (20)

Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflows
 
140-Le chaman et l’écologiste. P. Raine. (document à télécharger en format PD...
140-Le chaman et l’écologiste. P. Raine. (document à télécharger en format PD...140-Le chaman et l’écologiste. P. Raine. (document à télécharger en format PD...
140-Le chaman et l’écologiste. P. Raine. (document à télécharger en format PD...
 
Salle de sport le LIFECLUB : musculation, crosstraining, esthetique à Avignon.
Salle de sport le LIFECLUB : musculation, crosstraining, esthetique à Avignon.Salle de sport le LIFECLUB : musculation, crosstraining, esthetique à Avignon.
Salle de sport le LIFECLUB : musculation, crosstraining, esthetique à Avignon.
 
Ouwe missi oukem défis de la communication à travers quelques exemples de r...
Ouwe missi oukem défis de la communication à travers quelques exemples de r...Ouwe missi oukem défis de la communication à travers quelques exemples de r...
Ouwe missi oukem défis de la communication à travers quelques exemples de r...
 
Authentique aid kaebir (1)
Authentique aid kaebir (1)Authentique aid kaebir (1)
Authentique aid kaebir (1)
 
Entre jeux d’échelle et publics-cibles, la difficile valorisation des données...
Entre jeux d’échelle et publics-cibles, la difficile valorisation des données...Entre jeux d’échelle et publics-cibles, la difficile valorisation des données...
Entre jeux d’échelle et publics-cibles, la difficile valorisation des données...
 
Le lapin
Le lapinLe lapin
Le lapin
 
C 337-11
C 337-11 C 337-11
C 337-11
 
Ethics manual fr
Ethics manual frEthics manual fr
Ethics manual fr
 
Diapo ludivine, axelle ,mélanie
Diapo ludivine, axelle ,mélanieDiapo ludivine, axelle ,mélanie
Diapo ludivine, axelle ,mélanie
 
Diapo mélissa stacey charlotte
Diapo mélissa stacey charlotteDiapo mélissa stacey charlotte
Diapo mélissa stacey charlotte
 
La rennaissance amérindienne robert vachon
La rennaissance amérindienne  robert vachonLa rennaissance amérindienne  robert vachon
La rennaissance amérindienne robert vachon
 
Remiseprix22maicrdp
Remiseprix22maicrdpRemiseprix22maicrdp
Remiseprix22maicrdp
 
11 presentación dr.-héctor-lindo.-foro-educación-superior- obstáculos paa el ...
11 presentación dr.-héctor-lindo.-foro-educación-superior- obstáculos paa el ...11 presentación dr.-héctor-lindo.-foro-educación-superior- obstáculos paa el ...
11 presentación dr.-héctor-lindo.-foro-educación-superior- obstáculos paa el ...
 
Estilo de enseñanza
Estilo de enseñanza Estilo de enseñanza
Estilo de enseñanza
 
Regsimple
RegsimpleRegsimple
Regsimple
 
Séminaire sur les investigations
Séminaire sur les investigationsSéminaire sur les investigations
Séminaire sur les investigations
 
Henry Matisse
Henry MatisseHenry Matisse
Henry Matisse
 
PresentacióN2
PresentacióN2PresentacióN2
PresentacióN2
 
Presentation3
Presentation3Presentation3
Presentation3
 

Similar a Github workflow

GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...akramalidrissi1
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsNicolas Mussat
 
Un site sans CMS (Teknseo 2014)
Un site sans CMS (Teknseo 2014)Un site sans CMS (Teknseo 2014)
Un site sans CMS (Teknseo 2014)Didcode
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfChris Saez
 
Industrialisation bar camp2010
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010Lushkah911
 
Scrapez facilement et gratuitement
Scrapez facilement et gratuitementScrapez facilement et gratuitement
Scrapez facilement et gratuitementMadeline Pinthon
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsHugo Hamon
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIHugo Hamon
 
Retour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueRetour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueMoïse Fiscal
 
MinuteJS - DevFest Nantes - 2016
MinuteJS - DevFest Nantes - 2016MinuteJS - DevFest Nantes - 2016
MinuteJS - DevFest Nantes - 2016Fabien JUIF
 
JCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueJCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueRossi Oddet
 
Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?The e-Commerce Academy
 
MinuteJS - BreizhCamp - 2017
MinuteJS - BreizhCamp - 2017MinuteJS - BreizhCamp - 2017
MinuteJS - BreizhCamp - 2017Fabien JUIF
 

Similar a Github workflow (20)

Git flow
Git flowGit flow
Git flow
 
3_SCM_Git.pdf
3_SCM_Git.pdf3_SCM_Git.pdf
3_SCM_Git.pdf
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
 
Tutorial Git
Tutorial GitTutorial Git
Tutorial Git
 
Git merge-rebase
Git merge-rebaseGit merge-rebase
Git merge-rebase
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgents
 
Un site sans CMS (Teknseo 2014)
Un site sans CMS (Teknseo 2014)Un site sans CMS (Teknseo 2014)
Un site sans CMS (Teknseo 2014)
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdf
 
Industrialisation bar camp2010
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010
 
PJ Tool Box
PJ Tool BoxPJ Tool Box
PJ Tool Box
 
Scrapez facilement et gratuitement
Scrapez facilement et gratuitementScrapez facilement et gratuitement
Scrapez facilement et gratuitement
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CI
 
Retour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueRetour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continue
 
MinuteJS - DevFest Nantes - 2016
MinuteJS - DevFest Nantes - 2016MinuteJS - DevFest Nantes - 2016
MinuteJS - DevFest Nantes - 2016
 
JCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueJCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratique
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?Magento 2 is to migrate or not to migrate, the right question ?
Magento 2 is to migrate or not to migrate, the right question ?
 
MinuteJS - BreizhCamp - 2017
MinuteJS - BreizhCamp - 2017MinuteJS - BreizhCamp - 2017
MinuteJS - BreizhCamp - 2017
 

Github workflow

  • 1. Github workflow Gestion de projet tech
  • 4. Milestones. ! ! ! - Pour chaque sprint on crée une nouvelle milestone.
  • 5. Milestones. ! ! ! - Pour chaque sprint on crée une nouvelle milestone. ! - Bien nommer et documenter la milestone
  • 6. Milestones. ! ! ! - Pour chaque sprint on crée une nouvelle milestone. ! - Bien nommer et documenter la milestone: ! - Créer les labels convenant au projet
  • 7. Milestones. ! ! ! - Pour chaque sprint on crée une nouvelle milestone. ! - Bien nommer et documenter la milestone: ! - Créer les labels convenant au projet ! - Ajouter une issue pour chaque tâche, il faut qu’elle soit bien détaillée. Plus il y a d’issues, plus on a de la visibilité sur l’avancement du sprint. > Lier l’issue à la milestone > Mettre les labels correspondants > Assigner l’issue à une personne
  • 8. Milestones. ! ! ! - Pour chaque sprint on crée une nouvelle milestone. ! - Bien nommer et documenter la milestone: ! - Créer les labels convenant au projet ! - Ajouter une issue pour chaque tâche, il faut qu’elle soit bien détaillée. Plus il y a d’issues, plus on a de la visibilité sur l’avancement du sprint. > Lier l’issue à la milestone > Mettre les labels correspondants > Assigner l’issue à une personne
  • 9. Milestones. ! ! ! - Pour chaque sprint on crée une nouvelle milestone. ! - Bien nommer et documenter la milestone: ! - Créer les labels convenant au projet ! - Ajouter une issue pour chaque tâche, il faut qu’elle soit bien détaillée. Plus il y a d’issues, plus on a de la visibilité sur l’avancement du sprint. > Lier l’issue à la milestone > Mettre les labels correspondants > Assigner l’issue à une personne
  • 11. Branch static. ! ! ! ! ! ! ! ! 2 branchs static: - preprod - production (master) preprod master
  • 12. Branch feature. ! ! ! ! - Chaque feature doit avoir une branch spécifique. ! - Ne pas séparer le front et le back - Nomenclature à respecter: {type}/{featureName} ! - Chaque nouvelle feature part de la branch preprod. > git checkout preprod > git checkout -b {branchName} ! feature/linkProviders front/landingPage preprod master
  • 13. feature/linkProviders front/landingPage preprod Feature development. ! ! - Bien nommer chaque commit ! > git commit -am ‘[{featureName}] description simple’ master 2 1
  • 14. feature/linkProviders front/landingPage preprod Feature development. ! ! - Bien nommer chaque commit ! > git commit -am ‘[{featureName}] description simple’ ! - Une fois qu’une feature est fini, le développeur de la feature soumet une pull request de sa branch sur la branch preprod. ! - Seule une personne accepte les PR ! (gatekeeper) Il faut nécessairement une double relecture afin de corriger des fautes et garantir la qualité du code qui sera mis en production. master 2 1 D
  • 15. feature/linkProviders front/landingPage preprod Feature development. ! ! - Bien nommer chaque commit ! > git commit -am ‘[{featureName}] description simple’ ! - Une fois qu’une feature est fini, le développeur de la feature soumet une pull request de sa branch sur la branch preprod. ! - Seule une personne accepte les PR ! (gatekeeper) Il faut nécessairement une double relecture afin de corriger des fautes et garantir la qualité du code qui sera mis en production. ! - Lors du merge de la branch, les autres branchs doivent pull la branch preprod afin d’être à jour et de traiter au plus vite les possibles conflits. > git pull origin preprod master 2 1 2 D 2
  • 16. feature/linkProviders front/landingPage preprod Feature development. ! ! - Bien nommer chaque commit ! > git commit -am ‘[{featureName}] description simple’ ! - Une fois qu’une feature est fini, le développeur de la feature soumet une pull request de sa branch sur la branch preprod. ! - Seule une personne accepte les PR ! (gatekeeper) Il faut nécessairement une double relecture afin de corriger des fautes et garantir la qualité du code qui sera mis en production. ! - Lors du merge de la branch, les autres branchs doivent pull la branch preprod afin d’être à jour et de traiter au plus vite les possibles conflits. > git pull origin preprod master 2 1 2 D D 2
  • 17. Fix / Hot fix. ! ! - Suppression des branches des features développés et mergés. > git checkout preprod > git pull origin preprod > git push origin {branchName} —delete > git branch -D {branchName} master feature/linkProviders front/landingPage preprod D
  • 18. Fix / Hot fix. ! ! - Suppression des branches des features développés et mergés. > git checkout preprod > git pull origin preprod > git push origin {branchName} —delete > git branch -D {branchName} ! - Une fois que toute les features que l’on veut sortir sont sur la branch preprod, il faut les tester et s’assurer que tout fonctionne bien. master preprod D
  • 19. Fix / Hot fix. ! ! - Suppression des branches des features développés et mergés. > git checkout preprod > git pull origin preprod > git push origin {branchName} —delete > git branch -D {branchName} ! - Une fois que toute les features que l’on veut sortir sont sur la branch preprod, il faut les tester et s’assurer que tout fonctionne bien. ! - Lors d’un retour à traiter la personne concerné le traite sur une nouvelle branch de fix. fix/linkProviders fix/landingPage preprod master D 4 3 D
  • 20. Fix / Hot fix. ! ! - Suppression des branches des features développés et mergés. > git checkout preprod > git pull origin preprod > git push origin {branchName} —delete > git branch -D {branchName} ! - Une fois que toute les features que l’on veut sortir sont sur la branch preprod, il faut les tester et s’assurer que tout fonctionne bien. ! - Lors d’un retour à traiter la personne concerné le traite sur une nouvelle branch de fix. ! - Le process reste le même que pour le développement de feature. master fix/linkProviders fix/landingPage preprod D 4 3 D D 3 3 D 4 D
  • 21. master D fix/linkProviders fix/landingPage Release. ! ! - Suppression des branchs de fix. preprod
  • 22. Release. ! ! - Suppression des branchs de fix. master preprod D
  • 23. Release. ! ! - Suppression des branchs de fix. ! - Une fois que les bugs sont fixés et vérifiés, le gatekeeper fait un commit en changeant les numéros de versions là où il faut (package.json) et ajout les modifications de la realese dans le CHANGELOG.md. > git commit -am ‘{numVersion}’ master preprod D D
  • 24. master D M D Release. ! ! - Suppression des branchs de fix. ! - Une fois que les bugs sont fixés et vérifiés, le gatekeeper fait un commit en changeant les numéros de versions là où il faut (package.json) et ajout les modifications de la realese dans le CHANGELOG.md. > git commit -am ‘{numVersion}’ ! - Merge de la branch preprod sur master. ! - Ajout d’un tag de version. > git tag {version} > git push origin {version} ! - Après un merge sur master, on re teste mais cette fois la version en production. ! - Si un bug est relevé, on utilise le workflow précédent (Fix / Hot fix) avec hotfix en préfix de branch. preprod
  • 25. Tips. ! - Utiliser les lignes de command git ! - 1 personne gère les PR ! (gatekeeper) ! - Ne pas push des trucs qui marchent pas ! - Commit sans modération ! - Utiliser les commentaire de github ! - Message explicite du commit ! - 1 commit = qqchose en particulier ! - Utiliser le .gitignore / .gitkeep ! - Relire son code avant PR ! - Double relecture pour la PR ! - https://try.github.io - https://education.github.com/