2010-11-22 34 views
13

Nous passons d'une combinaison de CC/CC.NET à TeamCity.Comment empêcher TeamCity de transformer des liens symboliques en fichiers lors de l'utilisation du mode de paiement serveur avec un serveur Windows et un agent Mac?

Le cœur de notre produit est Windows, mais nous avons un agent Mac.

Nous avons notre mode de vérification VCS réglé sur "Automatiquement sur le serveur". Ce qui signifie que la source sera extraite sur le serveur (Windows), puis copiée sur les agents (y compris l'agent Mac) si nécessaire.

Notre produit utilise le framework BWToolkit pour une partie de son interface utilisateur. Cela signifie que nous stockons le framework dans notre contrôle source.

Le problème est que la copie source du serveur TeamCity vissera les liens symboliques dans le répertoire du framework. Il en résulte que notre produit ne parvient pas à générer (error: BWToolkitFramework/BWToolkitFramework.h: No such file or directory).

Voici comment un ls -l à l'intérieur du répertoire cadre racine regarde ma machine:

total 24 
lrwxr-xr-x 1 myuser admin 35 Nov 22 10:45 BWToolkitFramework -> Versions/Current/BWToolkitFramework 
lrwxr-xr-x 1 myuser admin 24 Nov 22 10:45 Headers -> Versions/Current/Headers 
lrwxr-xr-x 1 myuser admin 26 Nov 22 10:45 Resources -> Versions/Current/Resources 
drwxr-xr-x 5 myuser admin 170 Nov 22 10:45 Versions 

Et voilà comment il regarde la machine de construction:

total 24 
-rwxrwxr-- 1 root admin 40 Nov 19 16:21 BWToolkitFramework 
-rwxrwxr-- 1 root admin 29 Nov 19 16:21 Headers 
-rwxrwxr-- 1 root admin 31 Nov 19 16:21 Resources 
drwxrwxr-- 4 root admin 136 Nov 19 16:21 Versions 

En outre au lieu d'apparaître en tant que liens sur la machine de construction (petite superposition de flèche sur l'icône), ils apparaissent sous forme de fichiers avec l'icône exécutable unix. Si vous ouvrez un de ces fichiers qui devraient être un lien que vous obtenez quelque chose de semblable à ce qui suit (ce à partir du lien BWToolkitFramework):

link Versions/Current/BWToolkitFramework 

Cela semble être un problème avec l'option de paiement du serveur dans TeamCity parce que CruiseControl est fonctionnant sur la même machine faisant un contrôle SVN direct et je n'ai eu aucun problème.

Y a-t-il un moyen de résoudre ce problème autre que de modifier notre configuration TeamCity pour utiliser l'option SVN checkout on client?

Répondre

13

J'ai déposé ce numéro en tant que TW-14499 dans l'espoir d'obtenir une réponse/un correctif officiel.

Il a simplement été marqué comme un doublon de TW-5953 Symlinks are not supported for SVN server-side checkout, il s'agit donc d'un problème connu qui a été ouvert il y a environ 2 ans. Si quelqu'un d'autre s'y heurte, votez pour/commentez la question dans l'espoir que cela sera réglé.

+1

Nous avons certainement besoin de plus de votes là-bas ... –

4

similaires à celui-ci (juste est git): http://youtrack.jetbrains.com/issue/TW-12648

Dans mon cas, il a travaillé avec SVN lors de la vérification sur place un agent du serveur. Vous pouvez le modifier dans la configuration de la construction dans les paramètres de contrôle de version.

2

Voici mon scénario:

  • Je dois utiliser la caisse côté serveur
  • J'utilise Git

Depuis TeamCity n'a pas ce correctif en place, j'ai créé une commande script de ligne à exécuter juste après la mise à jour de mes sources avec l'exemple suivant:

rm /Git/MyLibrary/External/FacebookSDK/FacebookSDK.framework/Headers 
rm /Git/MyLibrary/External/FacebookSDK/FacebookSDK.framework/Resources 

ln -s /Git/MyLibrary/External/FacebookSDK/FacebookSDK.framework/Versions/A/Headers  /Git/MyLibrary/External/FacebookSDK/FacebookSDK.framework/Headers 
ln -s /Git/MyLibrary/External/FacebookSDK/FacebookSDK.framework/Versions/A/Resources  /Git/MyLibrary/External/FacebookSDK/FacebookSDK.framework/Resources 

Ce script recrée les liens symboliques sur mon serveur mac.

6

Apparemment, jgit a corrigé cela à partir du 04/12/2014, donc TeamCity va corriger cela finalement. La solution consiste à indiquer à TC d'utiliser l'agent côté client pour les extractions git. enter image description here