Обов'язки Build Script і сервера складання


12

Мені потрібні деякі роз’яснення щодо обов'язків сценарію збирання та сервера побудови.

Я прочитав кілька статей у Мережі про постійну інтеграцію та побудови. У тому числі

І я провів розмову з моїм радником про процес збирання нашого програмного забезпечення. Оскільки він дуже досвідчений, я довіряю його заявам, але я залишився з пантелику.

Як я розумію, із мого дослідження (і, будь ласка, виправте мене тут, оскільки саме про це я прошу) ідеал повинен бути таким:

  • у кожного проекту є свій сценарій збірки
  • цей сценарій будує проект
  • цей скрипт гарантує, що залежності будуються раніше

Оскільки залежності можуть бути іншим проектом, зі своїм власним сценарієм побудови накопичується деревоподібна ієрархія. Можливо, існує сценарій верхньої збірки, який будує всі проекти та програми.

Однак обов'язки сервера побудови:

  • перевірити сховище
  • запустити збірку
  • тригерні тести та інші засоби забезпечення якості
  • зробити артефакт доступним

Це може спрацьовувати вручну, вночі або щоразу, коли сховище змінюється


Цілі мого радника полягають у тому, що, як я їх розумію, один сценарій побудови - це спосіб негнучкий і не досяжний (окрім того, що для створення нашої застарілої бази кодів знадобиться дуже багато часу). Також сервер побудови повинен підтримувати залежності, наприклад використовувати старі залежності, коли створювати нові помилки. І зокрема, Antоскільки це був конкретний предмет, не здатний будувати всілякі різні технології, які використовуються в кодовій базі, і не здатний підтримувати залежності.

Чи можете ви, будь ласка, розробити цілі та уточнити обов'язки?


4
Наскільки це хороше питання, і на нього відповідуть (я пізніше, коли встигну, а на нього ще не відповіли): ви дійсно повинні повернутися назад і отримати роз'яснення у свого радника. Заплутатися після розмови з кимось, хто буде оцінювати вашу ефективність, є рецептом катастрофи, і вказівка ​​на те, що вони не адекватно спілкуються з вами (або ви не слухаєте активно, але, здається, це не так тут).
Стівен Еверс

2
@ Angelo.Hannes Я думаю, що ти потрапив у всі основні моменти. Чи можете ви уточнити конкретніше, що вас бентежить?
М. Дадлі

@SteveEvers Ну, як тільки що прочитав кілька вступів до цієї теми, я хотів спочатку розширити свої знання з цього питання. Тоді я неодмінно підберу цю тему ще раз. Тому я дуже вдячний за вашу відповідь.
Angelo.Hannes

@ M.Dudley Як я вже сказав, я не впевнений, які обов'язки куди йдуть. І чи правильний шлях для створення програмного забезпечення для всього програмного забезпечення.
Angelo.Hannes

Відповіді:


14

Ці речі є ортогональними:

Сценарій збірки є механізм , який, при виклику на свіжо витягнутого вихідного дерева, дає повну збірку необхідних завдань і залежностей. Просто у вас є "зробити все", якщо у вас є макіяж файлу або підходящий виклик MSBuild, Ant, Maven або Scons. Якщо у вас складна ієрархія залежностей або пов'язаних з ними проектів, ваш "сценарій побудови" може бути файлом верхнього рівня, який викликає кожну з них по черзі, перевіряючи успіх у процесі роботи.

Сценарій збірки - це лише один сценарій, можливо, багато - замовлення, збирання, тестування, пакет - але у вас може бути механізм "все в одному", керований парамами командного рядка - це залежить від вашого оточення.

Складання сервер , або , вірніше , сервер безперервної інтеграції , є механізмом автоматизації відповідає за планування / запуск, моніторинг і звітність по касі -> збірка -> тест -> упаковка -> етап -> розгортання трубопровід. Ви можете використовувати cron / Task Scheduler, якби у вас не було нічого складнішого, але зараз існує безліч чудових інструментів, таких як Jenkins, Cruise Control, TeamCity тощо.

Важливо, що ви можете викликати збірку, не використовуючи сервер CI, у випадку, якщо він зайнятий / офлайн / недоступний / інакше недоступний, тому, логіка отримати збірку / тест / все, що робиться, повинно бути поза межами Система CI, але вона викликає нею, параметризується за типом філії / збірки / версії / архітектури тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.