Изменение сохраненных артефактов в конкретной сборке Jenkins для развертывания - PullRequest
0 голосов
/ 03 июня 2011

У нас есть установка .NET Jenkins, которая создает несколько приложений .NET. Эти приложения включают в себя кучу файлов *.exe и *.exe.config. Прямо сейчас я сохраняю приложение в виде zip-файла, содержащего все файлы * .exe, необходимые библиотеки DLL и *.xml, а также файлы по умолчанию *.exe.config. Значение по умолчанию *.exe.config получает их значение из хранилища Subversion и настраивается для производственной среды.

Файлы *.exe.config содержат имя базы данных, сервер базы данных, имя сервера и т. Д. Они подходят для производственной среды, но не для UAT, QA или тестирования разработчика.

То, что я хотел бы сделать, - это выполнить какое-то задание после сборки, где пользователь может указать конкретную сборку и значения для этих конкретных параметров, которые варьируются от среды к среде. Если бы я получил это, я мог бы запустить задачу Nant или Ant, которая разархивирует zip-файл, разархивирует файл *.exe.config и либо развернет его (моя конечная цель), либо, по крайней мере, заархивирует его и поместит в то место, куда пользователь сможет получить к нему доступ.

Я знаю, что есть параметризованная сборка, и я знаю, что есть пакетные задачи, но мне нужно их сочетание. Это возможно?

1 Ответ

0 голосов
/ 04 июня 2011

Это не так элегантно, но я думаю, что вы можете реализовать то, что вы хотите, в виде отдельной сборки.Вам нужно:

  1. A Параметризованная сборка (о которой вы знаете)
  2. Способ доступа к артефактам из другой сборки

С учетом этих частей вы сможете создать параметризованную сборку, которая будет выполнять именно то, что вы описываете: захватывает артефакт сборки, манипулирует конфигурацией и предоставляет ее где-то для пользователя.Конечно, дьявол кроется в деталях, например, может быть сложно сделать так, чтобы пользователю было легко "выбрать правильную сборку".


Обновление (теперь, когда я узнал о пакетных задачах - спасибо!): Я не вижу способа параметризовать пакетную задачу, как вы просили.Я предполагаю, что комбинация переменных делает невозможным определение множества различных пакетных задач.Вы можете определить несколько пакетных задач для стандартных выпусков и тестируемых конфигураций, а также предоставить программу «munger» для более конкретной пользовательской конфигурации.

...