Ответ 1
Мы (команда ASP.NET) используем TeamCity как сервер сборки. Каждый репо имеет файл build.cmd
, похожий на этот. TeamCity просто вызывает этот файл.
Для сборки Mac/Linux существует файл build.sh
.
Я пытаюсь настроить сервер CI для сайта, который я разрабатываю, но я не могу найти информацию о том, как это сделать с новым ASP.NET 5.
Мы (команда ASP.NET) используем TeamCity как сервер сборки. Каждый репо имеет файл build.cmd
, похожий на этот. TeamCity просто вызывает этот файл.
Для сборки Mac/Linux существует файл build.sh
.
Я взял тебя, брат. Мне потребовалось несколько дней, чтобы понять. Эта конфигурация находится на 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, чтобы быть более гибкими.
Некоторые из материалов, которые я прочитал, говорят, что используют новейшую бета-версию 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. Заполните остальные, если необходимо.
Шаг dotnet publish
довольно прост. Убедитесь, что вы предоставили выходной каталог, потому что вы хотите использовать его на последнем этапе. Кроме того, обязательно укажите абсолютный путь с помощью переменной %teamcity.build.workingDir%
из-за этой ошибки. В противном случае он не сможет найти ваш файл web.config
и не закончит публикацию всего сайта. Вам не хватает таких вещей, как web.config и wwwroot!
Наконец, мы приближаемся к Осьминогу. Это было очень сложно для меня. Обратите внимание на ту часть, которая гласит:
%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 файл и продолжайте свою жизнь. Наконец, обратите внимание на дополнительные аргументы командной строки, которые я добавил. Это поможет вам немного. Они не требуются. Удачи.
На данный момент вы можете попробовать использовать плагин TeamCity для проектов .NET Core: https://github.com/JetBrains/teamcity-dotnet-plugin
Пожалуйста, проверьте эти сообщения в блоге;
http://blog.coderinserepeat.com/2015/01/25/building-asp-net-5-projects-in-teamcity/
http://blog.maartenballiauw.be/post/2014/12/19/Building-future-NET-projects-is-quite-pleasant.aspx
Поскольку в мире ASP.NET было много изменений, и меня об этом несколько раз спрашивали, я записал шаг за шагом, руководство по настройке среды CI/CD с использованием TeamCity для .NET Core. Я думаю, что это особенно полезно для новичков.