Est-il possible de Jenkins pour détecter automatiquement et de construire nouvellement créé des balises dans un repo git?
Il serait bien pour notre Jenkins serveur CI de détecter automatiquement, déployer et des balises de construction car ils sont créés dans notre dépôt Github.
Est-ce possible?
- La pratique généralement suivie est de créer une balise après avoir réussi à construire et à déployer. Une raison pour laquelle vous voulez générer des balises plutôt que de maître?
- Je suis l'aide de Tycho qui n'a pas de support pour mvn:date de sortie, mais le faire à votre façon fonctionne aussi bien.
Vous devez vous connecter pour publier un commentaire.
Avec la configuration suivante, vous pouvez faire un travail de construire tous les tags:
+refs/tags/*:refs/remotes/origin/tags/*
*/tags/*
Cette approche a un inconvénient: La tâche sera de construire tous balises et pas seulement récemment ajouté des balises. Ainsi, après avoir créé le travail, il sera déclenchée une fois pour chaque balise existante. Donc, vous voulez probablement pour avoir le travail ne rien faire, d'abord, puis attendre jusqu'à ce que toutes les balises ont été traitées, et seulement ensuite configurer les étapes de génération que vous voulez faire pour chaque nouvelle balise.
Puisque les étiquettes ne changera pas dans git, le travail ne sera alors déclenché une seule fois pour chaque nouvelle balise.
This approach has one drawback
un - autre- vous ne pouvez pas construire balise qui pointe à une précédente hachage de la tête. Pour par exemple, vous avez la suite de l'histoire:550313e(commit1) -> 22ce31f(commit2) -> e31e663(commit3, head)
Puis vous ajouter un nouveau tag: tag1 -> e31e663. Le travail sera déclenchée, MAIS après ce travail, vous ne serez pas en mesure de déclencher des emplois pour les livraisons550313e/22ce31f
De surmonter l'inconvénient de @oberlies réponse que toutes les balises sera construit, je suis à l'aide d'un déclencheur de construire à la place. Le déclenchement de construire utilise le même dépôt git et de la direction générale en tant que principal de génération et la suivante (post) etapes de construction.
Build -> Execute shell:
Build -> Injecter des variables d'environnement:
Post-construire des Actions -> : Déclenchement paramétrable construire sur d'autres projets
Enfin, dans votre génération principal, cochez la case "Ce build est paramétrée" avec la chaîne de caractères du paramètre
Et dans le "Code Source de gestion de la section" utiliser "$TAG" dans les "Branches pour construire" sur le terrain.
Vous pouvez installer un post-recevoir crochet, qui vérifie si une étiquette a été commis, et crée une accumulation dans jenkins.
Le crochet peut ressembler à quelque chose comme ceci [*]:
[*] note: ceci est juste une conversion rapide de légèrement différente de script, il est donc tout à fait probable qu'il y a quelques petits bugs ici. C'est surtout pour montrer l'idée.
Sur le jenkins côté, vous devez configurer un paramétrés au travail. Le seul paramètre est la "branche".
Cela donne une assez sûre et solide, de façon à construire. Pour les tests, l'exécution d'une construction à travers l'interface web, il va demander la valeur du paramètre.
Dans le monde moderne (?) multi-direction des pipelines, de la construction des balises fonctionne comme suit.
N'oubliez pas d'ajouter une stratégie de construction pour les branches; le plugin désactive les paramètres par défaut complètement!
Vous pouvez utiliser l'option "Git de l'Éditeur" qui vient en partie de la Plugin Git pour créer une étiquette après avoir réussi à construire/deploy.