Un problème majeur lors des modifications de mon portfolio et du blog était le temps ! Afin de publier les updates il fallait :
- Se connecter au serveur par FTP (File Transfer Protocol est un protocole de communication destiné au partage de fichiers sur un réseau),
- Remplacer les anciens fichiers par les nouveaux.
Pour le blog, il fallait d’abord le build avant de l’envoyer sur le serveur par le protocole FTP, pour chaque modification apportée. Le déploiement automatique permettra d’automatiser ces tâches récurrentes. La solution mise en place est Azure Devops, avec les pipelines d’azure on pourra exécuter des instructions découpées en plusieurs étapes. J’ai donc créé deux dépôts git azure un pour le blog et un autre pour mon portfolio
Pipeline portfolio
On peut créer des pipelines en fichier YAML ou par interface graphique de Azure Devops, nous devons choisir l’agent où va être lancé la pipeline (un agent peut être considéré comme une machine virtuelle). Pour le portfolio la pipeline est plutôt simple suffit de :
- Récupérer le dossier du git Azure Devops,
- S’authentifier au serveur par FTP,
- Envoyer les fichiers du dépôt au serveur. Voici les champs que j’ai dû remplir pour mettre en place le FTP.
Ajout d’un trigger qui permet de lancer les étapes d’une pipeline.
Ce trigger se lancera quand nous allons faire un push de la branche master sur le dépôt de git Azure Devops.
Si toutes les étapes ont été réussis le site est donc publié avec juste un push de notre part sur la branche master
Pipeline blog
La complication lors du déploiement automatique est de build le blog avant de l’envoyer sur le serveur via protocole FTP. Au début je suis parti sur du docker que je détaillerais sur un article traitant le sujet concerné. Mais je fus bloqué sur l’éventualité, de pouvoir récupérer les fichiers build à la construction de l’image de docker. J’ai donc tenté de regrouper les étapes dans un task group, que j’ai nommé “installation environnement hugo” qui permet :
- La mise à jour de l’agent
- L’installation de wget et de git
- téléchargement de hugo
- Installation de hugo
Une fois l’environnement préparait à utiliser hugo afin de build mon blog Je rajoute à la pipeline les étapes :
- Build
- La connection au serveur via FTP (semblable au portfolio)
L’ajout d’un trigger pour déclencher le processus de déploiement est identique au portfolio avec un push sur la branche master. Voici l’image d’un déploiement du blog réussis, sur toutes les étapes de validation.
Conclusion
Pour le déploiement nous avons donc mis en place, deux pipelines pour mettre en ligne nos modifications du portfolio et du blog. Avec ce petit projet d’automatisation j’ai pu m’initier à docker avec la construction d’image par dockerFile, mais au final pour le déploiement je n’utiliserais pas docker. J’arrive maintenant en sauvegardant mon code avec Git Azure Devops à le déployer en quelque seconde sur mon serveur, sans risque d’erreur grâce aux pipelines qui s’arrêtent si une des étapes échouent. Cet Article est écrit sur mon ordinateur, puis a été sauvegardé sur mon Git et du dépôt a été envoyé sur mon serveur par la pipeline!