Непрерывная интеграция и предварительная интеграция - PullRequest
1 голос
/ 05 апреля 2011

Я публикую неполный вопрос, частично бессвязный в надежде, что это вызовет дискуссию, а также ответит на мой вопрос, который, если честно, является скорее рядом требований.

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

То, что я собираюсь сделать, это связать своего рода автоматизированную среду сборки с нашей системой релизов, которая требует от менеджеров составлять различную документацию.Это требование сертификации TickIT, а не переговоры.Я предполагаю, что создаю (Windows) рабочий процесс, для которого у нас настроена ИТ-инфраструктура и который знаком всем компаниям, который запрашивает у менеджеров документацию, которая должна быть зафиксирована для сборки и выпуска.Мы не компания-разработчик программного обеспечения, мы компания, которая продает программное обеспечение, поэтому эти функции должны быть связаны с нетехническими.

Итак, в общем, наш вариант использования будет выглядеть примерно так:

  • Менеджер просматривает средство отслеживания задач и авторизует выпуск на основе текущего состояния
  • Рабочий процесс запускается, кэшируя текущую версию SVN
  • Рабочий процесс требует от менеджера проекта количество файлов в формате PDFдокументы и т. д., которые необходимо встроить в установочный пакет
  • Рабочий процесс запускает процесс сборки на ранее кэшированной версии SVN в диспетчере интеграции, таком как CruiseControl (я включаю в это все, что делает непрерывная интеграция, включаямодульные тесты)
  • Завершенные установочные пакеты автоматически устанавливаются на различные виртуальные машины (полный набор поддерживаемых операционных систем и языков) и предоставляются QA
  • После завершения выхода из QA, установочные пакеты повторносдан в аренду

Естественно, поскольку ничего не работает должным образом, должна быть включена возможность «прервать» рабочий процесс и продолжить работу вручную в любое время, так как мы не хотим, чтобы релиз задерживался глупыммашина, которая не может делать свою работу, когда немного здравого смысла будет делать то же самое.

Есть ли у кого-нибудь что-нибудь, что можно было бы рассмотреть на примере такого рода процессов, или какие-либо комментарии о том, насколько простоэто может быть вызов, или даже насколько это уместно?

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Недавно мы решили именно эту проблему для одного из наших клиентов.Наша реализация включала следующие компоненты (но вы можете добиться того же с помощью различных инструментов в зависимости от вашей организации).

  • Рабочий процесс JIRA - организуйте процесс (и соберите показатели производительности), управляйте утверждениями и отслеживайте историю для аудита
  • Плагин JIRA - запускает сборку \ развертывание \ тестирование через CI-сервер (Hudson \ Jenkins).Прослушиватель: отвечайте на обновления статуса из плагина Hudson \ Jenkins
  • Jenkins - для взаимодействия с JIRA
  • build-pipe-plugin - для управления рабочим процессом Jenkins
  • сценарии развертывания - организовано Jenkins \ Groovy

Звучит сложно, но многие из этих инструментов имеют отличные API для работы, так что вы можете получить стабильное решение вместе в разумные сроки.

Приветствия,

Джефф

0 голосов
/ 16 апреля 2014

Рассмотрим CloudMunch для этого. CloudMunch предоставляет механизм сборки (основанный на Jenkins), над ним работает рабочий процесс сборки, который позволяет управлять ручным рабочим процессом с чистой поддержкой RBAC для управления тем, что вы смотрите.

Отказ от ответственности: я работаю в CloudMunch.

0 голосов
/ 17 апреля 2011

Проведя некоторое исследование по этому вопросу, я провел последние несколько дней, играя с CruiseControl.NET. Похоже, что он может делать все, что я ищу, благодаря своей расширяемости. Нет никаких препятствий для запуска другого плагина в конце сборки, который выполняет все развертывание и завершение работы. Некоторые требования сложны и занимают неопределенное количество времени, поэтому я думаю, что какое-то сохранение состояния, такое как WWF, будет полезным. Мне придется поэкспериментировать и обсудить это с моими коллегами.

...