Déployer facilement un site avec Git ftp

Stephane Turquay
3 décembre 2014
Pas de commentaire

Dans le processus de création d’un site internet, il y a certes le développement mais pour la mise en ligne il y a une étape indispensable : le déployement. Ce dernier point est finalement assez contraignant quand il s’agit de faire des mises à jour via FTP et que le serveur ne propose pas d’accès SSH, ni le support de Git.

Exemple concret

Vous développez un site avec d’autres développeurs, certains plus back-end d’autres front-end. Que vous ayez un serveur de développement ou pas, la bonne pratique est que chacun travaille en local (si cela est possible). Vous modifiez un fichier, vos collègues en ajoutent, suppriment d’autres et vous devez en même temps mettre le tout en ligne sur le serveur de développement pour votre chef de projet, client, etc.

C’est ici que git-ftp prend son sens car vous souhaitez déployer uniquement les modifications effectuées sans avoir à tout réuploader manuellement ou fichier après fichier dans les bons dossiers.

Oui, il existe des solutions plus performantes, plus fiables, plus complètes tels que Beanstalk, DeployHQ mais nécessitent un abonnement. C’est pourquoi, je vous propose aujourd’hui de découvrir ce script shell git-ftp qui ne demande qu’un petit peu de configuration.

Prérequis

  • Git installé
  • Connaissance des commandes principales de Git
  • Accès FTP du serveur de destination

Git-ftp

Installation manuelle via Git

Installation via homebrew (Mac OS X)

Félicitations ! Vous venez d’installer Git-ftp. Maintenant, dirigeons nous dans le répertoire dans lequel nous souhaitons travailler (cf. cd [votre_repertoire])  ou alors cloner un repository (cf. git clone). Dès lors, nous devons configurer Git-ftp.

Configuration de Git-ftp

  • <scope> est à remplacer avec le nom de votre environnement comme par exemple : production, staging, live, etc.
    Cette information est optionnelle, vous n’êtes pas obligé de la renseigner.
  • <user> est à remplacer par le nom d’utilisateur de compte FTP
  • <password> est à remplacer par le mot de passe du compte FTP
  • <url> est à remplacer par l’URL de l’hôte du FTP

Pour plus de paramètres, je vous invite à consulter la documentation.

Initialisation de Git-ftp

Attention, l’initialisation consiste à un déploiement de tous les fichiers.

Vous pourrez apercevoir plein de lignes défiler dans la console. Git-ftp fait l’inventaire des fichiers avant de les transférer. Si vous n’avez pas défini de <scope> dans la configuration, vous pouvez vous contenter de la commande git ftp init.

Déploiement partiel

Git-ftp est configuré, fonctionnel, tous les fichiers sont également sur le serveur. Nous pouvons continuer à travailler sur notre développement en local. Veuillez noter que Git-ftp ne substitue pas l’utilisation du versioning avec Git.

Dès lors que des corrections, ajouts ou autres sont stables et prêts à être mis en ligne sur un serveur, vous pouvez les déployer.

Exclure des fichiers

Git-ftp ne fait aucune différence entre les fichiers présents dans le dossier à déployer, il prend tout type de fichier. En revanche, tout comme Git nous pouvons ajouter des règles d’exception via un fichier .git-ftp-ignore à placer à la racine du dossier. Cela marche exactement comme pour .gitignore

Pour en savoir plus sur l’exception de fichiers, veuillez consulter la documentation sur .gitignore.

Options, actions, scopes…

Je vous ai présenté Git-ftp pour une utilisation très basique. Le script shell propose bien d’autres options et commandes pour répondre à des besoins et manipulations particulières. Pour cela, le repository Github inclus une documentation détaillée et maitenue à jour : Manuel d’utilisation de Git-ftp.

Si vous avez des questions, des problèmes, des retours n’hésitez pas à en faire part dans les commentaires.