Я мав справу з проблемою масштабування ІР у своїй компанії і одночасно намагався з’ясувати, який підхід застосовувати, коли справа стосується ІС та декількох відділень. Є подібне питання щодо stackoverflow, декількох гілок функцій та постійної інтеграції . Я розпочав новий, тому що хотів би більше обговорити та провести певний аналіз у питанні.
Наразі я виявив, що є 2 основні підходи, які я можу застосувати (або, можливо, деякі інші ???).
- Кілька робочих місць (мова про Дженкінса / Хадсона тут) на одну гілку
- Написати інструменти для управління зайвими робочими місцями
- Створювати / змінювати / видаляти завдання масово
- Спеціальні налаштування для кожного завдання на гілку (URL-адреса SCM, дублювання репозиторіїв управління управліннями)
- Деякі приклади людей, які вирішують цю проблему за допомогою інструментів оболонки, мурашиних сценаріїв та інтерфейсу командного інтерфейсу Jenkins. Подивитися:
- http://jenkins.361315.n4.nabble.com/Multiple-branches-best-practice-td2306578.html
- http://jenkins.361315.n4.nabble.com/Is-it-possible-to-handle-multiple-branches-where-some-jobs-should-run-on-each-one-without-duplicatin-td954729. html
- http://jenkins.361315.n4.nabble.com/Parallel-development-with-branches-td1013013.html
- Налаштуйте або Створіть завдання гудзона автоматично
- Це спричинить більше навантаження на ваш кластер CI
- Цикл зворотного зв’язку для розробників сповільнюється (якщо інфраструктура не справляється з новим навантаженням)
- Написати інструменти для управління зайвими робочими місцями
- Кілька завдань на 2 гілки (розробник і стабільний)
- Керуйте двома наборами вручну (якщо ви зміните конфігурацію завдання, то обов’язково змініть в іншій гілці)
- ПІТА, але принаймні так мало, щоб ними керувати
- Інші додаткові гілки не отримають повний набір тестів до того, як їх перенесуть на розробник
- Незадоволені розробники. Чому розробник повинен дбати про проблеми масштабування CI? У нього є просте прохання, коли я відгалужуюсь, я хотів би протестувати свій код. Простий.
- Керуйте двома наборами вручну (якщо ви зміните конфігурацію завдання, то обов’язково змініть в іншій гілці)
Отже, якщо я хочу надати розробникам CI для власних спеціальних гілок, мені потрібні спеціальні інструменти для Jenkins (API або сценарії оболонок чи щось інше?) Та обробляти масштабування. Або я можу сказати їм частіше зливатися з DEV і жити без CI на спеціальних гілках. Який би ви взяли або є інші варіанти?