Что такое workflow в контексте CI/CD?

«Что такое workflow в контексте CI/CD?» — вопрос из категории CI/CD, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В CI/CD (например, в GitHub Actions или GitLab CI) workflow — это автоматизированный процесс, описанный в виде кода (обычно YAML), который определяет последовательность задач (jobs), выполняемых при определенных событиях в репозитории.

Основные компоненты:

  • Триггеры (on): События, запускающие workflow (push, pull_request, по расписанию).
  • Задачи (jobs): Независимые единицы выполнения (например, сборка, тестирование, деплой), которые могут выполняться параллельно или последовательно.
  • Шаги (steps): Конкретные команды или действия внутри задачи.
  • Артефакты (artifacts): Файлы, созданные одной задачей и передаваемые другой.

Пример GitHub Actions workflow для сборки и тестирования приложения:

name: CI Pipeline

on: [push]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install dependencies
        run: npm ci

      - name: Run tests
        run: npm test

      - name: Upload test results
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: test-results
          path: ./test-results/

Workflow обеспечивает повторяемость, прозрачность и автоматизацию процессов интеграции и доставки.