Выходные артефакты TeamCity, не опубликованные в папке IIS7 - PullRequest
0 голосов
/ 01 февраля 2011

Я пытаюсь настроить TeamCity для создания и развертывания приложения ASP.NET MVC.

У меня успешно запущена установка на других серверах с использованием TeamCity 4.5, но на новом сервере запущена TeamCity 6, и у меня возникают проблемы с его настройкой.

TeamCity удается получитьфайлы из системы управления версиями, а проект (Visual Studio Solution 2008, для которого установлено значение «Сборка») создает и выводит необходимые файлы, как и ожидалось.Кажется, проблема связана с моими путями артефактов, поскольку выходные файлы не копируются в папку веб-сайта.

Мое решение состоит из дюжины проектов, из которых проект "Web" является интересным в данном случае.Каталог извлечения сборки: C: \ TeamCity \ buildAgent \ work \ 7da320cebf0ee541, а проект "Web" находится в C: \ TeamCity \ buildAgent \ work \ 7da320cebf0ee541 \ Web

Я настроил сборкуКонфигурация со следующими путями артефактов (относительно каталога извлечения к папке, содержащей сайт):

Web/bin=>../../../../inetpub/wwwroot/staging/bin
Web/Content=>../../../../inetpub/wwwroot/staging/Content
Web/Views=>../../../../inetpub/wwwroot/staging/Views
Web/Media=>../../../../inetpub/wwwroot/staging/Media
Web/*.aspx=>../../../../inetpub/wwwroot/staging
Web/*.asax=>../../../../inetpub/wwwroot/staging

(на всякий случай я пробовал больше ../, но это не имело значения)).

Это вывод, который я получаю из журнала

[19:35:29]: Публикация артефактов (1с) [19:35:29]: [Публикация артефактов] Пути для публикации: [Web / bin => ../../../../ inetpub / wwwroot / staging / bin, Web / Content => ../../../../ inetpub /wwwroot / staging / Content, Web / obj => ../../../../ inetpub / wwwroot / staging / obj, Web / Views => ../../../../ inetpub /wwwroot / staging / Views, Web / Media => ../../../../ inetpub / wwwroot / staging / Media, Web / .aspx => ../../../../inetpub/wwwroot/staging, Web / .asax => ../../../../ inetpub / wwwroot / staging, teamcity-info.xml] [19:35:30]: [Издательские артефакты] Sконечные файлы [19:35:32]: Сборка завершена

Журналы с некоторых других серверов, работающих под управлением TeamCity 4.5, используют другой формат, со строкой для каждого из опубликованных артефактов.не уверен, что это уместно или только из-за другого формата журналирования.

Кажется, все работает, но файлы не помещаются в папку моего сайта после сборки, я что-то здесь упустил?Любая помощь будет высоко ценится:)

Ответы [ 3 ]

1 голос
/ 02 февраля 2011

Начиная с 6.0, TeamCity не позволяет публиковать артефакты за пределами каталога артефактов сервера (по соображениям безопасности).Я думаю, что это ваш случай.

В журналах сервера (TeamCity / logs / teamcity-server.log) должно появиться соответствующее предупреждение, начинающееся с "Попытка публикации артефакта вне каталога артефактов сборки".

Если вы не хотите публиковать файлы в каком-то определенном месте, вам, вероятно, следует создать отдельный шаг сборки, который бы отправлял файлы по FTP или что-то в нужное место.

Вы также можете проголосовать за http://youtrack.jetbrains.net/issue/TW-1558

1 голос
/ 28 июля 2011

Почему бы не взглянуть на Albacorebuild.Я использую его для контроля процесса сборки, запуска тестов, создания пакетов ZIP и NuGet.Больше информации и примеров здесь: http://daniel.wertheim.se/2011/07/14/continuous-integration-using-teamcity-rake-albacore-github-and-nunit-for-net-%E2%80%93-part-3/

1 голос
/ 01 февраля 2011

Я всегда использовал сценарии сборки для обработки такого рода процессов, так как вы используете TC6, вы должны иметь возможность добавить второй шаг сборки после построителя решений VS.NET, который выполняет копирование / перемещение.MSBuild, вероятно, будет предпочтительным методом сценариев для этого, но вы можете использовать простой консольный бегун, если вам все, что вам нужно сделать, это скопировать.Используя сценарий, вы сможете использовать абсолютный путь для каталога развертывания, который не должен быть таким же хрупким, как относительные пути.

...