🚀 Как использовать Linux Parallel для ускорения CI
Если ваш CI-пайплайн работает слишком долго, скорее всего, он выполняет задачи последовательно. Утилита GNU Parallel позволяет запускать несколько команд одновременно, экономя время на сборках, тестах и деплоях.
🧩 Что такое GNU Parallel
GNU Parallel — это инструмент командной строки, который разбивает список задач и выполняет их одновременно на разных ядрах процессора.
Пример:
cat jobs.txt | parallel
Каждая строка в jobs.txt — это отдельная задача, которая выполняется параллельно.
⚙️ Типичные примеры для CI
Допустим, у вас несколько наборов интеграционных тестов:
parallel ::: "pytest tests/api" "pytest tests/db" "pytest tests/ui"
Эта команда запустит все три набора тестов одновременно.
Или соберём несколько Docker-образов за один проход:
parallel docker build -t myapp-{} ./{} ::: frontend backend worker
Почему это удобно для CI/CD
- Уменьшает время сборки и тестов
- Совместимо с GitLab, Jenkins, GitHub Actions
- Не требует дополнительных зависимостей
🧭 Совет
Используйте parallel вместе с кешированием и условными шагами CI — это даст максимальный прирост скорости. Пример для GitLab CI:
build:
script:
- parallel ::: "make build-frontend" "make build-backend"
Так ваш CI/CD станет работать в два раза быстрее — без сложных оптимизаций.