Артефакты TeamCity; Исключить отдельные файлы
У меня есть конфигурация сборки TeamCity, которая включает следующие публикации артефактов:
Source\Builder\bin\Release\*.dll=>release
Это прекрасно работает, однако я хочу исключить одну DLL (их довольно много) и прочитал, что для этого вы можете использовать операторы + и -. Что-то вроде:
+: Source\Builder\bin\Release\*.dll=>release
-: Source\Builder\bin\Release\Builder.*
Как только я их добавлю, артефакты не публикуются, и я получаю следующую ошибку в журнале сборки (похоже, что она подсчитывает + как часть пути):
[Publishing artifacts] Collecting files to publish [+:Source\Builder\bin\Release\*.dll=>release]
[Publishing artifacts] Artifacts path +:Source/Builder/bin/Release/*.dll not found
Я использую версию 7.1.1, любые идеи (я не уверен, действительно ли эти операторы действительны). Я видел решение с MSBuild, но я удивлен, что эта функция недоступна.
Спасибо заранее.
Ответы
Ответ 1
Я не верю, что ты можешь.
Однако, если вы используете артефакты в другой конфигурации сборки как зависимость от артефакта, вы можете исключить там определенный файл.
При настройке зависимостей вы можете указать отрицательный оператор следующим образом:
+:release/**=>Dependencies/SomeProject
-:release/SomeBinary.dll
Это ужасный взлом, но один из способов заставить его работать - это настроить новую конфигурацию сборки, которая получает зависимости как зависимость от артефакта, за исключением одного двоичного файла, а затем публикует свои собственные артефакты.
Как и в, создайте новую конфигурацию сборки и опубликуйте:
Dependencies/SomeProject=>release
Затем укажите артефакты из этой конфигурации сборки вместо другой.
Ответ 2
Немного поздно для вечеринки, но по-прежнему нет исправления...
В итоге я добавил в проект последний шаг сборки. Это командная строкa > пользовательская script. Затем я использовал эти команды для удаления файлов, которые мне не нужны в артефактах. Это выполняется непосредственно перед сборкой артефактов.
del /S /Q "src\apps\*.xml"
del /S /Q "src\apps\*.pdb"
Объяснение для del
команда
/S Delete from all Subfolders (DELTREE)
/Q Quiet mode, do not give a Yes/No Prompt before deleting
* Match any characters
Ответ 3
Наши текущие варианты: голосовать за этот запрос функции на
http://youtrack.jetbrains.com/issue/TW-5244 и вернуться к обходным методам.
Пути артефакта TeamCity объединяют папки подсказывают, что одну и ту же целевую папку можно повторно использовать для нескольких шаблонов путей.
Документы TeamCity также указывают, что
TeamCity создаст каталоги, начиная с первого появления шаблон в шаблоне.
Таким образом, во многих случаях возможно обратная проблема исключения для множественных включений.
Например, вместо того, чтобы скрывать, как исключить -:**/.svn
из моих шаблонов, я смог просто отфильтровать их по расширению:
templates/**/*.vm => templates
templates/**/*.xsl => templates