Depuis le temps que j'utilise pelican pour publier quasi que dale sur mon blog, je m'étais quand même mis au CI. M'y suis mis un peu tard, mais avant que ça soit une catégorie sur les CV, ça avait un peu de sens :) J'avais des trucs maison pour faire des choses très approchantes avant. J'ai l'occasion de le refaire. Je me suis dit que j'allais tenter un REX/doc/article de blog

Idée initiale

Contrairement au boulot, j'ai des besoins ultra simples :

  • quand je commit sur mon repo local, ça passe le linter, quelques autres check au besoin, puis ça construit le site et ça empêche le commit si ça échoue. Sinon ça lance un serveur web local pour que je puisse voir ce que ça donne.
  • (potentiellement mon éditeur fait pareil, donc ça aurait moisn de sens de le refaire dans le hook
  • dérogation si j'suis pressé avec un [noCI]
  • si je push sur $staging [à définir], ça build et déploie sur blog-test
  • [strategie à définir] merge sur master, ça deploy en prod

Implémentation

Entre temps, je me suis mis à utiliser gitea et drone pour faire du CI/CD. J'ai utilisé ce mécanisme pour déployer le blog. Les sources sont ici et en particulier ce fichier qui décrit la pipeline en format drone

Les hooks de precommit sont toujours là, pour passer certains linter en local, ils seraient peut-être à améliorer d'ailleurs. Sinon, à part le [noCI], tout le reste est implémenté.

TODO

Décrire ce que fait la pipeline et l'usage de variables secrètes, mais le principe est déjà bien documenté sur internet, donc ma flemme risque de gagner cette bataille.