Операції з регламентом в 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.
| Повний опис моделі розгортання регламенту та пайплайн публікацій. |
| У разі виникнення помилок на етапі збірки регламенту реєстру, необхідно провести дебаг для їх виявлення та виправлення. Детальніше про проведення дебагу читайте на сторінці Дебаг під час моделювання регламенту реєстру. |