🚀 Как использовать 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 станет работать в два раза быстрее — без сложных оптимизаций.