15 промтов для CI/CD: GitHub Actions, GitLab CI, ArgoCD

CI/CD пайплайны — это автоматизация сборки, тестирования и деплоя. В 2026 году это стандарт де-факто. Но написание конфигураций вручную — частая причина ошибок. GitHub Actions использует .github/workflows/*.yml, GitLab CI — .gitlab-ci.yml, ArgoCD — Custom Resources. Каждый инструмент имеет свои особенности, и LLM отлично помогают с шаблонами. В этой подборке — 15 промтов для решения типовых задач CI/CD.

Промты для GitHub Actions

1. Сборка и тестирование Python-приложения

Промт: «Создай GitHub Actions workflow для Django: install, pytest, flake8, matrix для Python 3.11 и 3.12, кэширование pip. Файл — test.yml.»
Результат:

name: Test
on:
  push:
    paths: ['**.py']
jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ['3.11', '3.12']
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
          cache: 'pip'
      - run: pip install -r requirements.txt
      - run: pytest

2. Публикация Docker-образа в GHCR

Промт: «Сделай workflow для GitHub Actions: сборка и push Docker образа в GHCR по тегу v, используй build-push-action@v5, логин через docker/login-action@v3, укажи permissions packages: write.»
Результат:*

name: Build and Push
on:
  push:
    tags: ['v*']
jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      packages: write
    steps:
      - uses: actions/checkout@v4
      - uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - uses: docker/build-push-action@v5
        with:
          push: true
          tags: ghcr.io/${{ github.repository }}:${{ github.ref_name }}

3. Кэширование зависимостей

Промт: «Оптимизируй workflow: добавь кэш для node_modules и pip. Используй actions/cache@v3 и встроенный кэш setup-python. Покажи YAML с шагами установки зависимостей для Node.js.»
Результат:

steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-node@v4
    with:
      node-version: 20
      cache: 'npm'
  - run: npm ci

4. Деплой на VPS по SSH

Промт: «Создай workflow для деплоя на VPS через SSH: checkout, appleboy/ssh-action, выполнение git pull и docker-compose up. Используй secrets: HOST, SSH_KEY, USERNAME.»
Результат:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          key: ${{ secrets.SSH_KEY }}
          script: |
            cd /app
            git pull
            docker-compose up -d --build

5. Многоэтапный деплой с окружениями

Промт: «Нужен пайплайн с build, test и deploy на staging и production с защитой. Используй environments и environment protection rules. Deploy на production — вручную.»
Результат:

jobs:
  build: ...
  test: ...
  deploy-staging:
    needs: [build, test]
    environment: staging
    steps: ...
  deploy-prod:
    needs: [deploy-staging]
    environment: production
    steps: ...

Промты для GitLab CI

GitLab CI использует .gitlab-ci.yml и раннеры. Промты ниже помогут с типовыми задачами.

6. Базовый пайплайн с стадиями

Промт: «Создай .gitlab-ci.yml для Java/Maven проекта: стадии compile, test, package. Используй maven:3.9-eclipse-temurin-17. Кэшируй ~/.m2.»
Результат:

stages: [compile, test, package]
compile:
  stage: compile
  image: maven:3.9-eclipse-temurin-17
  script: mvn compile
  cache:
    key: m2
    paths: [~/.m2]

7. Деплой в Kubernetes из GitLab CI

Промт: «Напиши GitLab CI пайплайн: собери Docker образ, запушь в GitLab Registry, затем сквозь kubectl измени образ в Deployment. Используй docker:dind и kubectl:1.28. Назови job-ы build и deploy.»
Результат:

build:
  image: docker:24
  services: [docker:dind]
  script:
    - docker build -t registry.gitlab.com/$CI_PROJECT_PATH:$CI_COMMIT_SHA .
    - docker push registry.gitlab.com/$CI_PROJECT_PATH:$CI_COMMIT_SHA
deploy:
  image: bitnami/kubectl:latest
  script:
    - kubectl set image deployment/myapp myapp=registry.gitlab.com/$CI_PROJECT_PATH:$CI_COMMIT_SHA -n production

8. Использование rules и include

Промт: «Реализуй GitLab CI с include: общий шаблон из другого репозитория, rules для запуска только в main, and only manual job for production.»
Результат:

include:
  - project: ops/cicd-templates
    file: rails.yml
stages: [test, deploy]
deploy-prod:
  stage: deploy
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
      when: manual
  script: |
    echo "Deploy to production"

9. Динамический пайплайн через trigger

Промт: «Сгенерируй дочерний пайплайн из GitLab CI: в родительском пайплайне используй trigger с curl для создания дочерних job-ов, на основе изменений в папке.»
Результат:

# Родительский пайплайн
trigger:
  stage: triggers
  trigger:
    project: my/child-pipeline
    branch: main
    strategy: depend

10. Артефакты и кэш

Промт: «Создай GitLab CI с артефактами для тестовых отчетов и кэша для Composer (PHP). Используй artifacts, cache, image: composer:2.»
Результат:

test:
  image: composer:2
  script: composer install && vendor/bin/phpunit
  artifacts:
    paths: [build/]
    expire_in: 1 week
  cache:
    key: composer
    paths: [vendor/]

Промты для ArgoCD

ArgoCD — GitOps инструмент для Kubernetes. Промты ниже помогут с декларативными настройками.

11. Создание ArgoCD Application

Промт: «Сгенерируй манифест ArgoCD Application для деплоя приложения из GitHub (репозиторий: https://github.com/company/web-app) в namespace production. Используй syncPolicy automated и prune.»
Результат:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: web-app
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/company/web-app
    targetRevision: main
    path: k8s/overlays/production
  destination:
    server: https://kubernetes.default.svc
    namespace: production
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

12. Multi-cluster ApplicationSet

Промт: «Создай ApplicationSet для развертывания во многие кластеры (list of clusters), используй генератор clusters с labels и создай Application для каждого.»
Результат:

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: my-apps
spec:
  generators:
    - clusters:
        selector:
          matchLabels:
            env: staging
  template:
    spec:
      project: default
      source:
        repoURL: https://github.com/company/my-app
        targetRevision: main
        path: overlays/{{name}}
      destination:
        server: https://kubernetes.default.svc
        namespace: app-{{name}}

13. Канареечный деплой с Argo Rollouts

Промт: «Создай Rollout resource для канареечного деплоя с 20% трафика на 5 минут, затем полное обновление. Используй nginx image.»
Результат:

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: my-app
spec:
  strategy:
    canary:
      steps:
        - setWeight: 20
        - pause: {duration: 5m}
  template:
    spec:
      containers:
        - name: app
          image: nginx:1.25

14. Интеграция с GitLab CI: обновление манифестов

Промт: «Напиши скрипт для GitLab CI, который после сборки образ, обновляет тег image в манифестах ArgoCD и коммитит в GitHub. Используй yq и git.»
Результат:

image="registry.gitlab.com/company/app:$CI_COMMIT_SHA"
yq e -i ".spec.template.spec.containers[0].image = \"$image\"" k8s/deployment.yaml
git add k8s/deployment.yaml
git commit -m "Update image tag to $CI_COMMIT_SHA"
git push origin main

15. Откат к предыдущей версии

Промт: «Дай команды ArgoCD CLI для отката приложения к предыдущей версии и объясни, как автоматизировать откат при сбое.»
Результат:

# Просмотр истории
argocd app get my-app --history
# Откат к версии 3
argocd app rollback my-app 3

Сравнение GitHub Actions и GitLab CI

Задача GitHub Actions GitLab CI
Расположение конфига .github/workflows/*.yml .gitlab-ci.yml
Инструменты Actions, runs-on Runner, image
Условия if: в шагах rules: / only: / except:
Секреты Secrets в Settings CI/CD Variables
Матрица strategy.matrix parallel:matrix

Заключение

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

← Все статьи

Комментарии

Читайте также

Интеграция Linode с ИИ-агентом: развертывание и управление облачной инфраструктурой из чата

11 августа 2026

Курс разработки игр на asibiont.com: Unity и Unreal с нуля до публикации в 2026 году

11 августа 2026

HC-SR04 (ultrasonic distance) + ASI Biont: интеграция ультразвукового датчика для автоматизации склада

11 августа 2026

Интеграция сервоприводов с AI-агентом ASI Biont: управление роботом через PCA9685 и PWM

11 августа 2026

SQL Mastery: продвинутый курс SQL для оконных функций, оптимизации запросов и вашей карьеры в области данных в 2026 году

11 августа 2026

Логистика и управление цепями поставок (SCM): курс, который откроет дорогу в профессию мечты — обзор на Asibiont

11 августа 2026

PMP — Project Management Professional (PMI): подготовка с искусственным интеллектом на asibiont.com

10 августа 2026

3D-моделирование в Blender: Освойте 3D-моделирование с ИИ и постройте карьеру в 2026 году

10 августа 2026

Cambridge Lower Secondary Science (0893): как подготовиться к IGCSE через изучение биологии, химии и физики на asibiont.com

10 августа 2026