Приветствую вас, коллеги! Денис Усачёв, ведущий эксперт РыбинскЛАБ, рад поделиться с вами информацией о том, как создать полноценную систему Continuous Integration/Continuous Delivery (CI/CD) прямо на вашем Android-устройстве с помощью Termux. Это отличный способ автоматизировать процесс разработки и развертывания приложений, особенно когда нет возможности использовать полноценный сервер.
Что нам потребуется?
Для реализации данного проекта нам понадобятся следующие компоненты:
- Termux: Терминальная оболочка для Android, предоставляющая Unix-подобную среду.
- Jenkins: Популярный сервер автоматизации, который будет управлять нашим пайплайном.
- Docker: Платформа для контейнеризации приложений, обеспечивающая их переносимость и изолированность.
- GitLab Runner: Эージェント, выполняющий задачи CI/CD, управляемый GitLab.
- GitLab: Система контроля версий, где будет храниться исходный код вашего проекта.
Подготовка Termux
Сначала необходимо установить и настроить Termux. Откройте Termux и выполните следующие команды:
pkg update && pkg upgrade
pkg install git docker jenkins
Убедитесь, что у вас установлен Docker и Jenkins успешно. Также рекомендуется настроить Termux для использования графического интерфейса (X11), если вам это необходимо для работы с некоторыми плагинами Jenkins. Для этого установите x11-repo и настройте DISPLAY переменную окружения.
Настройка Jenkins
После установки Jenkins, необходимо его настроить. Основные шаги:
- Запуск Jenkins: Выполните команду
java -jar jenkins-2.344.3.jar --httpPort=8080(или аналогичную версию). Вы можете использовать более свежую версию, доступную на официальном сайте Jenkins. - Доступ к Jenkins: Откройте веб-браузер на вашем устройстве и перейдите по адресу
http://localhost:8080. - Установка плагинов: В интерфейсе Jenkins установите необходимые плагины:
Git Plugin,Docker Pipeline Plugin,GitLab Plugin.
Настройка GitLab
Создайте репозиторий в GitLab для вашего проекта. Получите URL репозитория. Настройте GitLab Runner:
wget https://gitlab-runner.com/install/linux-android.sh
chmod +x linux-android.sh
./linux-android.sh --url https://gitlab.com/ --registration --executor docker
Вам будет предложено ввести URL вашего GitLab instance и другие параметры. После завершения установки, вы получите token, который необходимо будет указать при настройке GitLab Runner в Jenkins.
Создание Jenkins Pipeline
Создайте новый Jenkins Pipeline job. Выберите источник кода GitLab и укажите URL вашего репозитория. Настройте pipeline, используя Jenkins Pipeline DSL (Groovy). Пример простого pipeline:
pipeline {
agent { docker { image 'docker:latest' } }
stages {
stage('Build') {
steps {
sh 'mvn clean install' // Пример сборки Maven проекта
}
}
stage('Test') {
steps {
sh 'mvn test' // Пример запуска тестов Maven проекта
}
}
stage('Deploy') {
steps {
sh 'docker build -t my-app .'
sh 'docker push my-app'
}
}
}
Этот pipeline демонстрирует базовый процесс сборки, тестирования и развертывания приложения. Вы можете адаптировать его под свои нужды.
Запуск Pipeline
После создания pipeline, запустите его вручную, чтобы проверить его работоспособность. Jenkins выполнит необходимые шаги, используя Docker контейнер для сборки и тестирования вашего приложения.
Заключение
Таким образом, мы успешно настроили полноценный CI/CD пайплайн в Termux с использованием Jenkins, Docker и GitLab Runner. Этот подход позволяет автоматизировать процесс разработки и развертывания приложений, даже если нет доступа к полноценному серверу. Несмотря на некоторые ограничения, такая конфигурация может быть очень полезной для разработки и тестирования небольших проектов.
Если вам нужна помощь в настройке CI/CD, оптимизации пайплайнов или автоматизации других задач, обращайтесь в РыбинскЛАБ! Мы предлагаем широкий спектр услуг в области разработки программного обеспечения и DevOps. Наши эксперты помогут вам создать надежные и эффективные решения для вашего бизнеса.