15 промтов для CI/CD: GitHub Actions, GitLab CI и ArgoCD — от новичка до эксперта

Введение

CI/CD (Continuous Integration / Continuous Delivery) — это фундамент современной DevOps-культуры. Каждый день инженеры пишут пайплайны для GitHub Actions, GitLab CI и ArgoCD, но часто тратят часы на синтаксис и отладку. Здесь на помощь приходят промты — готовые шаблоны запросов к AI, которые ускоряют разработку в 10 раз. В этой статье я собрал 15 промтов, разбитых на три уровня сложности: базовые, продвинутые и экспертные. Каждый промт сопровождается задачей, текстом запроса и примером результата. Вы узнаете, как автоматизировать сборку, тестирование, деплой и управление конфигурациями, используя только текстовые команды.

Базовые промты (уровень 1–5)

1. Генерация простого пайплайна для GitHub Actions

Задача: Создать workflow для сборки Node.js приложения с запуском тестов.
Промт: "Напиши GitHub Actions workflow для Node.js (версия 18), который устанавливает зависимости, запускает тесты и собирает production-сборку. Используй Ubuntu latest и кеширование node_modules."
Пример результата:

name: Node.js CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '18'
          cache: 'npm'
      - run: npm ci
      - run: npm test
      - run: npm run build

2. GitLab CI: базовый пайплайн с Docker-образом

Задача: Написать .gitlab-ci.yml для Python-приложения.
Промт: "Создай GitLab CI пайплайн для Python 3.11 с тестированием через pytest и сборкой Docker-образа. Укажи этапы: test, build, deploy."
Пример результата:

stages:
  - test
  - build
  - deploy

test:
  stage: test
  image: python:3.11
  script:
    - pip install -r requirements.txt
    - pytest

build:
  stage: build
  image: docker:latest
  services:
    - docker:dind
  script:
    - docker build -t my-app:$CI_COMMIT_SHA .

3. ArgoCD: простой Application манифест

Задача: Создать ArgoCD Application для деплоя из GitHub-репозитория.
Промт: "Напиши ArgoCD Application манифест, который разворачивает приложение из публичного репозитория https://github.com/example/my-app в namespace production, синхронизация вручную."
Пример результата:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
spec:
  destination:
    namespace: production
    server: https://kubernetes.default.svc
  source:
    repoURL: https://github.com/example/my-app
    targetRevision: HEAD
    path: k8s
  syncPolicy:
    automated: {}

4. GitHub Actions: деплой на VPS по SSH

Задача: Написать workflow для деплоя статического сайта на сервер.
Промт: "Создай GitHub Actions workflow для деплоя HTML-сайта на VPS через rsync по SSH. Используй secrets для SSH_KEY и HOST."
Пример результата:

name: Deploy to VPS
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Rsync files
        uses: burnett01/rsync-deployments@6.0
        with:
          switches: -avz --delete
          path: ./
          remote_path: /var/www/html
          remote_host: ${{ secrets.HOST }}
          remote_user: ubuntu
          remote_key: ${{ secrets.SSH_KEY }}

5. GitLab CI: автоматическая публикация в Docker Hub

Задача: Настроить пайплайн для пуша Docker-образа в реестр.
Промт: "Добавь в GitLab CI этап publish, который логинится в Docker Hub (используя переменные CI_REGISTRY_USER и CI_REGISTRY_PASSWORD) и пушит образ с тегом latest."
Пример результата:

publish:
  stage: deploy
  image: docker:latest
  services:
    - docker:dind
  script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
    - docker push my-app:latest
  only:
    - main

Продвинутые промты (уровень 6–10)

6. GitHub Actions: матричное тестирование

Задача: Запустить тесты на нескольких версиях Node.js.
Промт: "Создай матричный workflow для GitHub Actions, который тестирует приложение на Node.js 16, 18 и 20. Используй стратегию matrix с node-version."
Пример результата:

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [16, 18, 20]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
      - run: npm test

7. GitLab CI: динамические окружения

Задача: Создать временное окружение для каждой ветки.
Промт: "Настрой GitLab CI для автоматического развёртывания review-окружений на Kubernetes при создании merge request. Используй review_apps и environment name на основе ветки."
Пример результата:

deploy_review:
  stage: deploy
  script:
    - kubectl apply -f k8s/
  environment:
    name: review/$CI_COMMIT_REF_SLUG
    on_stop: stop_review
  only:
    - merge_requests

8. ArgoCD: синхронизация с Helm-чартами

Задача: Использовать Helm-чарт для деплоя.
Промт: "Напиши ArgoCD Application, который использует Helm-чарт из репозитория https://github.com/example/helm-charts, с values из values-production.yaml."
Пример результата:

spec:
  source:
    repoURL: https://github.com/example/helm-charts
    targetRevision: main
    path: ./charts/my-app
    helm:
      valueFiles:
        - values-production.yaml

9. GitHub Actions: кеширование зависимостей

Задача: Оптимизировать пайплайн с помощью кеша.
Промт: "Добавь в существующий Node.js workflow кеширование для npm и node_modules с использованием actions/cache и ключом на основе package-lock.json."
Пример результата:

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

10. GitLab CI: параллельные джобы с артефактами

Задача: Разделить тесты на параллельные джобы.
Промт: "Создай GitLab CI с двумя параллельными джобами: lint и test. Джоба test должна ждать lint и передавать артефакты (coverage report) в следующий stage."
Пример результата:

lint:
  stage: test
  script:
    - flake8 .
  artifacts:
    paths:
      - coverage/

Экспертные промты (уровень 11–15)

11. GitHub Actions: кастомный action на Docker

Задача: Создать собственный Docker action для форматирования кода.
Промт: "Напиши GitHub Action на основе Dockerfile, который запускает prettier на всех JS-файлах в репозитории и коммитит изменения. Используй action.yml и entrypoint.sh."
Пример результата:

# action.yml
name: 'Prettier Formatter'
description: 'Auto-format JS files'
runs:
  using: 'docker'
  image: 'Dockerfile'

12. GitLab CI: интеграция с Terraform

Задача: Добавить в пайплайн планирование и применение инфраструктуры.
Промт: "Создай GitLab CI джобы для Terraform: validate, plan, apply. Plan должен запускаться на push, apply — только при merge в main. Используй официальный образ hashicorp/terraform."
Пример результата:

terraform:plan:
  stage: plan
  image: hashicorp/terraform:1.5
  script:
    - terraform init
    - terraform plan
  except:
    - main

13. ArgoCD: синхронизация с несколькими кластерами

Задача: Настроить ApplicationSet для деплоя в dev и prod.
Промт: "Создай ArgoCD ApplicationSet, который разворачивает приложение в двух кластерах: dev и prod, с разными values-файлами для каждого."
Пример результата:

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
spec:
  generators:
    - clusters:
        selector:
          matchLabels:
            environment: dev

14. GitHub Actions: условный деплой по тегам

Задача: Деплоить только при пуше тега semver.
Промт: "Настрой GitHub Actions workflow, который запускает деплой только при пуше тега, соответствующего паттерну v.. (например, v1.2.3). Используй условие на startsWith."
Пример результата:*

on:
  push:
    tags:
      - 'v*'
jobs:
  deploy:
    if: startsWith(github.ref, 'refs/tags/v')

15. GitLab CI: мультистейджинг с ручным подтверждением

Задача: Добавить ручной запуск для production-деплоя.
Промт: "Создай GitLab CI пайплайн с тремя стейджами: build, staging (автоматический), production (ручной, с when: manual). Используй environment для отслеживания."
Пример результата:

production:
  stage: deploy
  script:
    - kubectl apply -f k8s/production
  when: manual
  environment:
    name: production

Заключение

Промты для CI/CD — это не просто шаблоны, а мощный инструмент для ускорения разработки и снижения ошибок. Я показал 15 примеров для GitHub Actions, GitLab CI и ArgoCD — от базовых до экспертных. Используйте их как отправную точку, адаптируйте под свои проекты и не бойтесь экспериментировать. Помните: лучший пайплайн — тот, который работает без вашего участия. ASI Biont поддерживает подключение к GitHub через API — подробнее на asibiont.com/courses. Автоматизируйте с умом!

← Все статьи

Комментарии

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

Как вывести AI-данные на TFT LCD: пошаговое руководство по интеграции ILI9341 и ST7789 с ASI Biont

15 июля 2026

15 промтов для IoT и Embedded: Arduino, ESP32, Raspberry Pi — от сенсоров до MQTT-автоматизации

15 июля 2026

Go и Rust — системное программирование: дуэт для современной инфраструктуры

15 июля 2026

Китайский с нуля: как обучение с ИИ помогло мне освоить тоны, иероглифы и подготовку к HSK без класса

15 июля 2026

Как GPT-5.6 Sol обошла математиков в задаче о длине пути градиентного спуска: прорыв или закономерность?

15 июля 2026

Промышленная автоматизация с AI: интеграция Modbus/TCP (PLC, RTU) с ASI Biont — снижение времени отклика при авариях

15 июля 2026

Управляйте своим здоровьем: глубокое погружение в курс фитнеса, питания и биохакинга на ASI Biont

15 июля 2026

От руды до экономики: почему курс «Геология и горное дело» на Asibiont.com меняет правила игры для специалистов по ресурсам в 2026 году

14 июля 2026

Vibe Coding дошел до жути: новая реклама Anthropic пугает пользователей

14 июля 2026