Docteur jenkins et mister schlag
lettre d’amour à ma techno préférée
Jenkins c’est une techno de cyberclochard:
- c’est lent
- c’est relou à dev
- relou à maintenir
- il faut faire du groovy de merde qui s’exécute seulement dans le contexte de Jenkins
- il faut traîner des plugins en pagaille qui ne sont pas maintenus ou avec des breaking changes
- tu serres bien les fesses à chaque update
- quand ça tombe, tu creuses ta tombe
- c’est ultra moche, ça donne envie de vomir
- ne parlons pas de blue ocean qui ne supporte même pas la moitié des features
- sécu nulle
Bref c’est la honte ultime, l’outil de boloss
Alors vous savez quoi ? Plutôt crever qu’utiliser Jenkins
Je vois 2 alternatives
- gitlab ci
- solution de gros schlagos
Parce que gitlab ci est un outil d’une flexibilité et d’une puissance extraordinaire.
Je suis partial, mais pour moi c’est le seul outil de ci/cd qui vaille vraiment le coup, pour les raisons suivantes:
- tu peux faire tes scripts dans le langage de ton choix
- bash, python, cobol ce que tu veux et même groovy si tu es nostalgique de Jenkins, pauvre fou
- gitlab ci et gitlab sont faiblement couplés à ton code de ci/cd
- mise à jour sans casser ton code et sans réécrire quoi que ce soit
- pas de foire au plug-in, certaines intégrations font gagner du temps et sont maintenus professionnellement par gitlab
- j’insiste sur le professionnellement, on est certain d’un minimum de qualité et de suivi
- tu n’as pas besoin de gitlab pour lancer ou testers tes scripts (et tu peux lancer des jobs pour tester les scripts de tes jobs en plus)
Seulement une contrainte majeure, il faut installer gitlab et un runner pour pouvoir en profiter. Ce qui en fait une bombe atomique pour écraser un moustique quand on bosse sur un projet perso.
Est-ce que j’ai envie de me faire chier à traîner un serveur pour ça, chez moi, ou payer pour une vm ?
Non, putain, ça me saoule puissance 1000, parce que vous le savez bien, j’ai deux qualités:
- je suis une feignasse
- je suis radin
la peste ou le choléra ? choisissez le sida
Et bien aujourd’hui on parle de la solution de gros schlagos, pas envie d’installer Jenkins, pas envie d’installer gitlab et de migrer tous vos repos, besoin de faire du déploiement continu ?
Utiliser la solution Eco+, ménestrel, jonglage et script de margoulin. J’ai nommé git Hook 🤪
Attention, solution non scalable, non viable, mono dev, là on parle projet perso et solution chaussette sale et bouteilles vides au sol.
L’astuce c’est d’utiliser le script de prehook avec un process fork et une condition qui check si ton repo git est dans un état clean. pour que tout de suite après le git push, ton script s’exécute et déploie ta daube, n’oublie pas la sauce 🤪.
tu mets ça dans ton repo git .git/hooks/pre-push
sans oublier de faire un petit chmod +x qui va bien
|
|
Et là tu vas me dire “quoi ? C’est tout ? C’est nul, rends l’argent des abonnés.”
J’crois que tu n’as pas compris la puissance du truc:
- deploy lancé au moment où tu push, à la microseconde, imbattable
- pas d’outil en plus, pas de serveur, pas de connection failure ou d’attente que le runner fasse un truc
- tu peux même faire du ansible avec le module repo pour git deploy ta nouvelle version depuis ton git remote, il va deploy ta version que tu viens de pusher
du coup à chaque push tu deploy ton truc, rapidité maximum, sécurité minimum All in baby 😏 prank ça part en prod
Pas de problème de ci/cd bloqué quand on a pas d’outil de ci/cd 🤪
Conclusion :
- Plutôt crever qu’utiliser Jenkins, virez-moi cette merde
- Jenkins c’est horrible de façon pro, pourquoi l’utiliser en perso ? Plutôt crever
- on peut faire du deploy continu sans installer d’outil dédié de ci/cd
- pas besoin de traçabilité et d’outil complexe quand on est tout seul
- prod is the new dev
- ne fais pas ça sur des projets sérieux hein 😂😂 (ou si mais ne le dis à personne 😏)
- ramène pas ton vieux jenkins sur des nouveau projets on n’en veut pas de ta merde