Реализация CI / CD в приложении C / C ++ (Linux) с использованием Shell и Docker Executor на GitLab
Для реализации CI / CD с GitLab Runner доступно множество исполнителей. Однако среди них более популярны Shell и Docker, и мы можем легко настроить репозиторий с этими бегунами. Эти бегуны могут быть выбраны в зависимости от требований и доступности ресурсов. Эта статья в основном посвящена исполнителю Shell и Docker для приложения C / C ++ Linux, а код написан на сценарии bash. Приложение можно собрать и протестировать с помощью сценария bash.
Shell Executor: Shell Executor - очень простой исполнитель, который помогает создавать решение локально на машине, где установлен GitLab Runner. В этом случае GitLab Runner установлен на Linux Machine, поэтому необходимо установить необходимое программное обеспечение в той же системе.
Docker Executor: это мощный инструмент, который включает в себя много программного обеспечения, и к нему можно получить доступ с помощью образа. Преимущество этого исполнителя в том, что нам не нужно устанавливать какое-либо программное обеспечение вручную, обо всем позаботятся через докер, а необходимый образ будет загружен из концентратора докеров. Однако недостатком является то, что этот обмен данными заблокирован в некоторых организациях из соображений безопасности. Итак, если это так, Shell Executor - лучшая альтернатива.
Реализация C / C ++ на Shell Executor
Требования : это базовое программное обеспечение, которое необходимо установить на машине Linux. Однако его можно изменить на основе сценария компиляции, и при необходимости потребуется загрузить другое программное обеспечение. Программное обеспечение Описание Git Это первое требование для фиксации изменений в GitLab. Это программное обеспечение для контроля версий, которое отслеживает изменяющийся набор файлов. cmake Чтобы создать автоматизацию, тестирование и упаковку приложения c / c ++, необходимо установить cmake на машине Linux. gcc Это компилятор, который должен компилировать программы c / c ++. g ++ Это также компилятор, который должен компилировать программы c / c ++. Его можно выбрать на основе написанного сценария. grep Установите его, если программа ищет простой текст.
Конфигурация пути: после успешной установки, описанной выше, необходимо указать путь к установленному программному обеспечению на машине, если он не задан. Выполните на компьютере команду ниже. Переменная / Файл Дорожка G ++ экспорт GCC = / usr / bin / g ++ CC экспорт CC = / usr / bin / gcc GREP экспорт GREP = / usr / bin / grep Разрешение Разрешите скрипту перед его запуском: chmod -R 777 * .gitlab-ci.yml Этот файл должен находиться в корневом каталоге проекта, который содержит всю конфигурацию CI / CD, включая программное обеспечение и путь к сценарию. Здесь вы можете указать, как должен работать этот репозиторий. Перед добавлением этого файла в корневой каталог следует проверить, является ли он допустимым файлом yml или нет.
Настройка GitLab Runner : выполните следующие шаги, чтобы загрузить и настроить GitLab Runner.
1. Загрузите GitLab Runner на Linux Machine, используя следующую команду
sudo curl -L --output / usr / local / bin / gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
2. Дайте ему разрешение на выполнение, используя следующую команду
sudo chmod + x / usr / local / bin / gitlab-runner
3. Создайте GitLab CI, используя следующую команду
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell / bin / bash
4. Установите и запустите как службу, используя следующую команду
sudo gitlab-runner install --user = gitlab-runner --working-directory = / home / gitlab-runner
5. Запустите GitLab Runner, используя следующую команду.
запуск sudo gitlab-runner
6. Остановите GitLab Runner перед регистрацией репозитория.
остановка sudo gitlab-runner
7. После успешной остановки GitLab Runner введите следующую команду в терминале для регистрации репозитория.
sudo gitlab-runner регистрация
8. Когда вы регистрируете репозиторий с помощью GitLab Runner, вам необходимо ответить на следующие вопросы.
- Введите URL-адрес вашего экземпляра GitLab : он может быть разным для каждой организации, а формат будет иметь вид http://gitlab.example.com.
- Путь : перейдите в учетную запись GitLab → Выберите репозиторий, который вы хотите зарегистрировать в runner → Настройки → CI / CD → Развернуть Runner
- Введите токен gitlab-ci для этого бегуна : это будет уникальный токен каждого проекта, который потребуется при регистрации, и его можно найти. Путь: перейдите в учетную запись GitLab → Выберите репозиторий, который вы хотите зарегистрировать в средстве выполнения → Настройки → CI / CD → Развернуть Runner
- Введите описание gitlab-ci для этого бегуна : Введите имя бегуна (любое имя), которое поможет вам запомнить, какой бегун 'запущен
- Введите теги gitlab-ci для этого бегуна : это необязательно, если вы хотите запустить бегун GitLab, когда определенный тег доступен в файле yml.
- Введите исполнителя: будет список из нескольких исполнителей и введите оболочку (поскольку GitLab Runner будет запускать нашу систему)
9. После успешной регистрации запустите GitLab Runner, используя следующую команду.
запуск sudo gitlab-runner
10. Чтобы убедиться, что GitLab Runner зарегистрировал соответствующий репозиторий и запущен ли раннер. Перейдите в учетную запись GitLab → Выберите репозиторий, который вы хотите зарегистрировать в runner → Settings → CI / CD → Expand Runner, будет доступен зеленый цветной кружок, и отобразится сообщение, что Runners активированы для этого проекта. Примечание. Если круг серый, это означает, что бегун не запустился и запускается снова.
Команды запуска Linux GitLab
Следуйте еще нескольким командам GitLab Runner, чтобы ознакомиться. Командование Описание sudo gitlab-runner регистрация Зарегистрируйте проект в GitLab Runner запуск sudo gitlab-runner Запустить бегуна остановка sudo gitlab-runner Останови бегуна sudo gitlab-runner статус Чтобы узнать статус gitlab-runner sudo gitlab-runner unregister –name test-runner Отмените регистрацию Runner проекта и замените test-runner своим именем runner, и это имя можно найти в файле config.toml (где доступен ваш gitlab-runner). sudo gitlab-runner unregister –url http://gitlab.example.com/ –token t0k3n Удалить Runner по URL-адресу и токену sudo gitlab-runner unregister –all-runners Чтобы отменить регистрацию всех бегунов sudo gitlab-runner перезапуск Эта команда останавливает, а затем запускает службу GitLab Runner. sudo gitlab-runner удалить Эта команда останавливает и удаляет запуск GitLab Runner как службы. sudo gitlab-runner exec Чтобы увидеть список доступных исполнителей, запустите sudo gitlab-runner –help Проверьте список последних команд, выполнив sudo gitlab-runner run –help Можно увидеть имя переменной окружения sudo gitlab-runner –debug Чтобы запустить команду в режиме отладки sudo gitlab-runner exec оболочка Чтобы увидеть список всех доступных параметров для исполнителя оболочки, запустите
.gitlab-ci.yml_ Исполнитель оболочки:
Ниже показано содержимое файла .gitlab-ci.yml в режиме исполнителя оболочки. Однако при необходимости измените его.
этапы: - строить - контрольная работа build_job: этап: сборка Только: - владелец сценарий: - исходный код cd - экспорт G ++ = / usr / bin / g ++ // если не установлен вручную путь g ++ - экспорт GCC = / usr / bin / gcc // если не установлен вручную путь gcc - chmod -R 777 * - ./BuildPackage.sh - pwd артефакты: expire_in: 365 days // сохраняем двоичный файл, который нужен для тестирования приложения, и его можно скачать с GitLab пути: - sourcecode / binaryfolder_name // сохраняем двоичный файл test_job: этап: тест Только: - владелец сценарий: - pwd - cd testdir // перейти в каталог test для запуска сценария тестового примера - chmod -R 777 * - ./tests.sh зависимости: - build_job - build_job
Реализация C / C ++ на Docker Executor: нет необходимости устанавливать какое-либо программное обеспечение вручную, все будет взято из контейнера докера. Однако вы можете установить необходимое программное обеспечение, указав имя в файле yml, а также можете экспортировать путь. Чтобы запустить gitlab runner в режиме исполнителя docker, перейдите в GitLab Runner Set-Up (см. Выше) и выберите docker вместо оболочки.
.gitlab-ci.yml_ Исполнитель Docker :
Ниже приведено содержимое .gitlab-ci.yml в режиме исполнителя докеров. Однако при необходимости измените его.
изображение: ubuntu: последний этапы: - строить - контрольная работа before_script: - echo "Перед установкой скрипта в образ ubuntu" - apt-get update && apt-get -y install cmake && apt-get -y install gcc && apt-get -y install g ++ build_job: этап: сборка Только: - владелец сценарий: - исходный код cd - экспорт G ++ = / usr / bin / g ++ // если не установлен вручную путь g ++ - экспорт GCC = / usr / bin / gcc // если не установлен вручную путь gcc - chmod -R 777 * - ./BuildPackage.sh - pwd артефакты: expire_in: 365 days // сохраняем двоичный файл, который нужен для тестирования приложения, и его можно скачать с GitLab пути: - sourcecode / binaryfolder_name // сохраняем двоичный файл test_job: этап: тест Только: - владелец сценарий: - pwd - cd testdir // перейти в каталог test для запуска сценария тестового примера - chmod -R 777 * - ./tests.sh зависимости: - build_job