(Git Newcomer hier) Ich versuche, ein System zu implementieren, wodurch ein Jenkins-Build ausgelöst wird, wenn ein Tag zu einem bestimmten Zweig geschoben wird. Derzeit hat mein Vorgesetzter eine einfache PoC installiert, wo auf unsere API-Server (die laufen node.js), einen cron-Job alle 5 Minuten lief ist, die ausgeführt wird:Jenkins: Build, wenn ein Zweig markiert ist
git checkout production
git pull
git checkout `git describe --abbrev=0 --tags`
Also, wenn ein Entwickler möchte eine Änderung schieben Zur Produktion führen sie einfach npm version patch
aus, die den letzten Commit mit einer neuen Versionsnummer kennzeichnet und dann die Änderung mit git push origin --tags
verschiebt. Dann führen sie über Jenkins ein Skript aus, das alle API-Dienste in API-Boxen neu startet.
Also, um es zu emulieren und vollständig zu automatisieren, möchte ich einen Jenkins-Job haben, der all dies tut (plus ein paar Extras), wenn er erkennt, dass unsere production
Zweigstelle mit einer neuen Version getaggt wurde.
Ist das möglich? Die meiste Dokumentation, die ich gefunden habe, beinhaltet das Auslösen eines Builds auf einem beliebigen Tag, der an einen Repo-Dienst gesendet wird. Ich möchte einen Tag auslösen, der auf einen Commit für einen bestimmten Repo verweist.
Ich bin ziemlich sicher, dass dies ein fortgeschrittener Fall ist, und ich könnte stattdessen ein Skript schreiben, aber ich versuche Best Practices für Jenkins und Git zu lernen, und ich möchte nicht am Ende bleiben zu einigen Anti-Muster.