2009-09-02 5 views
3

Nous venons de commencer à utiliser TeamCity en tant que serveur d'intégration continue. Il y a un problème que nous essayons de résoudre maintenant:Mettre le numéro de build actuel de la configuration 'release' dans la configuration 'nightly build'?

Nous avons une configuration 'release', il a des versions de construction comme ceci: 1.0.0. {0} Nous avons aussi une configuration 'nightly build', qui Le numéro de build est: 1.0.0.0. {build.vcs.number.1}

Donc les 2 premiers chiffres sont OK, Major + Minor versions. Troisième est censé être mis en place manuellement aussi bien selon notre processus (rarement cependant). Mais comme vous pouvez le voir, le dernier augmente à chaque 'release'.

La question est: comment puis-je faire en sorte que TC copie le 4ème chiffre actuel (ou la totalité d'entre eux) de 'release' à celui de 'nightly build'?

Répondre

3

Une façon de le faire à 4,5 est de

  1. faire avoir tous les soirs un snap shot dependency sur la libération.
  2. trouver l'ID de construction interne de la version.
  3. utiliser un format de numéro de version dans la nuit qui ressemble à

% dep.releaseid.system.build.number%. {} Build.vcs.number.1

où releaseid est l'identifiant que vous trouvé à l'étape 2. Cela va remplacer l'ensemble de la chose% ...% avec le numéro de build de la version.

Le TeamCity 4.5 Docs pour les propriétés de dépendance explique ceci et vous montre comment trouver l'ID interne.

+0

Merci! Cela semble être la solution! Mais de toute façon, si je définis la dépendance, chaque nuit déclenche la libération. Ce qui n'est absolument pas acceptable. J'ai défini la case à cocher "Ne pas exécuter une nouvelle version s'il y en a une appropriée". N'est-ce pas censé empêcher cela? – arconaut

+0

@arconaut: vous avez raison, il ne devrait pas avoir besoin de faire une version de release juste pour travailler tous les soirs. Utilisent-ils la même racine vcs? Et quelle version de Team City êtes-vous? –

+0

J'utilise TeamCity Professional 4.5.4 (build 9071). Oui, ils utilisent la même racine vcs. Maintenant, il me semble que c'est parce que la publication met à jour les informations d'assemblage (augmente le dernier chiffre) et le renvoie à vcs. Donc, la prochaine fois que la nuit commence, la publication a au moins 1 changement en attente. Existe-t-il un moyen de ne jamais lancer la dépendance d'instantané? Ou encore mieux - obtenir le compteur actuel de la configuration? – arconaut

1

Si vous pouvez le savoir dans votre script de construction, vous pouvez l'envoyer à la ville de l'équipe pendant la construction. Here sont les instructions. Je peux penser à quelques stratégies pour obtenir le numéro de build à partir de la version finale, aucune n'étant élégante. La plus évidente serait de publier un artefact à partir de la version release, qui est essentiellement un fichier texte avec le numéro de build, et récupérez-le dans votre script de build.

Questions connexes