all repos — blog @ main

Code and content for 5ika.ch

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`.