Настройка непрерывной интеграции и непрерывного развертывания для приложений Microsoft
В моей организации более 200 настольных и веб-приложений Microsoft. Я пытаюсь настроить непрерывную интеграцию и непрерывное развертывание для этих приложений (я уже делал для приложений Java). У нас уже есть следующие инструменты на предприятиях Github, Jenkins, Nexus, XL-Deploy и XL-Release. Мы также разработали фреймворк в Groovy, который вызывается Jenkins и дозирует все автоматические создания заданий в Jenkins и помещает сгенерированный артефакт в нексус.
Я хочу настроить однородное решение и хочу использовать тот же набор инструментов для Microsoft.
Я просматриваю документацию Nexus и не нашел способа сохранить сгенерированный артефакт (.exe или MSI). Он поддерживает только пакеты Nuget, и я не уверен, что это и как их использовать?
Я могу создать файл решения проекта, используя msbuild.exe в оболочке выполнения Jenkins, и могу сгенерировать артефакт в форме.exe и MSI.
Теперь у меня есть несколько вопросов:
- Как и где я должен создавать версии и хранить сгенерированный артефакт (.exe и MSI) и как я могу развернуть свои приложения для настольных компьютеров на целевом хосте (как мы все знаем, нам нужно дважды щелкнуть по.exe, чтобы установить его).
- Как мне поступить с веб-приложениями.net?
- Что такое пакет nuget и могу ли я использовать его для развертывания настольных приложений вместо MSI, и нужно ли для этого что-то изменять в своем коде?
PS: я знаю, что TFS - это решение, но мы не можем использовать его в нашей организации из-за ограничения затрат.
2 ответа
Чтобы загрузить не-maven артефакты проекта, такие как zip, msi и т. Д., Вы можете использовать Nexus Artifact Uploader. Чтобы это работало, необходимо создать размещенный репозиторий типа maven, а затем загрузить в него артефакты, заполнив параметры GAV, и получить артефакты на основе параметров GAV.
Для развертывания артефактов в тестовых средах используйте клиентский плагин WinRM для подключения тестовых сред.
Я нахожу решение для этого:
То, что я делаю, я компилирую файл решения, используя командную строку msbuild, и это сгенерирует.exes для меня. После того, как исполняемые файлы сгенерированы, я упаковываю их в MSI с помощью утилиты WIX. как только MSI сгенерирован, я версионирую их, используя команду linux mv и цикл for, я помещаю их в репозиторий Nexus, используя команду maven, передавая параметры GAV.