TGViewer
DevOps DevOps @i_devops · 8.82K subscribers
Post #3586 1.48K
🔥 Как ускорить GitHub Actions на 40% и платить меньше

CI - это не место для медлительности. Особенно когда билд идёт 15 минут, а запусков в день сотни. Сейчас разберём, как оптимизировать GitHub Actions: быстрее, дешевле, эффективнее.


🔹 1. Используйте actions/cache правильно
Загрузка и компиляция зависимостей одно из самых дорогих мест. Добавьте кэширование для npm, pip, go mod, docker layers. Пример для Node.js:


- uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-


⚠️ Не кэшируйте build-артефакты, которые зависят от среды (OS, runner version) - это приведёт к нестабильности.


🔹 2. Job matrix + fail-fast: false = контроль над параллелизмом
Matrix позволяет запускать тесты параллельно (например, разные версии Python), а fail-fast: false не останавливает все джобы при первом фейле.


strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.9, 3.10]



🔹 3. Разделяйте пайплайн на reusable workflows
Выносите повторяющуюся логику в .github/workflows/reusable.yml и вызывайте с параметрами. Это уменьшает дублирование и ускоряет поддержку.


- uses: ./.github/workflows/reusable.yml
with:
env: staging



🔹 4. Используйте self-hosted runners, если билд тяжёлый
Если у вас сборка Docker-образов весит десятки минут - дешевле и быстрее поднять свои раннеры в EC2 или Kubernetes (особенно с GPU или кастомной средой).

📌 Попробуйте actions-runner-controller для Kubernetes:
https://github.com/actions/actions-runner-controller


🔹 5. Откажитесь от setup-* при каждом запуске
setup-node, setup-go, setup-java - удобны, но каждый раз качают и устанавливают SDK. Замените на preinstalled версии в раннерах или кэшируйте вручную.


✅ Вывод:
Оптимизация GitHub Actions - это про кэш, параллельность и минимизацию накладных расходов. Даже простые изменения могут ускорить пайплайн в 2–3 раза. А главное - вы перестаёте платить за простой.


🔥 Ресурсы:
- Официальная дока по кэшу https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows

📲 Мы в MAX

Подпишись 👉@i_DevOps
  • 👍 3
More from @i_devops
  1. Oct 1, 2026🌟 GitHub Actions для Terraform 🌟 Если вы используете Terraform и хотите интегрировать ег…
  2. Sep 30, 2026GitOps-практики: развёртываем сервис через ArgoCD Классический CI/CD запускает деплой. Но…
  3. Sep 30, 2026Kubefirst Платформа с открытым исходным кодом Kubefirst Это полностью автоматизированная и…
  4. Sep 30, 202622 октября Kubernetes-сообщество встречается офлайн в Москве! Кому будет интересна конфере…
  5. Sep 30, 2026🔥 Elasticsearch или PostgreSQL: зачем платить за сложность? В DevOps-сообществе тренд «пр…
  6. Sep 28, 2026Проектирование CI CD. DevOps умеешь? Не каждый DevOps инженер умеет проектировать ci cd ко…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →