Termux – это полноценное Linux‑окружение для Android, которое позволяет запускать скрипты, управлять пакетами и интегрироваться с внешними сервисами. В статье рассмотрим, как использовать Termux в цепочках CI/CD для автоматического деплоя и тестирования ваших скриптов.
Подготовка Termux
Для начала необходимо установить базовые инструменты:
pkg update && pkg upgrade -y
pkg install git python nodejs curl -y
После установки убедитесь, что git и нужные интерпретаторы доступны:
git --version
python3 --version
node -v
Организация репозитория
Создайте репозиторий на GitHub, GitLab или Bitbucket. В корне проекта разместите скрипты, файлы конфигурации CI и README. Пример структуры:
my-termux-project/
├─ .gitignore
├─ .github/
│ └─ workflows/
│ └─ android.yml
├─ scripts/
│ ├─ deploy.sh
│ └─ test.py
└─ requirements.txt
Настройка CI/CD для Termux
Самый простой способ – использовать облачные CI, которые могут запускать контейнеры с Android‑эмулятором или напрямую выполнять SSH‑команды на устройстве.
Вариант 1: GitHub Actions + SSH
Создайте файл .github/workflows/android.yml:
name: Deploy to Termux
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up SSH
uses: webfactory/ssh-agent@v0.5.4
with:
ssh-private-key: ${{ secrets.TERMUX_SSH_KEY }}
- name: Transfer scripts
run: |
rsync -avz --exclude='.git*' ./ user@android-device:/data/data/com.termux/files/home/my-termux-project/
- name: Run deployment script
run: |
ssh user@android-device 'cd ~/my-termux-project && ./scripts/deploy.sh'
В secrets.TERMUX_SSH_KEY храните закрытый SSH‑ключ, а на Android‑устройстве в Termux запустите sshd и добавьте публичный ключ в ~/.ssh/authorized_keys.
Вариант 2: GitLab CI + Docker
Если требуется полностью изолированное окружение, можно собрать Docker‑образ, содержащий Termux‑пакеты (например, termux/termux-docker), и запускать его в GitLab Runner.
image: termux/termux-docker:latest
stages:
- test
- deploy
test_job:
stage: test
script:
- apt-get update && apt-get install -y python3-pip
- pip3 install -r requirements.txt
- python3 scripts/test.py
deploy_job:
stage: deploy
script:
- ./scripts/deploy.sh
only:
- main
Автоматическое тестирование скриптов
Тесты можно писать на любом языке, поддерживаемом в Termux. Пример простого теста на pytest для Python‑скрипта:
# requirements.txt
pytest
# test_example.py
def test_sum():
assert 1 + 1 == 2
В CI‑pipeline добавьте шаг, который устанавливает зависимости и запускает pytest:
- name: Install dependencies
run: pip3 install -r requirements.txt
- name: Run tests
run: pytest
Лучшие практики
- Разделяйте окружения. Для продакшн‑деплоя используйте отдельный пользователь в Termux, чтобы ограничить доступ к системным файлам.
- Храните секреты безопасно. Используйте переменные окружения CI и сервисы Secret Management (GitHub Secrets, GitLab CI variables).
- Логируйте процессы. Перенаправляйте вывод скриптов в файлы
log.txtи отправляйте их в артефакты CI. - Обновляйте пакеты. Регулярно запускайте
pkg update && pkg upgrade -yв планировщике (cron), чтобы избежать уязвимостей.
Заключение
Интеграция Termux с современными системами CI/CD открывает возможности автоматизированного деплоя и тестирования прямо с мобильного устройства. Выбирайте подходящий подход – SSH‑доступ к реальному терминалу или контейнеризированный runner – и следуйте лучшим практикам безопасности.
Компания RybinskLab предлагает профессиональные услуги по настройке CI/CD процессов, адаптации Termux под ваши бизнес‑задачи и обучению команд эффективному использованию мобильных Linux‑сред.