Свой проект в GitLab: копия учебного репо
Заводим репозиторий, в котором будем гонять пайплайны: клонируем учебный проект, переключаем origin на свой и делаем первый push.
Что делаем в этом треке
Пять уроков подряд мы собираем один и тот же маленький сайт: два файла,
index.html и style.css. Ничего не нужно устанавливать, всё считает
GitLab на своей стороне. В конце сайт уедет в интернет по своему адресу, и
выкатывать его будет пайплайн, а не вы руками.
Этот урок подготовительный. Нужен аккаунт на GitLab и репозиторий, в который можно свободно пушить.
Аккаунт
Регистрация на gitlab.com обычная: почта, пароль, подтверждение по ссылке из письма. Можно войти через Google или GitHub, если не хочется заводить отдельный пароль.
После регистрации GitLab просит подтвердить личность, и делает это ступенями: сначала почта, при подозрении на риск телефон, и только в верхней ступени банковская карта. Это защита от майнеров: бесплатные раннеры дают чужие вычислительные мощности, и их регулярно пытаются занять своими задачами. Деньги при проверке карты не списываются, GitLab не хранит её данные. Если проверку проходить не хочется, в конце трека есть заметка про свой раннер, он работает без верификации.
Учебный репозиторий
Исходный сайт лежит здесь:
https://gitlab.com/izidevops-learn/ci-start
Репозиторий публичный, клонировать можно без доступов. В корне лежит сам
сайт: index.html, style.css и README.md. Рядом папки lesson-06-…
и дальше, это материалы поздних уроков, пока они вам не нужны.
Пайплайна в корне нет намеренно, его вы напишете сами в следующем уроке.
Как будет выглядеть результат в конце трека, видно тут: ci-start-148d25.gitlab.io. Эта страница выложена ровно тем пайплайном, который вы соберёте за пять уроков.
git clone https://gitlab.com/izidevops-learn/ci-start.git
cd ci-start
Клонировать в этот репозиторий вы сможете, а пушить — нет: он не ваш. Поэтому дальше меняем адрес, куда уходит push.
Свой пустой проект
В GitLab нажмите New project -> Create blank project. Имя любое,
например my-ci-site.
Один пункт важен: снимите галочку Initialize repository with a README.
Если её оставить, в проекте появится коммит, которого нет в вашей локальной
копии, и первый же push отобьётся с ошибкой rejected (fetch first).
Пустой проект такого конфликта не создаёт.
Видимость поставьте Public, тогда на страницу сайта в конце трека можно будет зайти без логина и показать её кому угодно.
Переключаем origin
origin — это имя удалённого адреса, куда git пушит по умолчанию. Сейчас
там учебный репозиторий. Смотрим:
git remote -v
origin https://gitlab.com/izidevops-learn/ci-start.git (fetch)
origin https://gitlab.com/izidevops-learn/ci-start.git (push)
Меняем адрес на свой проект (URL GitLab показывает на странице пустого проекта, кнопка Clone):
git remote set-url origin https://gitlab.com/<ваш-логин>/my-ci-site.git
git remote -v
Теперь в выводе ваш адрес. История коммитов никуда не делась, поменялась только точка назначения.
Первый push
git push -u origin main
Флаг -u привязывает локальную ветку main к удалённой, дальше хватит
просто git push.
Обновите страницу проекта в браузере: index.html, style.css и
README.md на месте. Репозиторий готов, можно писать пайплайн.
Если push не проходит
rejected (fetch first) — в проекте всё-таки есть свой коммит (обычно
README). Проще всего удалить проект и создать заново без README.
Permission denied (publickey) — вы клонировали по SSH, а ключ в GitLab не
добавлен. Для учебного репо достаточно HTTPS-адреса: git remote set-url origin https://.... GitLab спросит логин и токен вместо пароля.
HTTP Basic: Access denied. The provided password or token is incorrect —
вместо пароля нужен персональный токен. Он создаётся так: аватар ->
Edit profile -> Access -> Personal access tokens, права
write_repository.
Что важно запомнить
Клонированный репозиторий не привязан к оригиналу навсегда: git remote set-url origin <адрес> переключает push на любой другой проект.
Галочка README при создании проекта стоит полчаса разбирательств: лишний коммит на стороне GitLab ломает первый push.
Дальше пишем первый .gitlab-ci.yml.
Прошли материал до конца? Отметьте урок пройденным.
Прогресс сохранён в этом браузере
Почистишь историю или откроешь с телефона, и отметки пропадут. Оставь почту, они переедут в аккаунт. Пароль придумывать не нужно.
Готово. теперь в аккаунте: прогресс виден с любого устройства. Мой прогресс