Git

Створення та налаштування проєкту в Git

10 Jan 2024

Привіт, в даній статті ви зможете прочитати всі кроки по налаштуванню нового проєкту в Git, ітак почнемо)

1. Заходимо на GitLab на натискаємо "New Project":

Image

Image

2. Вибираємо "Create blank project":

Image

Image

3. Дивимось на назву проєкту в Slack-у, ми повинні перенести його так само, перетворивши в Pascal Case з пробілами між словами:

Image

Image

4. Переносимо назву проєкту в поле "Project name", в полі "Project slug" автоматично створиться slug для посилання на git проєкту, копіюємо його, оскільки це і буде посилання на нього на dev серверах:

Image

Image

5. Після того як проєкт вдалось успішно створити, створюємо 2 гілки (dev, fd) які будуть наслідувати гілку main, на скріні внизу вказано як це можна зробити:

Image

Image

6. Тут вказано як створюємо гілку "fd":

Image

Image

7. Тут вказано як створюємо гілку "dev":

Image

Image

8. Після того як ми успішно створити всі потрібні нам гілки, переходимо в налаштування CI/CD змінних (.env), зліва знаходимо табу "CI/CD settings" та відкриваємо акордіон із заголовком "Variables", клікаємо на кнопочку "Add variable":

Image

Image

9. В SidePopup який з'явиться у вас забираємо всі прапорці "Flags", в полі "Key" пишемо "DIRECTORY" та в полі "Value" вставляємо slug який ми копіювали на кроці [4], натискаємо кнопку "Add variable":

Image

Image

10. Переходимо на git Parcel-Start проєкту [link] та клонуємо собі на комп'ютер дане репо, якщо вона у вас уже є, то на гілці main виконуємо команду git pull для того щоб впевнитись що в нас буде остання його версія:

Image

Image

11. Заходимо в директорію нашого стартового проєкту, не забуваємо включити перегляд усіх файлів (скритих також) щоб точно скопіювати всі потрібні нам файли. На скріні внизу вказано які файли/директорії потрібно копіювати, тут я напишу ті, які потрібно упустити:

  1. .env
  2. .git/
  3. .gitlab/
  4. .gitpod.yml
  5. README.md
  6. .idea/
  7. node_modules/
  8. .parcel-cache/
Image

Image

12. Переходимо на гілку "fd" на сайті gitlab-у, натискаємо кнопочку "Edit" та "Gitpod", так ми запустимо наш проєкт онлайн, для того щоб його не скачувати на локальну машину:

Image

Image

13. Нажимаємо кнопочку "Continue":

Image

Image

14. Перекидуємо всі вибрані файли в директорію нашого проєкту:

Image

Image

15. В терміналі (який має сам відкритись) вводимо команду pnpm i для того аби встановити всі потрібні пакети:

Image

Image

16. Після того як пакету успішно поставляться запускаємо команду pnpm run dev:

Image

Image

17. Як тільки команда запуститься, сам gitpod запропонує вам показати Preview вашого проєкту, натискаємо кнопочку "Open Preview", якщо ви її пропустили, над терміналом є вкладочка "Ports" де ви можете знайти порт 1234 (Parcel):

Image

Image

18. У вікні справа відкриється перегляд "Preview" де ви побачите робочий проєкт, значить все пройшло успішно:

Image

Image

19. Комітимо всі файли з таким commit повідомленням: chore: first init

Image

Image

20. Переходимо на вкладку "Pipelines", якщо ви все правильно зробили то з часом там мають з'явитись 2 галочки:

Image

Image

21. Після того як проєкт успішно залився, ви можете переходити на bolddevnew сервер з slug-ом проєкту, вкінці додавши scan.php:

Image

Image

22. Ви маєте побачити стартовий проєкт, вітаю, проєкт успішно ініціалізований!

Image

Image

23. Після того як все пройшло успішно, формуємо повідомлення у Slack каналі проєкту, де надаємо всю потрібну інформацію

Image

Image

Можливі помилки до яких варто спершу глянути

1. Якщо release job-а дропається, гляньте в те що показується в CI/CD консолі, наприклад на проєкті metamorfosi проблема була в тому що в parcel-start проєкті посилання на git відрізняється тільки назвою директорії, але ніяк не назвою namespace-у, тому воно пробувало найти проєкт в bold_2022 групі, а його звісно там немає.

Те як виглядала спершу помилка

Те як виглядала спершу помилка

На даному проєкті я замінив хардкодом посилання з bold_2022 на zekis (лінка на Богдана репо), і одразу додав змінну в parcel-start замінивши її на NAMESPACE CI/CD змінну, тому всі наступні рази якщо таке буде, потрібно просто буде добавити її у всі проєкти які не будуть у скоупі групи bold_2022 оскільки там я одразу додав дефолтне значення цієї змінної для всіх репо всередині

Скрін як я пофіксив саме цю помилку хардкодом

Скрін як я пофіксив саме цю помилку хардкодом

Скрін з parcel-start де я розширив це значення на змінну

Скрін з parcel-start де я розширив це значення на змінну

Скрін усіх дефолтних значення CI/CD для групи `bold_2022`

Скрін усіх дефолтних значення CI/CD для групи `bold_2022`

2