TGViewer
DevOps DevOps @i_devops · 8.82K subscribers
Post #3601 1.76K
🚀 Ускоряем CI/CD пайплайны на GitHub Actions: кеширование по-взрослому

CI тормозит? Пайплайн гоняет npm install по 5 минут? Пора серьёзно поговорить о кешировании в GitHub Actions.


GitHub Actions — мощный инструмент, но без кеша даже самый простой билд превращается в черепаху. Разберёмся, как грамотно использовать actions/cache, чтобы выжать максимум скорости.

🔧 Основы кеширования

GitHub предоставляет официальный экшен actions/cache, который позволяет сохранять каталоги между запусками воркфлоу. Ключевое понятие здесь — ключ кеша (cache key).

Пример:


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


Что тут происходит:
- path — папка, которую кешируем (`~/.npm`).
- key — уникальный ключ, зависящий от lock-файла.
- restore-keys — запасной вариант, если точного совпадения ключа нет.

⚡ Трюки для ускорения

1. Разделяй кеш по задачам. Не пихай всё в один архив. Кешируй отдельно npm, node_modules, dist/ — это гибко и эффективно.

2. Для Docker-образов — кешируй слои. Используй BuildKit и флаг --cache-to, --cache-from. Пример:


- name: Build Docker image
run: |
docker buildx build \
--cache-from=type=gha \
--cache-to=type=gha,mode=max \
-t my-app .


3. Осторожно с ключами. Часто меняющийся ключ = каждый раз новый кеш = медленно. Сделай разумный баланс между стабильностью и свежестью.

4. Тестируй локально. Используй act, чтобы отлаживать воркфлоу на локалке — сэкономишь время и нервы.


✅ Вывод

Кеш в GitHub Actions — не волшебная пуля, но при правильной настройке он может сократить время CI в разы. Следи за размером кеша, обновляй ключи с умом и профилируй пайплайн. И не забывай: кеш — твой друг, пока ты его контролируешь.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
  • 👍 2
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 →