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. Также вы можете использовать правила оформления заказа, чтобы сформировать любую структуру каталогов, которая вам нужна.