Введение
CI/CD (Continuous Integration / Continuous Delivery) — это практика автоматизации сборки, тестирования и развёртывания кода. Без неё современная разработка превращается в хаос: ручные деплои, сломанные сборки и бессонные ночи. В 2026 году, когда скорость выхода фич критична, умение быстро настроить пайплайны — навык, который отличает инженера от новичка. Я собрал 12 проверенных промтов, которые использую каждый день для работы с GitHub Actions, GitLab CI и ArgoCD. Эти запросы экономят часы, а не минуты.
1. Генерация базового пайплайна для GitHub Actions
Промт: «Создай рабочий файл GitHub Actions для Node.js приложения. Включи этапы: установка зависимостей, линтинг, юнит-тесты и сборка. Используй actions/setup-node@v4 и кэширование node_modules.»
Пример использования: Вы пишете новое приложение и хотите сразу настроить CI. Вместо копирования из документации или Stack Overflow — даёте промт и получаете готовый YAML.
name: Node.js CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- run: npm ci
- run: npm run lint
- run: npm test
- run: npm run build
Почему это работает: Промт явно указывает версию actions (v4) и флаг кэширования — это ускоряет сборку на 30-50%.
2. Настройка матрицы сборки для нескольких версий
Промт: «Создай матричный пайплайн для Python-проекта, который тестирует код на Python 3.10, 3.11 и 3.12. Используй actions/setup-python@v5 и параллельный запуск тестов с pytest.»
Пример: Разрабатываете библиотеку, которая должна работать на нескольких версиях Python. Матрица запускает 3 параллельных джоба, сокращая время проверки.
name: Python Matrix
on: [push]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- run: pip install -r requirements.txt
- run: pytest
Важно: Промт включает конкретные версии, что исключает ошибки совместимости.
3. Деплой на VPS через SSH в GitLab CI
Промт: «Настрой GitLab CI для деплоя React-приложения на удалённый сервер через SSH. Используй rsync для синхронизации файлов и скрипт для перезапуска nginx. Переменные: SSH_PRIVATE_KEY, VPS_HOST, VPS_USER.»
Пример: Вы используете GitLab, и вам нужно деплоить на VPS без Docker. Этот промт генерирует полный .gitlab-ci.yml.
stages:
- deploy
deploy:
stage: deploy
script:
- apt-get update -qq && apt-get install -y -qq openssh-client rsync
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY"
| tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- rsync -avz --delete ./dist/ $VPS_USER@$VPS_HOST:/var/www/app/
- ssh $VPS_USER@$VPS_HOST "sudo systemctl reload nginx"
only:
- main
Совет: Храните приватный ключ в Settings -> CI/CD -> Variables, никогда не вшивайте в код.
4. Интеграция с Docker и Docker Hub
Промт: «Создай GitHub Actions workflow для сборки Docker-образа и публикации его в Docker Hub при пуше в main. Используй docker/setup-buildx-action@v3 и docker/login-action@v3.»
Пример: Команда переходит на контейнеризацию. Этот промт автоматизирует сборку и публикацию образа.
name: Docker Build and Push
on:
push:
branches: [main]
jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: docker/build-push-action@v5
with:
push: true
tags: myrepo/myapp:latest
Экономия: Ручная сборка занимает 5 минут, промт даёт готовое решение за 10 секунд.
5. Автоматическая проверка кода с линтерами
Промт: «Настрой GitLab CI для запуска eslint и prettier на каждый push. Если линтер находит ошибки — пайплайн должен завершиться с ошибкой.»
Пример: Для поддержания единого стиля кода в команде из 5 человек.
stages:
- lint
lint:
stage: lint
image: node:20
script:
- npm ci
- npx eslint .
- npx prettier --check .
only:
- merge_requests
Результат: Код-ревью становится быстрее, так как базовые ошибки отсеиваются автоматически.
6. Развёртывание в Kubernetes через ArgoCD
Промт: «Создай Application manifest для ArgoCD, который синхронизирует Helm-чарт из Git-репозитория в кластер Kubernetes. Используй syncPolicy с автоматической синхронизацией и prune.»
Пример: Команда использует GitOps — все изменения в инфраструктуре идут через Git.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/myorg/myapp.git
targetRevision: HEAD
path: helm/myapp
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
Важно: Промт включает prune: true — это гарантирует, что удалённые из Git ресурсы будут удалены из кластера.
7. Уведомления в Telegram об успешном деплое
Промт: «Добавь в GitHub Actions шаг для отправки уведомления в Telegram при успешном завершении пайплайна. Используй appleboy/telegram-action@v1.3.»
Пример: Когда деплой завершён, команда получает мгновенное сообщение.
- name: Send Telegram notification
uses: appleboy/telegram-action@v1.3
with:
to: ${{ secrets.TELEGRAM_CHAT_ID }}
token: ${{ secrets.TELEGRAM_TOKEN }}
message: |
✅ Деплой успешен!
Репозиторий: ${{ github.repository }}
Ветка: ${{ github.ref_name }}
Почему это полезно: Не нужно заходить в CI/CD-интерфейс — всё в мессенджере.
8. Кэширование зависимостей для ускорения
Промт: «Настрой кэширование для GitLab CI в Python-проекте. Используй cache:key для virtualenv и pip cache.»
Пример: Пайплайн с 10 джобами может выполняться 20 минут. Кэширование сокращает до 5.
cache:
key: $CI_COMMIT_REF_SLUG
paths:
- .venv/
- ~/.cache/pip/
before_script:
- python -m venv .venv
- source .venv/bin/activate
- pip install -r requirements.txt
Статистика: По данным GitLab, кэширование ускоряет пайплайны в среднем на 40%.
9. Мульти-стейдж сборка для микросервисов
Промт: «Создай GitHub Actions workflow для монорепозитория с микросервисами. Каждый сервис должен собираться только при изменении его директории.»
Пример: В монорепозитории 5 микросервисов. Нет смысла собирать все при изменении одного.
jobs:
changes:
runs-on: ubuntu-latest
outputs:
service1: ${{ steps.filter.outputs.service1 }}
service2: ${{ steps.filter.outputs.service2 }}
steps:
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
service1: 'services/service1/**'
service2: 'services/service2/**'
build-service1:
needs: changes
if: ${{ needs.changes.outputs.service1 == 'true' }}
runs-on: ubuntu-latest
steps:
- run: echo "Building service1"
Экономия: Ресурсы CI не тратятся впустую.
10. Безопасность: сканирование секретов в коде
Промт: «Добавь в GitLab CI проверку на утечку секретов с помощью truffleHog. Сканируй весь репозиторий на каждом пуше.»
Пример: Разработчик случайно закоммитил API-ключ. Пайплайн ловит это до деплоя.
stages:
- security
secret-scan:
stage: security
image: python:3.11
script:
- pip install truffleHog
- trufflehog --regex --entropy=True file://.
allow_failure: false
Важно: allow_failure: false — пайплайн не пройдёт, пока утечка не будет устранена.
11. Canary-деплой через ArgoCD Rollouts
Промт: «Создай Rollout-манифест для ArgoCD с canary-стратегией: 10% трафика на 5 минут, затем 50%, затем 100%.»
Пример: Нужно безопасно выкатить новую версию приложения.
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: my-app
spec:
replicas: 5
strategy:
canary:
steps:
- setWeight: 10
pause: {duration: 5m}
- setWeight: 50
pause: {duration: 5m}
- setWeight: 100
template:
spec:
containers:
- name: app
image: myapp:v2
Результат: Если ошибка появится на 10% трафика — вы успеете откатиться.
12. Автоматический откат при падении метрик
Промт: «Настрой ArgoCD с анализом метрик Prometheus для автоматического отката, если количество 5xx ошибок превышает 1% за 2 минуты.»
Пример: Деплой прошёл, но приложение начало выдавать ошибки. ArgoCD откатывает версию автоматически.
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: error-rate
spec:
metrics:
- name: error-rate
successCondition: result < 0.01
provider:
prometheus:
query: |
sum(rate(http_requests_total{status=~"5.."}[2m])) /
sum(rate(http_requests_total[2m]))
Важно: Это продвинутая техника, используйте её только если у вас настроены мониторинг и алертинг.
Заключение
Эти 12 промтов — моя ежедневная база. Они покрывают 90% задач по CI/CD: от простой сборки до канареечных деплоев с автооткатом. Начните с первых трёх — они дадут быстрый результат. Затем переходите к ArgoCD и безопасности. Помните: хороший пайплайн — это тот, который не требует ручного вмешательства. Делитесь своими промтами в комментариях — возможно, ваш лайфхак станет следующим в моём списке.
Комментарии