web-dev-qa-db-fra.com

TeamCity partage le numéro de build entre plusieurs configurations de build

je cherche un moyen de partager le numéro de build entre plusieurs configurations de build. Le but est d'avoir un compteur global quelconque et toutes les configurations de build l'incrémenteraient et l'utiliseraient dans son propre numéro de build.

42
Eatdoku

Si l'une des configurations de build A a une dépendance d'instantané ou d'artefact sur la configuration de build B, vous pouvez obtenir le numéro de build de B dans A à l'aide du paramètre de dépendance:

%dep.<B id>.build.number%

Où <B id> est l'id de la configuration de construction B (voir le paramètre buildTypeId dans l'URL).

52
Pavel Sher

Cette solution fonctionne pour moi:

  1. Créer une configuration de construction. Disons "GenerateBuildNumber", ne joignez pas de modèle. Ne spécifiez aucune étape de génération. Cliquez sur Enregistrer.
  2. Modifiez la configuration de votre projet. Allez dans "Build Configuration Settings-> Dependencies". Cliquez sur "Ajouter une nouvelle dépendance d'instantané".
  3. Sélectionnez "GenerateBuildNumber" précédemment créé dans la section "Dépend de". Décochez l'option "Ne lancez pas de nouvelle version s'il y en a une appropriée". Cliquez sur Enregistrer.
  4. Allez dans "Paramètres généraux", désactivez "Format du numéro de build:", cliquez sur le bouton à gauche avec 3 lignes. Sélectionnez "% dep.YouProjName_GenerateBuildNumber.env.BUILD_NUMBER%". Cliquez sur Enregistrer.

Exécutez la génération de votre projet. Tout d'abord, il doit démarrer le projet "GenerateBuildNumber" puis votre projet avec un numéro généré. Effectuez les étapes 2 à 4 pour chaque projet pour lequel vous souhaitez avoir un numéro généré unique. Profit!

33
Hollywood

Je pense que le plugin AutoIncrementer devrait faire l'affaire. Il vous permet de partager les numéros de build entre les configurations. http://confluence.jetbrains.com/display/TW/Autoincrementer

11
Dean Ward

Vous pouvez faire en sorte qu'un projet Team City utilise le numéro de build d'un autre projet en procédant comme suit:

  1. Ouvrez les propriétés de la configuration du projet TeamCity pour la configuration dans laquelle vous souhaitez importer le numéro de build.

  2. Accédez à la section "Dépendances".

  3. Ajoutez une "dépendance d'artefact" et choisissez la configuration de projet à partir de laquelle vous souhaitez obtenir le numéro de build en tant que projet dépendant.

  4. Dans le champ "Get artefacts from", choisissez "Build with specified build number"

  5. À côté de la zone de saisie "Numéro de build" se trouve un bouton sur lequel vous pouvez cliquer pour choisir où obtenir le numéro de build. Dans cette liste, vous devriez voir une option comme "dep.bt2.build.number" (le nombre peut ne pas être 2 pour votre configuration).

4
bikeman868

AutoIncrementer est bon, mais maintenant il y a un nouveau plugin qui a essayé de faire ce que certains utilisateurs ont dit qu'ils ne pouvaient pas faire avec AutoIncrementer:

http://Java.nicholaswilliams.net/TeamCityPlugins/introduction#SharedBuildNumber

Il a une interface utilisateur lorsque vous l'ajoutez à TeamCity, et peut également gérer l'utilisation des dates dans le format que vous souhaitez utiliser.

3
John