2013-11-20 4 views
2

У нас есть немного беспорядок ситуации на нашей строительной машине ...Как мы делаем релизы с участием нескольких платформ, используя Jenkins?

Наконец-то мне удалось получить одну матричную сборку, которая «сначала проверяет, что все скомпилирует» тип задачи, которая просто компилирует все на Текущая платформа работает. Он работает на нескольких платформах отлично (о единственной проблеме, которая может возникнуть в том, что он компилирует java-код несколько раз, когда его можно было бы оптимизировать, чтобы сделать это один раз.)

Я предполагаю, что создание матрицы для сборки установщики "тоже были бы не слишком сложными.

Но есть две проблемы, которые обязательно ударят.

  1. Там в один почтовый файл, который мы перераспределить, который в идеале должен содержать все зависит от платформы бинарных файлов в один почтовый файл для уменьшения дублирования (в основном это библиотека, мы раздаем другим.)

  2. Процесс, который мы для копирования фактических выпусков на сервер полагается на каждый отдельный файл для того же номера версии того же продукта, который готов до начала сборки. Никакие сборки с одной ОС не будут иметь достаточно полного представления о произведенных файлах, чтобы иметь возможность сделать выпуск, и, похоже, не возможно добавить шаги сборки, которые выполняются в родительском задании.

Мы используем архив для Clone Workspace SCM как шаг после построения для этой исходной матрицы сборки, но, похоже, что работает независимо друг от друга на каждой ОС и не предпринимается никаких попыток, чтобы объединить результаты вместе.

Как другие люди обошли все эти проблемы?

Я знаю, что могу просто полностью свернуть матрицу и сделать все, выполнив несколько заданий, но у нас сейчас три платформы, и число рабочих мест будет стремительно расти.

Варианты, связанные с альтернативами Дженкинсу, будут серьезно рассмотрены, так как в последнее время ... количество проблем, с которыми мы сталкиваемся, огромно.

ответ

0

Вот что мы в конечном итоге установить, который работает:

  • проекта «Платформа-релизы» по-прежнему «Матрица Build».
  • Ведомые устройства обозначены соответствующей платформой, и мы используем ведомую метку в качестве параметров матрицы.
  • «Архивные артефакты» используются для архивирования полезных файлов. («Clone Workspace SCM» кажется тупиком при работе с матричными построениями.)
  • Проект «unified-релизы» - это обычная сборка, которая копирует в артефактах из релизов платформы. Поскольку мы копируем артефакты без указания конкретной платформы, мы получаем артефакты для всех платформ, которые отображаются в каталогах с именем /os/windows, /os/macosx и т. Д.
  • Ant build знает о местонахождении артефактов (они находятся за пределами рабочей копии) и выгружает все файлы в одну структуру каталогов перед загрузкой.
  • Плагин «Parameterized Trigger» настроен для релизов платформы для запуска унифицированных выпусков, чтобы версия svn, с которой он работал, соответствовала фактическим файлам.К сожалению, нам нужно проверить весь репозиторий, несмотря на то, что он использует только небольшую часть, потому что есть ошибка (предположительно, она находится в плагине subversion), которая в противном случае предотвращает проверку подкаталогов с правильной версией.
Смежные вопросы