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