content/garden/minimal-ci.md (view raw)
1---
2Title: Pipeline de déploiement minimal
3---
4
5Pour ne pas avoir à mettre en place tout un système de pipeline de CI/CD sur mon petit serveur perso, j'ai réfléchi à une solution minimale pour mettre à jour mon blog à chaque fois que je push une modification sur le dépôt Git.
6
7Cette solution repose sur un [git hook](https://git-scm.com/docs/githooks) *post-receive* placé au niveau du dépôt sur le serveur Soft-Serve.
8
9```bash
10#!/bin/bash
11
12echo "Deploy blog on 5ika.ch"
13su ubuntu << EOF
14 git push /var/www/html/blog/
15 cd /var/www/html/blog/
16 hugo --minify
17EOF
18```
19
20Pour autoriser git à faire un push vers un autre dossier local (/var/www/html/blog), il est nécessaire de lancer la commande suivante dans le dossier qui reçoit le push:
21
22```bash
23git config receive.denyCurrentBranch updateInstead
24```
25
26À chaque push vers le dépôt git, le script de déploiement est exécuté et les logs s'affichent avec ceux de la commande `git push`.