Що таке Jenkins Встановлення, налаштування, запуск та створення агента
Прогресивна частина девелоперського середовища практикує методику безперервної інтеграції (CI), і iOS-відділ компанії Лайв Тайпінг вирішив до неї приєднатися, розгорнувши сервер для збірок на платформі Jenkins. З того часу почалося зовсім інше життя.
Що ми отримали в результаті:
- Сервер починає складання:
- по веб-хуку у разі push'а до master-гілки;
- по команді в чаті slack із зазначенням потрібної гілки та дод. параметрів.
Тепер ми заощаджуємо купу часу та сил, забувши, що таке робити збірку та комусь її відправляти. Даний посібник — плід бажання поділитися цим відчуттям та досвідом. Але, як і будь-який інший з багатьох гайдів, наш теж не претендує на істину в останній інстанції.
Для початку ознайомтеся з наступними застереженнями і зрозумійте, чи можна порівняти наш гайд з вашими завданнями:
Керівництво вийшло досить громіздким, і ми вирішили розбити його на дві частини. Ця частина присвячена базовій установці та налаштуванню Jenkins.
Що необхідно:
- Mac c встановленим OS X та Xcode (У нашому випадку MacBook Pro 2011 з OS X 10.11.4);
- кілька годин вільного часу.
Створення користувача Jenkins та його налаштування
Користувача можна створити через консоль, так і використовуючи GUI . Навряд чи у другому варіанті виникнуть складності, тому ми кращерозглянемо перше (джерело):
Наш користувач готовий і тепер нам потрібно зайти за нього. Ми можемо зробити вхід в систему через GUI або зайти, використовуючи консоль:
Увага: всі подальші дії ми здійснюємо під користувачем Jenkins.
Встановлення необхідних програм
Для встановлення Jenkins скористаємося системою керування пакетами Homebrew. Надалі це також спростить процес встановлення та оновлення додаткових пакетів, які ми використовуватимемо для отримання метрик коду.
2. Установка jenkins:
Установка системи управління залежностями cocoapods:
Щоб наш сервер автоматично запускався під час старту системи, нам необхідно налаштувати запуск відповідного завдання для launchd. У нас є вибір: зробити це через LaunchAgents або LaunchDaemon. Ми скористаємось саме LaunchAgents, т.к. це спростить подальшу роботу з Jenkins. Достатньо подивитися на таблицю нижче, щоб зрозуміти це: