Операції з регламентом в Gerrit
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
Передумови
Перед виконанням операцій з регламентом дотримуйтеся наступних передумов:
-
Встановіть Git та Git Bash-консоль.
-
Рекомендуємо встановити середовище розробки IntelliJ IDEA.
-
Рекомендуємо встановити плагін Gerrit для IntelliJ IDEA.
Детальний список рекомендованих інструментів для розробників та адміністраторів реєстру ви можете переглянути на сторінці Навчальний курс для розробників цифрового регламенту реєстру: що необхідно для початку роботи. |
1. Клонування регламенту на локальну машину
Для розгортання заздалегідь підготовленого регламенту реєстру, дотримуйтеся кроків, поданих нижче на цій сторінці.
Для перегляду списку основних елементів регламенту реєстру, зверніться до секції Структура регламенту реєстру. |
- Крок 1
-
Відкрийте Gerrit реєстру та виконайте вхід.
Посилання до системи рецензування коду Gerrit можливо отримати в інтерфейсі
. У розділі Адміністративна зона реєстру перейдіть за посиланням Сервіс інспекції та зберігання змін регламенту (Gerrit).Після успішної авторизації перейдіть до розділу
. Вам буде доступний репозиторій з регламентом реєстру — registry-regulations.Регламент розташовано виключно у репозиторії registry-regulations. Для клонування регламенту на локальній машині використовуйте лише registry-regulations. При першій авторизації в Gerrit можлива ситуація, коли репозиторій
registry-regulations
ще не з’явився й не відображається в розділі . У цьому випадку зачекайте 3-5 хвилин і оновіть сторінку.Також можливий сценарій, коли у користувача в Keycloak недостатньо прав на перегляд репозиторіїв. В такому випадку обов’язково переконайтеся, користувача має призначену роль
gerrit-administrators
(див. детальніше — Створення адміністраторів реєстру). - Крок 2
-
Перейдіть до репозиторію registry-regulations (натиснувши назву репозиторію) та скопіюйте виділену червоним команду для локального завантаження репозиторію, тобто виконайте
git clone
. Це посилання необхідно для того, щоб виконати копіювання віддаленого репозиторію на локальну машину. - Крок 3
-
Запустіть Git Bash-консоль у директорії (папці), до якої необхідно клонувати репозиторій. Вставте та виконайте скопійовану команду з попереднього кроку 2.
Username та Password можливо отримати у профілі користувача в Gerrit, у розділі
.Після успішного копіювання віддаленого репозиторію він стане доступний на локальній машині.
Тепер ви маєте можливість працювати з регламентом локально, змінюючи та додаючи файли згідно зі структурою регламенту. Детальніше про регламент та особливості його структури див. на сторінці Цифровий регламент реєстру.
Якщо на будь-якому кроці ви отримали результат, відмінний від описаного вище, то ймовірно, ви допустили помилку. Перегляньте перелік типових помилок, пов’язаних з Git Bash.
2. Оновлення локального репозиторію з Gerrit
Якщо з моменту останнього розгортання регламенту на локальній машині, у віддаленому репозиторії Gerrit відбулися зміни (внесені вами або кимось із вашої команди), потрібно оновити локальний репозиторій перед внесенням ваших змін. Це можна зробити двома шляхами:
-
Git Bash-консоль
-
IDE IntelliJ IDEA
Для цього виконайте представлені нижче кроки.
-
Запустить консоль Git Bash у директорії з репозиторієм, який потрібно оновити. Виконайте у Git Bash-терміналі наступну команду:
git pull --rebase origin HEAD:refs/for/master
-
git pull --rebase origin
— команда отримання змін з віддаленого репозиторію з регламентом реєстру (всі зміни будуть застосовані у локальнійmaster
-гілці). -
HEAD:refs/for/master
— шлях доmaster
-гілки віддаленого репозиторію.
-
-
(Альтернативно) Скористайтеся можливостями IntelliJ IDEA. Для цього:
-
Відкрийте в IntelliJ IDEA проєкт із регламентом реєстру, який потрібно оновити.
-
Перейдіть до пункту меню Git та у випадному списку виберіть Update Project.
-
-
У новому вікні залиште опцію за замовчуванням та натисніть OK:
3. Внесення змін до віддаленого репозиторію в Gerrit
- Крок 1
-
Розкладіть попередньо підготовлені файли регламенту (наприклад, ті, що були отримані при передачі архіву з регламентом вже розробленого реєстру або відредаговані файли зі змінами) до відповідних директорій каталогу registry-regulations.
Відкрийте Git Bash-термінал у директорії, в якій розташовано підготовлений до розгортання регламент.
Виконайте у Git Bash-терміналі наступні команди:
git add . git commit -m "Message commit with changes" git push origin HEAD:refs/for/master
де:
-
git add .
— означає додати всі файли (локально); -
git commit -m "Message commit with changes"
:-
git commit
— внесення змін до регламенту реєстру (локально); -
-m
— атрибут коментаря до змін; -
"Message commit with changes"
— коментар до змін, що вносяться до регламенту;
-
-
git push origin HEAD:refs/for/master
:-
git push origin
— команда відправлення локальних змін до віддаленого репозиторію з регламентом реєстру; -
HEAD:refs/for/master
— шлях до майстер-гілки віддаленого репозиторію.
-
В результаті виконання зазначених команд, локальні файли регламенту будуть розгорнуті у Gerrit-репозиторії.
-
- Крок 2
-
Перейдіть до
та переконайтеся, що зміна створена. - Крок 3
-
Виконайте процедуру рецензування, увійшовши до створеної зміни.
Якщо створена зміна була пов’язана з будь-якими змінами у папці data-model, обов’язково дочекайтеся завершення автоматичного рецензування, щоб код пройшов перевірку. Це може зайняти кілька хвилин. -
Натисніть Reply.
-
У новому вікні, натисніть наступні кнопки оцінки:
-
+2
— для Code-Review; -
+1
— для Verified.+1
для Verified можна встановити вручну, але рекомендуємо дочекатися автоматичної перевірки через Jenkins-пайплайн (CI Jenkins). Це може зайняти кілька хвилин.
-
-
Натисніть SEND, далі
✓✓ SUBMIT
, для застосування зміни у віддаленому репозиторії (відповідає командіgit merge
). -
У спливному вікні натисніть CONTINUE для підтвердження.
-
- Крок 4
-
В Gerrit перейдіть до розділу
. Знайдіть зміну, перейдіть до неї та переконайтеся, що CI Jenkins-пайплайн публікації регламенту із назвою MASTER-Build-registry-regulations запущено, та дочекайтеся успішного його завершення.-
Перевірити виконання pipeline можна:
-
у секції
; -
АБО перейдіть до Jenkins job за посиланням, що доступне внизу сторінки.
-
-
У новому вікні, в меню ліворуч, натисніть Back to Project.
-
Переконайтеся, що збірка пройшла успішно. В такому разі усі етапи збірки виконано без помилок, а всі етапи процесу позначені зеленим кольором.
Якщо збірка регламенту була виконана з помилкою, наприклад, якщо регламент не пройшов серверну валідацію, то необхідно визначити причину помилки (знайти в логах), усунути причину, опісля повторно виконати внесення змін.
Приклад пошуку та виявлення помилок у журналі подій (логах) Jenkins доступний за посиланням.
Помилки, які найчастіше виникають, та способи їх усунення див. у розділі Помилки при роботі Jenkins-пайплайнів.
-
Таблиці моделі даних із префіксом Приклад моделювання таблиці із префіксом
test_
|
Після успішного виконання Jenkins job, сутності регламенту реєстру створено і можливо переходити до їх перевірки.
4. Відстеження процесу виконання збірки коду в Jenkins
-
Відстежуйте процес виконання збірки коду в Jenkins. Для цього відкрийте інтерфейс
. У розділі Адміністративна зона реєстру перейдіть за посиланням Сервіс розгортання регламенту (Jenkins). -
Перейдіть до теки із пайплайном registry-regulations.
-
У новому вікні можна побачити основні пайплайни збірки регламенту:
-
MASTER-Code-review-registry-regulations — рецензування коду;
-
MASTER-Build-registry-regulations-data-model — збірка моделі даних регламенту реєстру. Запускається як окремий етап в рамках пайплайну MASTER-Build-registry-regulations;
-
MASTER-Build-registry-regulations — збірка регламенту реєстру.
-
Див. підрозділ Порядок запуску збірки регламенту реєстру нижче, щоб отримати більше деталей про пайплайни регламенту. |
Порядок запуску збірки регламенту реєстру
-
Після застосування змін до Gerrit (
git commit
,git push
) в Jenkins автоматично запускається пайплайн MASTER-Code-review-registry-regulations, мета якого рецензування коду.Детальніше про роботу MASTER-Code-review-registry-regulations читайте за посиланням. -
Після успішного виконання пайплайну MASTER-Code-review-registry-regulations, оновіть сторінку та натисніть кнопку SUBMIT — це запустить основний пайплайн збірки регламенту MASTER-Build-registry-regulations.
-
У процесі збірки MASTER-Build-registry-regulations окремим етапом запуститься пайплайн MASTER-Build-registry-regulations-data-model. Він вносить зміни до налаштувань елементів моделі даних у регламенті реєстру, зокрема
registry-model
,registry-kafka-api
,registry-rest-api
таregistry-soap-api
.
Повний опис моделі розгортання регламенту та пайплайн публікацій. |
У разі виникнення помилок на етапі збірки регламенту реєстру, необхідно провести дебаг для їх виявлення та виправлення. Детальніше про проведення дебагу читайте на сторінці Дебаг під час моделювання регламенту реєстру. |