Ця сторінка ще не перекладена українською. Показано англійську версію. Переглянути англійською

Пайплайни

Виконуйте пакетні операції з YAML або JSON файлів пайплайнів для складних робочих процесів автоматизації.

Огляд

Пайплайни дозволяють:

  • Визначати багатокрокові робочі процеси в декларативних YAML або JSON файлах
  • Використовувати підстановку змінних для динамічних значень
  • Коректно обробляти помилки з опцією continue-on-error
  • Перевіряти пайплайни перед виконанням
  • Попередній перегляд у режимі dry-run

Структура пайплайну

Файл пайплайну має чотири поля:

name: My Pipeline            # Обов'язково: назва пайплайну
description: What it does    # Необов'язково: опис
variables:                   # Необов'язково: пари ключ-значення для підстановки
  BUCKET: my-bucket
  PROJECT_ID: "12345"
steps:                       # Обов'язково: список кроків для виконання
  - name: Step Name          # Обов'язково: назва кроку
    command: bucket list     # Обов'язково: підкоманда raps
    continue_on_error: false # Необов'язково: не зупинятися при помилці (за замовчуванням: false)
    condition: "true"        # Необов'язково: пропустити якщо хибне (порожнє, "false", або "0")

command кожного кроку — це рядок підкоманди raps (без префіксу raps). Наприклад, bucket list, object upload my-bucket -f model.rvt, або auth test.

Запуск пайплайнів

# Виконати пайплайн
raps pipeline run pipeline.yaml

# Dry-run (показати команди без виконання)
raps pipeline run pipeline.yaml --dry-run

# Продовжити при помилках
raps pipeline run pipeline.yaml --continue-on-error

# Читати пайплайн з stdin (парситься як YAML)
cat pipeline.yaml | raps pipeline run -

Підстановка змінних

Визначте змінні на початку пайплайну та використовуйте їх у командах кроків за допомогою синтаксису ${VARIABLE}:

name: Upload Pipeline
variables:
  BUCKET: my-project-bucket
  MODEL: building.rvt

steps:
  - name: Create Bucket
    command: "bucket create -k ${BUCKET} -p transient -r US"
    continue_on_error: true

  - name: Upload Model
    command: "object upload ${BUCKET} -f ./models/${MODEL}"

  - name: List Objects
    command: "object list ${BUCKET}"

Підтримуються обидва синтаксиси: ${VAR} та $VAR.

Умовні кроки

Кроки можуть містити поле condition. Якщо умова оцінюється як хибна (порожній рядок, "false", або "0"), крок пропускається:

steps:
  - name: Cleanup Old Data
    command: "bucket delete old-bucket -y"
    condition: "true"          # Цей крок виконується

  - name: Skip This
    command: "bucket list"
    condition: "false"         # Цей крок пропускається

  - name: Also Skipped
    command: "bucket list"
    condition: "0"             # Цей крок пропускається

Обробка помилок

За замовчуванням пайплайн зупиняється при невдачі кроку. Використовуйте continue_on_error для окремих кроків або прапорець --continue-on-error CLI для продовження:

steps:
  - name: Delete Old Bucket
    command: "bucket delete old-bucket -y"
    continue_on_error: true   # Пайплайн продовжується якщо це не вдалось

  - name: Create New Bucket
    command: "bucket create -k new-bucket -p persistent -r US"
    # Пайплайн зупиняється якщо це не вдалось (поведінка за замовчуванням)

Перевірка пайплайнів

Перевірте файл пайплайну на синтаксичні помилки перед запуском:

raps pipeline validate pipeline.yaml

Генерація зразка пайплайну

Створіть стартовий файл пайплайну:

# Згенерувати YAML (за замовчуванням)
raps pipeline sample

# Згенерувати у вказаний файл
raps pipeline sample --out-file my-pipeline.yaml

Повний приклад

Практичний пайплайн для управління життєвим циклом бакету:

name: Bucket Lifecycle
description: Create a bucket, upload files, and clean up

variables:
  BUCKET: raps-demo-bucket
  PROJECT_ID: "12345"

steps:
  - name: Verify Authentication
    command: auth test

  - name: List Existing Buckets
    command: bucket list

  - name: Create Project Bucket
    command: "bucket create -k ${BUCKET} -p transient -r US"
    continue_on_error: true

  - name: Upload Model
    command: "object upload ${BUCKET} -f ./models/building.rvt"

  - name: List Objects
    command: "object list ${BUCKET}"

  - name: Delete Bucket
    command: "bucket delete ${BUCKET} -y"
    continue_on_error: true

Найкращі практики

  1. Використовуйте описові назви кроків — Полегшує читання логів та підсумків
  2. Встановлюйте continue_on_error обдумано — Тільки для некритичних кроків, як очистка
  3. Спочатку використовуйте dry-run — Перевіряйте перед виконанням: --dry-run
  4. Зберігайте секрети в змінних середовища — Ніколи не додавайте облікові дані у файли пайплайнів
  5. Використовуйте змінні для повторюваних значень — Назви бакетів, ID проектів, шляхи до файлів

Наступні кроки