web-dev-qa-db-fra.com

Utilisation des commandes git dans une étape de construction TeamCity

L'un de mes projets de build TeamCity v7.0 repose sur l'utilisation d'un diff entre la branche de développement actuelle et la branche principale pour déterminer ce qui doit être exécuté. J'ai écrit un petit script qui utilise quelque chose comme:

git diff Origin/master..Origin/QA --name-only --diff-filter=AM | DoSomethingWithThoseFiles

Malheureusement, le journal de génération indique que git diff ne fonctionne pas. Quand je vais dans le répertoire buildAgent/work de ce projet, je vois qu'il n'y a pas de .git dossier, il ne peut donc pas effectuer les opérations git requises.

J'ai mis teamcity.git.use.local.mirrors=true dans le buildAgent.properties fichier comme mentionné à TW-1587 , mais cela ne semble d'aucune façon aider.

Puis-je faire quelque chose pour changer la liste des fichiers entre deux branches dans un script pour mon étape de construction?

43
Jake Stevenson

Essayez de changer le mode d'extraction VCS en "Toujours extraire les fichiers sur l'agent" comme indiqué ici . Cela devrait donner au script de build un accès au dossier .git.

51
Mike Two

La réponse de @Mike Two est correcte, il faut configurer la racine VCS pour utiliser le mode Checkout automatiquement sur l'agent -pas- sur le serveur. Les documents TC ne mentionnent pas que ce paramètre requis est masqué par défaut comme "avancé". Voici donc une image de ce qu'il faut rechercher.

Advanced Settings

Pour info, mon erreur d'étape spécifique de la solution VS2013 provenait de MSBuild, comme ci-dessous. J'utilise le dernier TeamCity Enterprise 9.0 EAP (build 31963). [PreBuildEvent] Exec [14:21:55][Exec] git rev-parse --short=9 HEAD > "C:\TeamCity\buildAgent\work\e5e910561e800525\MYPROJECT\bin\Debug\version.txt" [14:21:55][Exec] fatal: Not a git repository (or any of the parent directories): .git [14:21:55][Exec] C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1131, 5): error MSB3073: The command "git rev-parse --short=9 HEAD > "C:\TeamCity\buildAgent\work\e5e910561e800525\Higgens\bin\Debug\version.txt"" exited with code 128. [14:21:55]

//Éditer; Je ne savais pas comment ajouter cela à un commentaire.

7
AnneTheAgile