We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Автоматизация CI/CD пайплайна с GitLab Runner, сборка артефактов и публикация в GitLab Container Registry прямо из Termux

В статье рассматривается возможность автоматизации CI/CD пайплайна с использованием GitLab Runner в Termux для сборки артефактов и публикации в GitLab Container Registry. Описаны шаги настройки и примеры команд.

В современном мире разработки программного обеспечения автоматизация процессов сборки, тестирования и развертывания (CI/CD) играет ключевую роль. Иногда возникает необходимость в выполнении этих задач на мобильных устройствах или в средах, где нет доступа к традиционным серверным ресурсам. Termux – это бесплатная среда выполнения Linux для Android, которая позволяет запускать множество инструментов и программ, обычно доступных только на настольных компьютерах. В этой статье мы рассмотрим, как использовать Termux в качестве GitLab Runner для автоматизации CI/CD пайплайнов, включая сборку артефактов и публикацию их в GitLab Container Registry.

Необходимые условия

Для начала работы вам потребуется:

  • Установленный Termux на вашем Android устройстве.
  • Установленный и настроенный GitLab проект.
  • Созданный GitLab Container Registry для хранения артефактов.
  • Доступ к интернету.

Установка GitLab Runner в Termux

Для установки GitLab Runner в Termux необходимо выполнить следующие команды:

pkg update && pkg upgrade
pkg install git docker docker-compose
curl -sS https://gitlab-runner.com/install.sh | sh

После выполнения этих команд, необходимо инициализировать GitLab Runner, указав URL вашего GitLab сервера и имя проекта.

gitlab-runner register --url  --registration-token  --executor docker --description "Termux Runner" --docker-image alpine/git:latest

Замените на URL вашего GitLab сервера (например, https://gitlab.com) и на токен, полученный из GitLab проекта.

Настройка .gitlab-ci.yml

Создайте или отредактируйте файл .gitlab-ci.yml в корне вашего проекта. Этот файл определяет шаги вашего CI/CD пайплайна. Пример конфигурации для сборки Docker образа и публикации его в GitLab Container Registry:

stages: 
  - build

build: 
  stage: build
  script: 
    - docker build -t registry.gitlab.com//:$CI_COMMIT_SHA . 
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD registry.gitlab.com
    - docker push registry.gitlab.com//:$CI_COMMIT_SHA
  tags: 
    - termux

Замените на ваше имя пользователя в GitLab, на имя вашего проекта и $CI_COMMIT_SHA будет заменен на хеш коммита. Убедитесь, что переменные окружения $CI_REGISTRY_USER и $CI_REGISTRY_PASSWORD настроены в GitLab.

Запуск CI/CD пайплайна

После настройки .gitlab-ci.yml, просто отправьте коммит в ваш GitLab проект. GitLab автоматически запустит CI/CD пайплайн, используя Termux Runner.

Решение проблем

При возникновении проблем, проверьте следующие моменты:

  • Убедитесь, что Termux Runner правильно зарегистрирован в GitLab.
  • Проверьте правильность указанных переменных окружения.
  • Убедитесь, что у пользователя Termux есть права на доступ к GitLab Container Registry.

Заключение

Использование Termux в качестве GitLab Runner позволяет автоматизировать CI/CD пайплайны даже на мобильных устройствах. Этот подход может быть полезен для разработки и тестирования приложений в условиях ограниченных ресурсов или при необходимости автономной работы. Этот метод может значительно ускорить процесс разработки и обеспечить более быструю обратную связь.

РыбинскЛАБ предоставляет широкий спектр услуг в области разработки программного обеспечения, включая настройку и оптимизацию CI/CD пайплайнов. Наши специалисты помогут вам настроить GitLab Runner в Termux и решить любые возникающие проблемы. Обратитесь к нам для консультации и реализации ваших проектов!

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект