Подтвердить что ты не робот

Артефакты 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, но я удивлен, что эта функция недоступна.

Спасибо заранее.

4b9b3361

Ответ 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