Termux – это мощный терминал для Android, позволяющий запускать полноценные Linux‑утилиты прямо на смартфоне. Благодаря возможности установки пакетов из репозиториев apt, в Termux можно развернуть полноценный рабочий процесс DevOps, включая взаимодействие с GitLab CI/CD.
Что понадобится
- Устройство под управлением Android (версии 7.0 и выше).
- Приложение
Termuxиз Google Play или F-Droid. - Учётная запись в GitLab с правами запуска пайплайнов.
- SSH‑ключи или персональный токен доступа.
Установка Termux и базовых компонентов
# Обновляем репозитории
apt update && apt upgrade -y
# Устанавливаем необходимые пакеты
apt install -y git curl openssh wget python
Настройка Git и аутентификации
Для доступа к репозиториям GitLab рекомендуется использовать SSH‑ключи. Создадим ключ без пароля, чтобы автоматизировать процесс.
# Генерация SSH‑ключа
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519 -N ""
# Добавляем публичный ключ в профиль GitLab
cat ~/.ssh/id_ed25519.pub
Скопированный публичный ключ вставьте в Settings → SSH Keys вашего профиля GitLab.
Установка GitLab CLI (glab)
CLI glab упрощает работу с GitLab из терминала: создание MR, запуск пайплайнов, просмотр статуса и т.д.
# Устанавливаем glab через Go
apt install -y golang
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
go install github.com/profclems/glab@latest
# Проверяем установку
glab --version
Аутентификация glab
Для первого входа используйте персональный токен доступа с правами api и write_repository.
glab auth login
# Выберите GitLab.com или self‑hosted
# Вставьте токен, полученный в Settings → Access Tokens
Запуск пайплайна из Termux
После настройки можно запускать любой пайплайн, указав проект и ветку.
# Запуск пайплайна для ветки feature/mobile
glab pipeline run --branch feature/mobile
# Просмотр статуса последнего пайплайна
glab pipeline status
Автоматизация через скрипт
Создадим небольшую оболочку, которая будет запускать пайплайн и отправлять уведомление в Telegram.
#!/data/data/com.termux/files/usr/bin/bash
PROJECT_ID="123456"
BRANCH="feature/mobile"
TELEGRAM_CHAT_ID="-1001234567890"
TELEGRAM_BOT_TOKEN="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
# Запуск пайплайна
glab pipeline run --project $PROJECT_ID --branch $BRANCH
PIPELINE_ID=$(glab pipeline list --project $PROJECT_ID --branch $BRANCH --limit 1 --json id -t '{{.ID}}')
# Ожидание завершения
while true; do
STATUS=$(glab pipeline view $PIPELINE_ID --project $PROJECT_ID --json status -t '{{.Status}}')
if [[ "$STATUS" == "success" || "$STATUS" == "failed" ]]; then
break
fi
sleep 10
done
# Уведомление в Telegram
MESSAGE="Pipeline $PIPELINE_ID for branch $BRANCH finished with status: $STATUS"
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d chat_id=$TELEGRAM_CHAT_ID -d text="$MESSAGE"
Сохраните файл как run_pipeline.sh, сделайте исполняемым (chmod +x run_pipeline.sh) и запускайте в любое время.
Безопасность и лучшие практики
- Храните SSH‑ключи и токены в
~/.config/termux/termux.propertiesс ограниченными правами доступа. - Регулярно обновляйте пакеты Termux (
apt update && apt upgrade). - Для критически важных операций используйте двухфакторную аутентификацию в GitLab.
Заключение
Интеграция Termux с GitLab CI/CD открывает возможности управления сборками и деплоем прямо с мобильного устройства. Это особенно ценно для инженеров, находящихся в пути, или для быстрого реагирования на инциденты.
Если вам нужен профессиональный аудит CI/CD, настройка инфраструктуры или обучение сотрудников, команда RybinskLab готова предложить индивидуальные решения под ваш бизнес. Мы поможем автоматизировать процессы, повысить надёжность и ускорить выпуск продукта.