9
votes

Est-il possible de remplacer l'URL de référentiel entière avec une chaîne paramétrée dans Hudson / Jenkins?

Dans Hudson / Jenkins, est-il possible de remplacer la chaîne totale dans l'URL de référentiel de modules de subversion avec un paramètre de chaîne? Je ne veux pas simplement remplacer simplement la version ou quoi que ce soit comme ça, je veux remplacer toute l'URL.

Alors, quand je gère la construction, j'aurais une invite pour l'URL et je mettrais quelque chose comme "http: //scm.work.corp/svn/com.work.package/tags/project- 4.0.0.Release "et cela vérifierait cela et la construire.

Être capable de remplacer les pièces "COM.WORK.PACKAGE" et "Project-4.0.0.Release" serait tout aussi acceptable. Je veux fondamentalement que ce soit un travail capable de construire une libération.


0 commentaires

6 Réponses :


4
votes

Si Hudson / Jenkins ne connaît pas l'URL à l'avance, comment est-il supposé faire une intégration de construction continue?

Et comment Hudson / Jenkins fait-il une mise à jour si vous continuez à changer l'URL? Vous devrez obtenir Hudson / Jenkins pour faire une nouvelle commande à chaque fois, soit l'obtenir d'utiliser la commande SVN Switch .

L'ensemble du but d'un outil comme Hudson / Jenkins est de faire des constructions continues que vous souhaitez arrêter de faire. Puisque vous ne faites pas des constructions continues, pourquoi prendre la peine d'un outil comme Hudson / Jenkins? Pourquoi ne pas écrire votre propre script d'ant qui va vérifier ce que vous voulez et ensuite faire la construction?

Chaque branche et chaque module devraient avoir son propre travail Hudson / Jenkins et avec le plug-in de modèle, vous copiez facilement un travail pour être le modèle d'un autre travail. Donc, ce n'est pas si difficile de configurer toutes les constructions dont vous avez besoin.


3 commentaires

Je comprends le but de Hudson. La seule raison pour laquelle je veux que cela soit d'avoir Hudson effectue une seule version pour une libération que l'utilisateur spécifie pour qu'un plugin que nous utilisons (Sonar) puisse être déclenché sans avoir à l'ajouter dans chaque POM et de l'attacher à une certaine phase. Nous faisons nos versions manuellement pour que nous ne voulions pas que Hudson gère cela. Cependant, nous souhaitons des rapports Sonar sur nos versions, ce cas d'utilisation.


Sonar fonctionne bien avec des constructions périodiques, ce sont les versions que nous devions nous occuper de manière spéciale.


Il y a de nombreuses raisons pour lesquelles vous pourriez avoir besoin de cela, c'est pourquoi la section "Construire des déclencheurs" dans la configuration de travail vous permet de décocher "Sondage SCM".



2
votes

Vous pouvez le faire, mais vous ne pouvez pas avoir Jenkins gérer SVN pour vous. Créez une version paramétrée, avec vos chaînes, puis dans l'étape d'exécution, effectuez un SVN CO $ {paramètre_you_selected} plus que vos étapes de construction sont (appelez les scripts de fourmis, les maquillages, les rakefiles, etc.)


0 commentaires

11
votes

Oui, vous pouvez. Mais vous ne pouvez pas utiliser Jenkins / Hudson surveiller le SVN pour des changements. Même avec des paramètres en place, cela n'a pas fonctionné pour moi correctement. Mais si vous surveillez le SVN à partir d'un travail qui n'a pas l'URL de référentiel paramétré, avez-vous déclencher un travail en aval qui passe à l'ensemble de l'URL du référentiel en tant que paramètre, puis d'utiliser le travail en aval d'utiliser le paramètre URL du référentiel, puis il semble fonctionner. .

C'est ce que nous faisons pour notre construction. Nous avons un travail capable de créer le produit de SVN, en fonction de l'URL du référentiel que vous commencez au travail. Ensuite, nous avons un certain nombre d'emplois déclencheurs qui surveillent certaines branches; Lorsqu'un changement est noté, le démarrage du travail de construction et passez leur URL à elle.


2 commentaires

Tout comme une addition, vous devez utiliser le format $ XXX et non% xx% de format pour vous reporter à votre paramètre de version (où XXX est votre chemin SVN).


Cela a travaillé pour moi, me permettant de choisir la branche de tirer de la construction d'une construire. J'utilise Jenkins 1.575 avec SubversionPlugin 2.4.2. J'ai un travail amont qui a le moniteur SCM, le aval est déclenché par le succès en amont. Notez que lors de la définition de la variable dans les paramètres SCM, il se plaingera que chemin.to.svn / YourEpo / $ repo_path n'existe pas, mais il va toujours vérifier et construire correctement.



2
votes

Je suppose que j'aurais dû spécifier mon cas d'utilisation.

Je comprends le but de Hudson. La seule raison pour laquelle je veux que cela soit d'avoir Hudson effectue une seule version pour une libération que l'utilisateur spécifie pour qu'un plugin que nous utilisions (sonar) puisse être déclenché sans avoir à l'ajouter dans chaque POM et de l'attacher à chaque phase. Nous faisons nos versions manuellement pour que nous ne voulions pas que Hudson gère cela. Cependant, nous souhaitons des rapports de sonar sur nos versions, donc ce cas d'utilisation.

Cependant, cela s'est effectivement avéré plus facile que prévu. I Simple a fait une construction paramétrée et mettez $ {paramètre} dans l'URL du référentiel SVN. Maintenant, Jenkins m'a donné une erreur disant à dire que c'est une URL invalide, mais en fait la construction fonctionne comme je l'attendais. Je suis content que je l'ai essayé malgré l'avertissement d'erreur.


1 commentaires

J'utilise Hudson, mais je pense que cela devrait également travailler avec Jenkins. J'utilise l'URL de référentiel dans le format suivant svn.apache.org/ Repos / asf / Hadoop / Common / Trunk @ $ Apacherevnumbe R Apacherevnumber est un paramètre que je définis à l'aide de "Cette version est paramétrée".



1
votes

Oui, vous pouvez. Vérifiez Construire une révision SVN spécifique avec Hudson . Dans ce cas, il suffit de paramétrer le suffixe de l'URL. Dans votre cas, vous avez besoin de 2 paramètres pour "com.work.package" et "Project-4.0.0.Release".

espérons que cela aide!


0 commentaires

3
votes

Oui, vous pouvez, j'ai eu le même problème, mais l'a changé à $ variable et semblait travailler que vous devez inclure un "". dans le répertoire du module local. Il m'a fallu beaucoup de temps pour la découvrir.


0 commentaires