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 пайплайна для мобильных приложений с Git в Termux

Пошаговое руководство по настройке CI/CD пайплайна для мобильных приложений с использованием Git в Termux. Автоматизация сборки, тестирования и деплоя Android-приложений прямо на устройстве.

Современная разработка мобильных приложений требует автоматизации процессов сборки, тестирования и развертывания. Termux — мощный терминал Linux для Android, который позволяет реализовать полноценный CI/CD пайплайн непосредственно на мобильном устройстве. В данной статье мы рассмотрим настройку непрерывной интеграции и доставки для Android-приложений с использованием Git.

Подготовка окружения

Первым шагом установим необходимые пакеты в Termux:

pkg update && pkg upgrade -y
pkg install git openjdk-17 gradle android-tools -y

Настроим Git для работы с репозиторием:

git config --global user.name "Ваше Имя"
git config --global user.email "email@example.com"

Создание структуры проекта

Инициализируем новый Android-проект с Gradle:

mkdir -p ~/myapp && cd ~/myapp
gradle init --type android-application --dsl kotlin --package com.example.myapp --name MyApp

Структура проекта будет содержать стандартные директории для исходного кода, ресурсов и конфигурации сборки.

Настройка Git-репозитория

Инициализируем локальный репозиторий и создадим первый коммит:

git init
git add .
git commit -m "Initial commit: Android project structure"

Для удаленного репозитория можно использовать GitHub, GitLab или собственный Git-сервер в локальной сети. Пример добавления remote:

git remote add origin https://github.com/username/myapp.git
git push -u origin main

Реализация CI/CD скриптов

Создадим директорию для скриптов автоматизации:

mkdir -p ~/myapp/ci

Скрипт сборки build.sh:

#!/data/data/com.termux/files/usr/bin/bash
set -e

echo "=== Начало сборки ==="
cd ~/myapp

echo "Получение последних изменений..."
git pull origin main

echo "Очистка предыдущих сборок..."
./gradlew clean

echo "Сборка debug APK..."
./gradlew assembleDebug

echo "Сборка release APK..."
./gradlew assembleRelease

echo "=== Сборка завершена успешно ==="
ls -la app/build/outputs/apk/

Скрипт тестирования test.sh:

#!/data/data/com.termux/files/usr/bin/bash
set -e

echo "=== Запуск тестов ==="
cd ~/myapp
./gradlew test

echo "=== Тесты пройдены ==="

Скрипт деплоя deploy.sh (пример для локальной установки):

#!/data/data/com.termux/files/usr/bin/bash
set -e

echo "=== Установка приложения ==="
cd ~/myapp
adb install -r app/build/outputs/apk/debug/app-debug.apk

echo "=== Приложение установлено ==="

Делаем скрипты исполняемыми:

chmod +x ~/myapp/ci/.sh

Автоматизация через Git Hooks

Настроим pre-push хук для автоматического запуска тестов перед отправкой изменений:

cat > ~/myapp/.git/hooks/pre-push << 'EOF'
#!/data/data/com.termux/files/usr/bin/bash
echo "Pre-push hook: Running tests..."
~/myapp/ci/test.sh
EOF
chmod +x ~/myapp/.git/hooks/pre-push

Планирование задач с cron

Для периодической проверки репозитория и автоматической сборки настроим cron:

pkg install cronie -y
crond
crontab -e

Добавим задачу на проверку каждые 30 минут:

/30     cd ~/myapp && git fetch origin && if [ "$(git rev-parse HEAD)" != "$(git rev-parse @{u})" ]; then ~/myapp/ci/build.sh; fi

Мониторинг и логирование

Создадим простую систему логирования для отслеживания истории сборок:

mkdir -p ~/myapp/logs
echo "$(date): Build started" >> ~/myapp/logs/build.log
~/myapp/ci/build.sh >> ~/myapp/logs/build.log 2>&1
echo "$(date): Build finished" >> ~/myapp/logs/build.log

Просмотр логов:

tail -f ~/myapp/logs/build.log

Безопасность и лучшие практики

  • Храните ключи подписи (keystore) в защищенном месте, не коммитьте их в репозиторий
  • Используйте переменные окружения для чувствительных данных
  • Регулярно обновляйте Termux и пакеты: pkg update && pkg upgrade
  • Настройте SSH-ключи для беспарольного доступа к Git-серверу
  • Ограничьте права доступа к скриптам CI: chmod 700 ~/myapp/ci/*.sh

Заключение

Реализация CI/CD пайплайна в Termux открывает новые возможности для мобильной разработки: автоматическая сборка при каждом коммите, запуск тестов перед отправкой кода, периодическая проверка репозитория и мгновенная установка сборок на устройство. Данный подход особенно актуален для индивидуальных разработчиков и небольших команд, которым не требуется сложная инфраструктура.

Команда РыбинскЛАБ оказывает профессиональные услуги по настройке CI/CD пайплайнов, автоматизации сборки мобильных приложений, администрированию Linux-систем и разработке под Android. Обращайтесь за консультацией и внедрением решений под ваши задачи.

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

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

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

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