J'améliore actuellement le processus de sortie de nos projets sur Jenkins (1.430).
Travaux de publication actuels
Aujourd'hui, pour un projet spécifique, nous avons un travail dédié au processus de Release. La procédure complète est la suivante:
mvn versions:set -DnewVersion=2.0
) pour se débarrasser du -SNAPSHOT
.2.1-SNAPSHOT
).L'avantage de cette méthode est que je n'ai que du travail Jenkins, car la construction ne s'appuiera que sur une balise.
Cependant, cette procédure implique trop d'interventions humaines (modifications du pom.xml, commits, tags, etc.).
Travaux de nouvelle version
Maintenant, j'utilise le plugin de sortie Maven. J'ai créé un travail qui demande trois informations à l'utilisateur qui lance la build:
releaseVersion
du plugin de version);developmentVersion
du plugin de sortie);tag
du plugin de version).Ce travail fonctionne bien, sauf pour un point: le travail est basé sur le tronc ou sur une branche dans SVN. Cela signifie que si j'ai 2 branches (en plus du tronc), je devrai créer 3 jobs de release: un par branche.
Une idée pour garder le meilleur des deux mondes (c'est-à-dire en utilisant la version mvn, mais en gardant 1 tâche de version) pour ajouter un paramètre de construction qui demandera à l'utilisateur le chemin du tronc/branche. Donc, au lieu de définir http://my-svn-repo/project/trunk
(ou http://my-svn-repo/project/branches/BRANCH_V1
) dans la configuration du travail, je définirai http://my-svn-repo/project/$FROM_BRANCH
, et demandez à l'utilisateur de saisir le FROM_BRANCH
paramètre.
Le problème avec cette solution est que l'utilisateur devra saisir trunk
ou branches/BRANCH_Vx
, ce qui peut entraîner des erreurs.
Idéalement, j'aimerais avoir un paramètre de build qui me laisse le choix de la branche (y compris le tronc), car le paramètre List Subversion tags existe pour le choix des tags ...
Donc ma question: existe-t-il une meilleure façon de configurer un travail Jenkins qui peut fonctionner sur toutes les branches?
Merci.
Edit: J'ai trouvé le plugin Validating String Jenkins qui peut être intéressant pour s'assurer que la valeur définie par l'utilisateur respecte une expression régulière. C'est utile dans mon cas ...
Vous avez besoin de la version 1.32 du plugin Subversion. Le problème JENKINS-10678 a été implémenté dans cette version.
Ensuite, vous ne lui donnez que l'URL de votre projet (qui doit contenir le tronc, les branches et les balises) et il vous offrira le tronc avec vos branches.
Juste pour ajouter quelques notes à la réponse de Peter si vous n'êtes pas si familier avec Jenkins.
Le plugin Subversion est installé par défaut dans les versions récentes (comme pour septembre 2015).
Ensuite, vous devez configurer votre projet comme suit:
vérifiez les captures d'écran suivantes: