web-dev-qa-db-fra.com

Comment puis-je créer un tag git dans TeamCity?

Je veux fournir une balise git au serveur TeamCity pour le construire. Je passe la balise (c'est-à-dire release_1.1) comme paramètre du travail. Ainsi, à l'intérieur du travail, la balise est disponible sous la forme %tag%, mais sous le Version Control Settings Je ne vois aucun moyen d'utiliser ce paramètre pour que le serveur puisse extraire cette balise. Existe-t-il un moyen d'utiliser ce paramètre dans les paramètres pour extraire la balise?

41
js3dev
  1. Allez dans Modifier les paramètres de configuration -> Paramètres de contrôle de version
  2. Pour toutes vos racines VCS pour cette configuration de build, cliquez sur Modifier, puis:

    1. mettre '+: refs/tags/*' dans la zone de texte de spécification de branche
    2. check Utiliser des balises comme branches

Ensuite, vous pourrez choisir un tag lorsque vous appuyez sur le bouton '...' à côté de run.

59
Michel Samia

J'ai réussi à faire fonctionner les éléments suivants:

Dans la configuration de construction, sous "Paramètres de construction":

Définissez un paramètre de configuration:

  • Nom: TagToBuild
  • Gentil: Configuration parameter
  • Valeur:
  • Spec:
    • Étiquette: Tag to build
    • La description: This should be the full path to the tag, i.e. refs/tags/0.5.5
    • Affichage: Prompt
    • Tapez: Text

Notez que le champ "valeur" a été intentionnellement laissé vide.

Ensuite, dans la racine VCS:

  • Nom de la filiale: %TagToBuild%

Lorsque j'exécute la génération, je suis ensuite invité à fournir un nom de branche/tag: Configuration Parameters

Saisie d'une valeur telle que refs/tags/0.5.0 se traduit par une version sympa, avec le nom de la branche répertorié dans les résultats: Successful builds

Si vous essayez d'aider l'utilisateur d'une manière au-delà de la description, cela semble échouer. Vous ne pouvez donc pas effectuer l'une des opérations suivantes:

  1. Dans le paramètre de configuration, définissez la "valeur" sur refs/tags/ et demandez à l'utilisateur d'ajouter le nom de la balise.
  2. Dans la racine VCS, définissez le "Nom de la branche" sur refs/tags/%TagToBuild%.

Dans les deux cas, sur notre instance légèrement ancienne (7.1) de Team City, j'ai eu l'erreur:

Échec de la collecte des modifications, erreur: l'argument 2 du paramètre @NotNull de jetbrains/buildServer/buildTriggers/vcs/VcsRootChangesLoader.loadChanges ne doit pas être nul

18
Zhaph - Ben Duguid

Je ne l'ai pas fait avec des balises, mais je l'ai fait avec des branches. Je dis à TeamCity de construire toutes les branches en spécifiant qu'il doit construire +:refs/heads/*. Maintenant, chaque fois que je pousse une branche, TeamCity la construit. Ensuite, dans la version, j'utilise git branch Et cherche la ligne qui commence par un *. J'incorpore ce nom de branche dans un endroit pratique (AssemblyInfo.cs pour .NET, package.json pour le nœud.) Voir http://confluence.jetbrains.com/display/TCD8/Working+with+Feature+Branches

5
robrich

Vous devez spécifier le format de balise dans refs/tags/${tagName}.

Donc, le vôtre serait refs/tags/release_1.1.

4
Welsh