Team City 7.0 - Как вы настраиваете сборки в зависимости от общей скомпилированной библиотеки?

Это моя первая попытка настроить конфигурацию сборки в Team City.

В Subversion все сторонние двоичные файлы хранятся в отдельном репозитории, который называется "Приложения", поскольку он является общим.

Так что на моей локальной машине путь

D:\Dev\SolutionRoot\WebProjectRoot

который имеет ссылки на двоичные файлы в

D:\Dev\Applications

В Team City у меня есть две конфигурации сборки (одна для сборки проекта (.sln) и одна для проверки сторонних двоичных файлов).

Для конфигурации сборки веб-проекта я добавил зависимость артефакта, которая зависит от "Получить сторонние двоичные файлы", получает артефакты от "Последняя успешная сборка" и правила артефакта:

/*/.=>Applications

Сборка не удается разрешить зависимости артефакта.

Build 'Furniture :: Build' #528 
Started 'Thu Aug 09 15:13:50 BST 2012' on 'machine name' by 'Ryan'
Finished 'Thu Aug 09 15:14:09 BST 2012' with status 'FAILURE Artifacts resolving failed'
TeamCity URL http://localhost:8111/viewLog.html?buildId=14&buildTypeId=bt2 
TeamCity server version is 7.1 (build 23907)

[15:13:50]: bt2 (18s)
[15:13:50]: Checking for changes (running for 4m:57s)
[15:13:50]: Publishing internal artifacts
[15:13:50]:  [Publishing internal artifacts] Sending build.start.properties.gz file
[15:13:50]: Clearing temporary directory: C:\TeamCity\buildAgent\temp\buildTmp
[15:13:50]: Clean build enabled: removing old files from C:\TeamCity\buildAgent\work\a3a48aff6a8b3347
[15:13:50]: Checkout directory: C:\TeamCity\buildAgent\work\a3a48aff6a8b3347
[15:13:50]: Updating sources: agent side checkout (18s)
[15:13:50]:  [Updating sources] Will perform clean checkout. Reason: Checkout directory is empty or doesn't exist (running for 4m:56s)
[15:13:50]:  [Updating sources] Cleaning C:\TeamCity\buildAgent\work\a3a48aff6a8b3347
[15:13:50]:  [Updating sources] VCS Root: Furniture (18s)
[15:13:50]:      [VCS Root: Furniture] revision: 528_2012/08/09 12:00:34 +0100
[15:14:09]: Resolving artifact dependencies
[15:14:09]:  [Resolving artifact dependencies] Failed to resolve artifact dependency <Furniture :: Get Third Party Binaries, build #2 [id 10]>: No files matched for patterns "/*/.=>Applications" from <Furniture :: Get Third Party Binaries, build #2 [id 10]> (jetbrains.buildServer.artifacts.ResolvingFailedException)
[15:14:09]:  [Resolving artifact dependencies] Failed to resolve 1 of 1 artifact dependencies
[15:14:09]: Failed to resolve 1 of 1 artifact dependencies
[15:14:09]: Publishing internal artifacts
[15:14:09]:  [Publishing internal artifacts] Sending build.finish.properties.gz file
[15:14:09]: Build failed to start. Artifacts will not be published for this build
[15:14:09]: Build finished

Правильно ли я это сделал?

1 ответ

Решение

Я вижу несколько проблем в вашей настройке.

Прежде всего, чтобы ввести зависимость от артефактов, вы должны опубликовать эти артефакты в исходной конфигурации (в вашем случае - config, которая извлекает сторонние библиотеки).

Тогда вам не следует использовать зависимость от артефактов, чтобы просто получить смс. TeamCity поддерживает присоединение нескольких корней VCS к конфигурации.

Так что в вашем случае у вас может быть одна конфигурация с двумя прикрепленными корнями: root с вашими исходниками, root с libs. Также вы можете использовать правила оформления заказа, чтобы сформировать любую структуру каталогов, которая вам нужна.

Другие вопросы по тегам