github-actions-templates
Навык William Shobson помогает проектировать GitHub Actions workflows для автоматизированного тестирования, сборки и доставки. В источнике есть отдельные паттерны для test workflow, сборки и публикации Docker image, deployment в Kubernetes и matrix build. Test-паттерн показывает checkout, выбор Node.js через setup-node с кешем npm, установку зависимостей, lint, tests и публикацию coverage. Docker-паттерн использует ghcr.io, permissions contents: read и packages: write, docker login, metadata для тегов по branch, pull request и semver, а также cache-from и cache-to GitHub Actions. Эти примеры дают форму workflow, но команды и версии должны соответствовать реальному репозиторию. Для Kubernetes источник показывает последовательность настройки AWS credentials, обновления kubeconfig, применения k8s-манифестов, ожидания rollout, чтения сервисов, а затем отдельной проверки pods и deployment. Это полезная схема для явного разделения deploy и verify, однако она не предоставляет доступ к кластеру и не знает имён ресурсов конкретного проекта. Matrix-паттерн позволяет сочетать операционные системы с несколькими версиями Python и запускать одну проверку по всем комбинациям. Такой вариант подходит, когда совместимость действительно является целью; добавлять большую матрицу только ради количества запусков источник не требует. В разделе best practices навык рекомендует фиксировать версии actions, а не использовать @latest, кешировать зависимости, держать секреты в secrets, включать status checks, задавать подходящие permissions и выносить повторяемые части в reusable workflows. Для production delivery отдельно упоминаются approval gates, уведомления об ошибках и self-hosted runners для чувствительных сред. Это не означает, что любой из этих элементов нужен каждому проекту: сначала нужно понять triggers, доверенные ветки, окружения, права токена и реальные требования к release path, затем выбрать минимальный паттерн. Безопасность в описанных workflow строится вокруг явной границы между кодом проекта и CI-средой. Секреты не должны попадать в логи, permissions должны быть минимальными, а сторонние actions следует фиксировать на конкретных версиях. Для pull request и fork важно проверить, какие команды запускаются до выдачи write-доступа или доступа к secrets. Docker-публикация требует проверить registry, имена образов и права packages, а Kubernetes deployment — namespace, credentials, rollout и возможность отката. Шаблон помогает не забыть эти места, но не выполняет security review автоматически. Навык также предлагает reusable workflow через workflow_call. Это удобно, когда одинаковые тестовые или build-шаги используются несколькими workflow, но интерфейс inputs и secrets всё равно должен быть небольшим и понятным. Для нескольких окружений можно разделить build, deployment и approval, чтобы staging и production не были случайно одним неразличимым job. Matrix стоит ограничивать поддерживаемыми версиями и ОС, а cache — проверять на корректность ключей и отсутствие использования устаревших артефактов. Практические сценарии карточки — добавить CI для тестов, подготовить Docker build-and-push, оформить Kubernetes rollout, собрать matrix для совместимости или вынести общий процесс в reusable workflow. Ограничение источника простое: это набор production-oriented шаблонов, а не готовая конфигурация для любого проекта. После адаптации нужно проверить YAML, action versions, permissions, secrets, окружения, команды сборки, registry и фактический deployment в самом GitHub Actions. Формулировка production-ready относится к структуре паттерна; она не является доказательством, что конкретный workflow безопасен или успешно доставит приложение без проектной проверки.
Для чего подходит
- Настройка CI/CD workflow
- Сборка Docker и deployment в Kubernetes
- Matrix builds и security scans
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/wshobson/agents/tree/main/plugins/cicd-automation/skills/github-actions-templates