Разверните артефакт из Jenkins в Archiva с помощью NAnt

По общему признанию, я новичок в самой идее непрерывной интеграции. Таким образом, я рыскал по сети, чтобы найти способ взять мой проект ASP.NET, передать его через Jenkins для автоматической сборки с использованием NAnt и mono в системе Linux и в конечном итоге развернуть артефакт в Apache Archiva для извлечения. позже для установки и т. д.

Моя проблема в том, что я не знаю, как интегрировать эту передачу артефакта от Дженкинса к Archiva.

Итак, вот что я понимаю:

  • Archiva может использоваться для хранения любого типа артефакта. .zip файлы (это то, что я хочу использовать), .jar файлы и т. Д.
  • Дженкинс может собрать исходный код с помощью NAnt для вызова Mono в мой проект .NET 4.0.
  • Дженкинс также может заархивировать файлы в подходящий артефакт.

Вот чего я не понимаю:

  • Как я могу получить файл .zip (артефакт) из того места, где он хранится, когда Дженкинс его построит, в репозиторий Archiva?

Вот с чем я работаю:

  • Сервер Jenkins (1.502) и сервер Archiva (1.3.4) находятся на одном компьютере с Ubuntu 12.04.
  • Скрипт сборки NAnt (0.92)
  • Моно (2.10)

О чем я ничего не знаю (но может помочь?):

  • Maven
  • Плющ

person brazilianldsjaguar    schedule 21.02.2013    source источник


Ответы (2)


Настройте отдельную «задачу» Jenkins, которая использует Maven для развертывания.

Примечание: вам не нужно слишком много знать о Maven, чтобы это работало. Вам нужно будет его установить. Вам нужно будет настроить его, как описано на странице ниже, и вам нужно будет вызвать его из командной строки, используя эту информацию. (Если вы хотите узнать больше, вы можете использовать альтернативный вариант.)

Настройте файл settings.xml, используя информацию с этой страницы:

http://archiva.apache.org/docs/1.4-M2/userguide/deploy.html

На этой же странице показано, как это сделать, запустив Maven из командной строки. Чтобы использовать это, вы создадите задачу Jenkins, которая запускает сценарий оболочки и развертывается непосредственно из того места, где его создает задача сборки. Затем вы либо запускаете развертывание вручную, либо заставляете задачу сборки Jenkins запускать задачу развертывания, когда она завершается без ошибок.

Одна вещь, с которой вы, возможно, не знакомы, - это система координат Archiva / Maven для каждого файла.

У каждого артефакта есть группа, идентификатор артефакта и версия. Если хотите, может быть классификатор и тому подобное.

  • Группа обычно состоит из доменного имени компании в обратном порядке и внутренних показателей таксономии - com.microsoft.phone.web для веб-приложения, созданного телефонным подразделением Microsoft.
  • Идентификатор артефакта - это имя конкретного артефакта.
  • Версия - это обычная форма строки версии - 1.0a или 2.0-asl или 3.2.1.
  • Классификатор используется аналогично тому, как мы используем расширения файлов - zip, jar.

Это краткая версия объяснения. Google здесь ваш друг.

Для этого также можно использовать задачу Maven. Информация о файле pom.xml на странице Archiva будет необходима, но вам нужно будет ввести в Google «Maven deploy» и прочитать, как это сделать в вашем конкретном случае. Случай по умолчанию развертывается, когда артефакты находятся в локальном репозитории Maven (на машине сборки) и в этом репозитории есть определенная структура файлов и папок, которая вам нужна. Таким образом Maven упорядочивает артефакты при их создании и установке.

person Lee Meador    schedule 21.02.2013
comment
См. Добавленное примечание вверху. - person Lee Meador; 21.02.2013

Чтобы упростить развертывание в Archiva из Jenkins для сборки, отличной от maven, можно написать плагин, похожий на https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin (ПРИМЕЧАНИЕ: я могу помочь вам, но у банкомата нет времени делать все :-)). Я не очень хорошо знаю NAnt, но для ant мы создаем некоторую задачу maven ant для развертывания артефактов, см. http://maven.apache.org/ant-tasks/

person Olivier Lamy    schedule 22.02.2013
comment
Здесь рассказывается, как убежать от муравья nant и от nant муравья. Это может сработать. stackoverflow.com/ questions / 5192832 / - person Lee Meador; 22.02.2013