Augmentez votre productivite

Depuis, quelques jours je réfléchi sérieusement à changer ma façon de gérer les serveurs web de mes clients. J’ai toujours monté 3 environnements : Dev / Pré-prod / Production (assez classique, je suis certain que tu fais pareil). Mais dans ces environnements, rien n’était vraiment synchronisé, versionnné… Bien que je connaisse GIT depuis quelques années, je viens juste de me rendre compte de sa vraie puissance (Jeter moi des tomates virtuelles, je le mérite).

Git utilisation pour prestashop
Git utilisation pour prestashop

GIT à la rescousse :

Tout d’abord, j’ai crée des dépôts privés sur Github. Tu peux faire de même et gratuitement via bitbucket (mais c’est un brin long à commit / clone). Perso, pour $7/mois, j’ai pas cherché, j’aime Github 🙂

L’idée donc c’est de créer des dépôts pour chaque nouveau site web. Ensuite pusher les environnements de production actuel sur le nouveau dépôts fraichement crée. Une fois fait, il est neccessaire de les récupérer sur son local.

Via un :

git clone https://....PROJECT_URL_@GITHUB

et zou, nous voila avec les fichiers en local.

L’idée s’est de faire de même pour la pré-prod, un clone du projet et zou 🙂

Une erreur de connexion à son dépôt GIT ?

Une erreur du genre :

Please make sure you have the correct access rights
and the repository exists.

Vérifie si tu as bien ta clef SSH de renseigné dans tes settings GitHub ou Bitbucket.
Si ce n’est pas le cas, récupère là via :

cat /TON/PATH/USER/.ssh/id_rsa.pub

La création des branches :

Tu connais un peu le fonctionnement des branches GIT. Ben là ce qu’on va faire et ça parait logique, la branche master sera la branche de production.

A chaque fois, qu’on part sur un nouveau développement (module, thème, bug..), on créer une branche : feature-de-la-mort-qui-tue sur son git local. Ensuite, on check sur la pré-prod, (git checkout feature-de-la-mort-qui-tue).

On test la feature nouvellement développé, ça marche ? OUI : On merge la branche sur la branche master. A ce moment là, la branche est fusionné avec la branche master (celle de la production) mais n’est toujours pas visible sur le site en production.

C’est l’hiver mets un PULL :

(pardon)… mais c’est vrai ! Il fait froid dehors :V
Donc, a ce moment là, on à notre branche qui est merge avec la branche production, mais toujours pas visible sur l’environnement de production (Je viens de le dire ? Le mec il s’est cru après une pub dans une émission de M6).

Il faut donc faire un :

git pull --rebase

pour récupérer les modifications faites sur le dépôt GITHUB (ou bitbucket…).

Et si tout se passe bien, (il y a pas de raison) l’environnement de production est updated 🙂

 

Il y a plus qu’a développer la deuxième feature de la mort.

GIT très pratique pour le versionning de fichier :

L’avantage c’est que GIT facilite les rollbacks en cas de problème. Il est simple de suivre les évolutions de sa solution à travers l’interface de Github ou Bitbucket… Et ça, ça n’a pas de prix 🙂

Il est assez simple du coup de tester des fixes comme celui qui pose problème lors des enregistrements de produit prestashop 1.6+ et des les impacter sur sa production 🙂

 

Fichier Prestashop à ignorer via GIT :

Si comme moi, tu passes tes sites prestashop sous GIT, tu auras certainement besoin d’ignorer une partie des fichiers comme les fichiers de cache, les fichiers de configuration (Qui doivent être propre à chaque environnement)…

 

Voici le .gitignore que j’utilise : (Il versionne les fichiers prestashop (core))

 

.buildpath

.project

.settings

.idea

.svn

.DS_Store

.sass-cache

config.codekit

*.sublime-project

*.sublime-workspace

/.htaccess

# Directories content

cache/class_index.php

cache/smarty/cache/*

!cache/smarty/cache/index.php

cache/smarty/compile/*

!cache/smarty/compile/index.php

cache/tcpdf/*

!cache/tcpdf/index.php

config/xml/*.xml

config/settings.inc.php

log/*.log

img/*

!img/index.php

!img/*/index.php

tools/smarty*/cache/*.php

!tools/smarty*/cache/index.php

tools/smarty*/compile/*.php

!tools/smarty*/compile/index.php

themes/*/cache/*.js

themes/*/cache/*.css

modules/*/config*.xml

# Ignore files on root directory

robots.txt

*.xml

# Ignore zip/tgz/tar

*.zip

*.tgz

*.tar

Un autre .gitignore qui ne versionne pas les fichiers du core prestashop :

 

# This is a template .gitignore file for git-managed Prestashop projects. Inspired by micahwalter wordpress gitignore

#Ignore ds_store
*.DS_Store


# Ignore everything in the root except modules, themes and override.
/*
!modules/
!themes/
!override/


# Ignore everything in the "plugins" directory, except the plugins you
# specify (see the commented-out examples for hints on how to do this.)

#modules/*
# !modules/my-directory-plugin/

# Ignore everything in the "themes" directory, except the themes you
# specify (see the commented-out example for a hint on how to do this.)

#themes/*
#!themes/my-theme/

 

Sources :

 

Donne une note à ce post

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *