all repos — blog @ d0574744ba5a672ac57c5001da8f00a604ba1c6d

Code and content for 5ika.ch

content/garden/minimal-ci.md (view raw)

 1---
 2Title: Pipeline de déploiement minimal
 3---
 4
 5# Pipeline de déploiement minimal
 6
 7Pour 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.
 8
 9Cette 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.
10
11```bash
12#!/bin/bash
13
14echo "Deploy blog on 5ika.ch"
15su ubuntu << EOF
16  git push /var/www/html/blog/
17  cd /var/www/html/blog/
18  hugo --minify
19EOF
20```
21
22Pour 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:
23
24```bash
25git config receive.denyCurrentBranch updateInstead
26```
27
28À 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`.