DevOps Инженер | Kubernetes, Docker & CI/CD. SRE Практики, Linux и Cloud. Девопс инфраструктура, автоматизация и Python. IT технологии.
IT и технологии · 19 августа 2026 г.
🚀 Ускоряем CI/CD пайплайны на GitHub Actions: кеширование по-взрослому — 19 августа 2026 г. в 07:03:15.302
🚀 Ускоряем 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 #девопс Подпишись 👉 @i_DevOps

