Как остановить TeamCity от преобразования символических ссылок в файлы при использовании режима проверки сервера с сервером Windows и агентом Mac? - PullRequest
15 голосов
/ 22 ноября 2010

Мы переходим от комбинации CC / CC.NET к TeamCity.

Основой нашего продукта является Windows, но у нас есть агент Mac.

У нас есть проверка VCSрежим установлен на «Автоматически на сервере».Это означает, что источник будет извлечен на сервере (Windows) и затем скопирован агентам (включая агент Mac) по мере необходимости.

Наш продукт использует платформу BWToolkit для части своего пользовательского интерфейса.Это означает, что мы храним фреймворк в нашем контроле исходных кодов.

Проблема заключается в том, что исходная копия с сервера TeamCity испортила символические ссылки в каталоге фреймворка.Это приводит к тому, что наш продукт не может быть собран (error: BWToolkitFramework/BWToolkitFramework.h: No such file or directory).

Вот как ls -l из корневого каталога фреймворка выглядит на моем компьютере:

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

И этокак это выглядит на компьютере сборки:

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

Кроме того, вместо того, чтобы отображаться как ссылки на компьютере сборки (небольшая стрелка на значке) они отображаются в виде файлов со значком исполняемого файла Unix.Если вы откроете один из этих файлов, который должен быть ссылкой, вы получите что-то похожее на следующее (это из ссылки BWToolkitFramework):

link Versions/Current/BWToolkitFramework

Это похоже на проблему с опцией проверки сервера в TeamCity, потому чтоCruiseControl работает на той же машине, где выполняется прямая проверка SVN, и у меня не возникло проблем.

Есть ли способ исправить это, кроме изменения конфигурации TeamCity для использования проверки SVN на клиенте?

Ответы [ 4 ]

14 голосов
/ 22 ноября 2010

Я подал эту проблему как TW-14499 в надежде на официальный ответ / исправление.

Он был просто помечен как дубликат TW-5953.для проверки на стороне сервера SVN , так что это известная проблема, которая была открыта около 2 лет.Если кто-то еще столкнется с этим, пожалуйста, проголосуйте за / прокомментируйте проблему в надежде, что она будет исправлена.

6 голосов
/ 12 мая 2015

Судя по всему, jgit исправил это с 4/4/2014, поэтому TeamCity исправит это в конце концов. Обходной путь должен сказать TC, чтобы использовать клиентский агент для проверок git. enter image description here

4 голосов
/ 24 февраля 2013

Похоже на это (только это мерзавец): http://youtrack.jetbrains.com/issue/TW-12648

В моем случае это работало с SVN при проверке агента, а не сервера. Вы можете изменить это в Конфигурации сборки в Настройках контроля версий.

2 голосов
/ 16 июля 2014

Вот мой сценарий:

  • Мне нужно использовать проверку на стороне сервера
  • Я использую Git

Поскольку TeamCity не имеет этогоИсправив, я создал сценарий командной строки, который будет запускаться сразу после обновления моих источников в следующем примере:

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

Этот сценарий воссоздает символические ссылки на моем Mac-сервере.

...