Удалить структуру каталогов в артефактах Teamcity
Я использую Teamcity для создания разных пакетов и хочу сохранить эти Пакеты как Артефакты. Мой путь артефакта в TeamCity следующий:
%system.teamcity.build.workingDir%\**\Release**/*.wsp => Solution
Теперь TeamCity собирает все WSP файлы в любом каталоге релизов после правильной сборки. Но он сохраняется, включая все подкаталоги, такие как:
![How the Files are being offered]()
Мне нужен только файл .wsp непосредственно под "решением" без дерева каталогов.
Ответы
Ответ 1
Из документов TeamCity:
wildcard - публиковать файлы, соответствующие шаблону шаблонов Ant -like ( "и Подстановочные знаки" * "поддерживаются только). Подстановочный знак должен представлять собой путь к каталогу сборки сборки. Файлы будут опубликовано, сохраняя структуру каталогов, соответствующих wildcard (каталоги, соответствующие тексту" статический", не будут созданы). То есть TeamCity создаст каталоги, начиная с первого появление шаблона в шаблоне.
http://confluence.jetbrains.net/display/TCD65/Configuring+General+Settings#ConfiguringGeneralSettings-artifactPaths
В вашей сборке script (или дополнительном финальном этапе сборки) вам придется скопировать необходимые файлы в одну папку и опубликовать эту папку как Artifacts
Ответ 2
Вместо того, чтобы копировать как @manojlds, вы можете что-то добиться, изменив OutputPath в файле .csproj или загрузив атрибут OutDir при создании .sln(если вы есть). Будьте предупреждены, что ни один из этих подходов не идеален - например, TeamBuild (сервер CI в Visual Studio ALM Tooling) перенаправляет все в один каталог, что может вызвать полный беспорядок и работает только в самых простых случаях.
Ответ 3
У меня была эта проблема, когда я хотел собрать различные файлы установки из подкаталогов. Добавление бегуна PowerShell в качестве шага сборки довольно сильно и прекрасно решает...
get-childitem -Recurse -Include *.wsp | Move-Item -destination .
Это приведет их к корню до того, как TeamCity посмотрит на артефакты, где основные пути артефакта, такие как *.wsp
, могут поднять его для окончательного вывода.