Как настроить сборку TeamCity для проекта ASP.NET 5

Я пытаюсь настроить сервер CI для сайта, который я разрабатываю, но я не могу найти информацию о том, как это сделать с новым ASP.NET 5.

Ответы

Ответ 1

Мы (команда ASP.NET) используем TeamCity как сервер сборки. Каждый репо имеет файл build.cmd, похожий на этот. TeamCity просто вызывает этот файл.

Для сборки Mac/Linux существует файл build.sh.

Ответ 2

Я взял тебя, брат. Мне потребовалось несколько дней, чтобы понять. Эта конфигурация находится на TeamCity v10 для проекта ASP.NET Core 1.0 RC2/preview2. В качестве бонуса я включаю в себя шаг, который он подталкивает к Octopus Deploy. Вам нужно будет установить плагин dotnet teamcity и новейший плагин Octopus Deploy с функциями Push. Вот обзор шагов сборки:

Общие сведения о шагах

Во-первых, не пытайтесь использовать dotnet restore для восстановления пакетов. Это не сработает, если у вас есть внутренние пакеты nuget, которые не скомпилированы как .Net Core. Это потребовалось навсегда, чтобы понять. Я бы проигнорировал попытку использовать dotnet restore, пока люди не превратили все в .Net Core или Microsoft, исправляя dotnet.exe, чтобы быть более гибкими.

Шаг сборки 1/3

Некоторые из материалов, которые я прочитал, говорят, что используют новейшую бета-версию NuGet, 3.5. Когда я попробовал это, я получил бы следующую ошибку.

[14:30:09] [restore] Запуск NuGet.exe 3.5.0.1737 из D:\buildAgent\tools\NuGet.CommandLine.3.5.0-rc1\tools\NuGet.exe

[14:30:10] [restore] Не удалось загрузить тип 'NuGet.CommandAttribute' из сборки 'NuGet, Version = 3.5.0.1737, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'.

Я не знаю, что это значит, и мне все равно. Теперь используйте 3.4.4. Заполните остальные, если необходимо.

Шаг 2/3

Шаг dotnet publish довольно прост. Убедитесь, что вы предоставили выходной каталог, потому что вы хотите использовать его на последнем этапе. Кроме того, обязательно укажите абсолютный путь с помощью переменной %teamcity.build.workingDir% из-за этой ошибки. В противном случае он не сможет найти ваш файл web.config и не закончит публикацию всего сайта. Вам не хватает таких вещей, как web.config и wwwroot! Шаг 3/3

Наконец, мы приближаемся к Осьминогу. Это было очень сложно для меня. Обратите внимание на ту часть, которая гласит: %teamcity.build.workingDir%/published-app/**/* => OrderReviewBoard.1.0.0.zip

ЕСЛИ ЛЮБАЯ ЧАСТЬ ЭТО НЕВЕРОЯТНА, ВАШ ШАГ НЕ БУДЕТ НЕ ВЫПОЛНЯТЬ СЕБЯ!!! Недействительный, я имею в виду, может быть, вы задали переменную окружения teamcity (например, %build.number%, которые они показывают во всех примеры) в этом zip-имени, которое неправильно разрешено. Или вы указываете несуществующий путь. Или любое количество вещей, вы увидите сообщение об ошибке "[Octopus Deploy] Пожалуйста, укажите пакет для нажатия". Это означает, что он никогда не генерировался, потому что этот оператор не удался. Я понимаю, что вы хотите, чтобы там был номер с добавлением автоматического увеличения. Я оставлю это вам, чтобы понять, как это сделать.

Не путайте все запущенное здесь. Octopus пытается объяснить это на своем сайте, но он скрыт здесь. Существует octo pack и octo push. Новая версия octo pack иссякает из поля зрения, основываясь на любом заявлении, которое вы ввели в поле "Пути пакетов". Не уходите в сторону, чтобы создать пакет nuspec или пытаться использовать dotnet pack. Это мертвые цели для наших целей. Создайте ZIP файл и продолжайте свою жизнь. Наконец, обратите внимание на дополнительные аргументы командной строки, которые я добавил. Это поможет вам немного. Они не требуются. Удачи.