Навигация
|
GitLab CI/CD Runner простой проект для новичка
CI/CD - методика непрерывной интеграции и доставки контента Разделяется два процесса - CI (Continuous Integration) и CD (Continuous Delivery) Представляет собой автоматизированный процесс от разработки и тестов до разворачивания в продакшн CI - практика разработки программного обеспечения, выполнение сборок, выявление дефектов и решение проблем CD - подход к разработке программного обеспечения, передача стабильного ПО в эксплуатацию Runner - по, предназначенное для автоматизизации выполнения заданий Например Предполагается, что GitLab уже установлен, если нет, воспользуйтесь предыдущими материалами У меня уже был создан тестовый проект test, на нем и буду издеваться
Настройка репозитория Debian / Ubuntu: Установка раннера Debian / Ubuntu: Настройка репозитория Red Hat / CentOS: Установка раннера Red Hat / CentOS: Запуск службы:
Runner необходимо связать с проектом в GitLab, узнаем настройки В web панели GitLab - страница репозитория - Settings - CI/CD - Runners - Expand Видим параметры раннера (url и token), они сейчас понадобятся в командной строке Общее использование раннеров разными проектами можно отключить Под надписью Enable shared runners for this project есть переключатель В командной строке: Адрес сервера с GitLab: Токен для регистрации раннера: Описание в свободной форме: Теги для раннера, на свой вкус (будут использоваться для отправки раннеру задания): Исполнитель из списка вариантов: $ sudo systemctl restart gitlab-runner Проверка (должно быть is_alive):
Перезагрузим страницу с параметрами раннера Ниже появилась строка с элементом, заходим справа от названия по "изображению редактирования" Выставляем 3 галки на следующих вариантах: Если обработчик заданий остановлен, то не принимает новых заданий Может запускать задания без тегов Если обработчик заданий заблокирован, его нельзя назначать для других проектов Runner запускается только на защищенных ветках нам не надо! Save Changes и переходим к настройке проекта файлом .gitlab-ci.yml
В прошлый раз сам проект test скачал с помощью git clone в прапку /tmp Теперь наша задача, чтоб при каждом git push запускался автоматически сценарий yml Простейший формат сценария yml: stages описывает шаги разворачивания и очередность выполнения сценария Задачи выполняются в рамках каждого шага, должны иметь: Во время выполнения (по умолчанию в домашней папке) на сервере создается директория build Раннер клонирует туда последние исходники проекта, далее переходит в папку с исходниками После, выполняются команды из списка в script Теги для GitLab и теги для Git - два разных понятия Вы можете указать для задания тег, если раннер с этим связанным тегом доступен, он выполнит задание Как мы помним, в командной строке своему раннеру я задал 2 тега test и api Если у раннера при регистрации не указан тег из задачи, то он ее не выполнет Таким образом можно создать разделение выполнения задач определенными раннерами Т.к. сервер у меня один, а хочется пример с исполнением ssh команды типа на удаленку, "эмулируем": Теперь мы сможем использовать функционал типа для "удаленных серверов" Наш простой pipeline .gitlab-ci.yml: Переменные использованы из списка: Создаем pipeline: Сохраняем, ожидаем несколько секунд, переходим в jobs В Jobs должен быть выведен результат выполнения сценария и ход выполнения работы В Pipelines - отображаются все задачи - успех Passed В artifacts мы указываем то, что вернется на сервер GitLab Артефакты можно скачать в CI/CD - Pipelines или CI/CD - Jobs в задачах в виде архива Физически артефакты хранятся в директории билда проекта, отображается в job логах выполнения При каждом git push данный pipeline будет автоматически запускаться Для того, чтоб в будущем учетка gitlab-runner могла запускать привелигированные команды, добавьте ее в sudo: Глобальные переменные можно добавить в Страница проекта - Settings - CI/CD - Variables - Expand - Add Variable
Комментарии пользователей Эту новость ещё не комментировалиНаписать комментарий Анонимам нельзя оставоять комментарии, зарегистрируйтесь! |
Контакты Группа ВК | Код обмена баннерами | Видео к IT статьям на YoutubeВидео на другие темы Смотреть | |||
Мои друзья: | © Snakeproject.ru создан в 2013 году.При копировании материала с сайта - оставьте ссылку.Весь материал на сайте носит ознакомительный характер,за его использование другими людьми, автор ответственности не несет. |
||||
Поддержать автора и проект
|