Конвейеры сборки Power BI Project (PBIP) и Azure DevOps для проверки

Объединение интеграции Git Fabric с Azure DevOps позволяет подключить рабочую область к ветви в репозитории Azure DevOps и автоматически синхронизировать их.

Интеграция формата PBIP с Azure DevOps позволяет использовать Azure Pipelines для автоматизации конвейеров непрерывной интеграции и непрерывного развертывания (CI/CD). Эти конвейеры обрабатывают файлы метаданных PBIP и применяют ряд проверок качества к разработке перед развертыванием в рабочей системе.

В этой статье мы сосредоточимся на непрерывной интеграции и о том, как создать конвейер Azure DevOps, который гарантирует рекомендации для всех семантических моделей и отчетов в рабочей области Fabric. Реализуя автоматизированные тесты качества, вы можете предотвратить распространенные ошибки и повысить эффективность команды. Например, этот подход гарантирует, что новые члены команды соответствуют установленным стандартам для семантической модели и разработки отчетов.

Дополнительные сведения об интеграции PBIP и Fabric Git см. в обзоре проекта и интеграции с Fabric Git.

На следующей схеме показан комплексный сценарий с двумя рабочими процессами разработки, которые активируют конвейер Azure DevOps для проверки качества разработки. Конвейер выполняет следующие действия:

Схема рабочего процесса конвейера DevOps.

  1. Пользователь 1 разрабатывается с помощью Power BI Desktop.

    1. Создание ветви из основной функции с помощью VS Code (feature/datasetchange)
    2. Внесение изменений в семантику модели с помощью Power BI Desktop
    3. Фиксация изменений в ветви удаленный репозиторий с помощью VS Code
    4. Создание запроса на вытягивание в основную ветвь с помощью Azure DevOps
  2. В то же время пользователь 2 разрабатывается с помощью другой рабочей области Fabric.

    1. Создание ветви из основной функции с помощью Fabric Git (feature/reportchange)
    2. Внесение изменений в отчет в рабочей области Fabric
    3. Фиксация изменений в ветви удаленный репозиторий с помощью Fabric Git
    4. Создание запроса на вытягивание в основную ветвь с помощью Azure DevOps
  3. Руководитель группы проверяет запросы на вытягивание и синхронизирует изменения в рабочей области команды с помощью Fabric Git.

  4. Запрос на вытягивание активирует конвейер Azure DevOps для проверки семантической модели и качества разработки отчетов.

Примечание.

В этом примере конвейер использует два средства сообщества с открытым кодом, которые позволяют разработчику применять (настраиваемые) правила рекомендаций к метаданным семантических моделей и отчетов в папке Проекта Power BI:

Подход, аналогичный примеру в этой статье, будет применяться к другим средствам сообщества. В этой статье не рассматриваются особенности упомянутых ранее средств сообщества, а также создание и редактирование правил. Подробные сведения об этих разделах см. в приведенных ссылках. Основное внимание в этой статье уделяется процессу создания шлюза качества между системой управления версиями и рабочей областью Fabric. Важно отметить, что упомянутые средства сообщества разрабатываются сторонними участниками, и корпорация Майкрософт не предлагает поддержку или документацию для них.

Шаг 1. Подключение рабочей области Fabric к Azure DevOps

Подключите рабочую область Fabric к Azure DevOps:

Снимок экрана: подключение Git к DevOps.

Когда интеграция Git Fabric завершит экспорт элементов рабочей области, ветвь Azure DevOps будет содержать папку для каждого элемента в рабочей области:

Снимок экрана: ветвь Azure DevOps с папками для различных элементов рабочей области.

Шаг 2. Создание и запуск конвейера Azure DevOps

Чтобы создать новый конвейер, выполните приведенные действия.

  1. На вкладке "Конвейеры" в меню навигации слева выберите "Создать конвейер " :

    Снимок экрана: создание конвейера.

  2. Выберите Azure Repos Git и выберите первый репозиторий (тот же репозиторий, который подключен к рабочей области Fabric):

    Снимок экрана: репозиторий Azure Git, выбранный в качестве источника кода для конвейера.

    Снимок экрана: выбранный репозиторий Demo-ADObuild.

  3. Выберите Простейший конвейер.

    Снимок экрана: выбранный значок начального конвейера.

    В редакторе появится следующий код YAML:

    Снимок экрана: код YAML по умолчанию.

  4. Скопируйте и вставьте код YAML из конвейера режима разработчика Power BI в созданный конвейер:

    Снимок экрана: добавленный код YAML.

    Снимок экрана: вторая часть кода YAML.

  5. Нажмите кнопку "Сохранить и запустить ", чтобы зафиксировать новый конвейер в репозитории.

    Снимок экрана: проверка кода YAML.

    Снимок экрана: выбор сохранения и выполнения.

Azure DevOps запускает конвейер и запускает два задания сборки параллельно:

Снимок экрана: Azure DevOps, на котором выполняется конвейер.

  • Build_Datasets
    • Загружает двоичные файлы табличного редактора.
    • Скачайте правила анализатора рекомендаций по умолчанию. Чтобы настроить правила, добавьте Rules-Dataset.json в корневой каталог репозитория.
    • Переключите все папки элементов семантической модели и запустите правила BPA табличного редактора.
  • Build_Reports
    • Скачайте двоичные файлы инспектора PBI.
    • Скачайте правила инспектора PBI по умолчанию. Чтобы настроить правила, добавьте Rules-Report.json в корневой каталог репозитория.
    • Циклический цикл по всем папкам элементов отчета и запуск правил Инспектора Power BI.

По завершении Azure DevOps создает отчет обо всех предупреждениях и ошибках, которые он столкнулся:

Снимок экрана: отчет об ошибке.

Щелкните ссылку, чтобы открыть более подробное представление двух заданий:

Снимок экрана: кнопка просмотра журнала.

Снимок экрана: развернутый журнал ошибок.

Если отчет или семантическая модель завершается сбоем правила с более высоким уровнем серьезности, сборка завершается ошибкой и выделена ошибка:

Снимок экрана: ошибки средства выделения.

Шаг 3. Определение политик ветви

После запуска конвейера включите политики ветви в главной ветви. Этот шаг гарантирует, что фиксации не могут быть сделаны непосредственно в основную. Запрос на вытягивание всегда требуется для объединения изменений обратно в main, и вы можете настроить конвейер для выполнения с каждым запросом на вытягивание.

  1. Выберите политики ветвей основной>ветви:>

    Снимок экрана: политики ветви.

  2. Настройте созданный конвейер в качестве политики сборки для ветви:

    Снимок экрана: пользовательский интерфейс политики сборки.

    Снимок экрана: вторая часть пользовательского интерфейса политики сборки.

Шаг 4. Создание запроса на вытягивание

Если вы вернеесь в рабочую область Fabric, внесите изменения в одну из отчетов или семантических моделей и попытаейтесь зафиксировать это изменение, вы получите следующую ошибку:

Снимок экрана: ошибка изменения не удалось зафиксировать.

Вы можете вносить изменения только в основную ветвь с помощью запроса на вытягивание. Чтобы создать запрос на вытягивание новой ветви, чтобы внести изменения в:

Создайте ветвь непосредственно из рабочей области Fabric:

  1. В области управления версиями выберите новую ветвь и укажите имя ветви.

    Снимок экрана: экран управления версиями для получения новой ветви.

    Снимок экрана, показывающий, как извлечь новую ветвь.

    Кроме того, можно выбрать разработку в отдельной изолированной рабочей области или в Power BI Desktop. Дополнительные сведения см. в статье "Разработка с помощью другой рабочей области"

  2. Зафиксируйте изменения в этой новой ветви.

    Снимок экрана: фиксация изменений в ветви.

  3. После фиксации создайте запрос на вытягивание в основную ветвь на портале Azure DevOps.

    Снимок экрана: созданный новый запрос на вытягивание.

    Снимок экрана: созданный запрос на вытягивание.

Рабочий процесс запроса на вытягивание не только позволяет проверять и проверять изменения, но и автоматически активировать конвейер.

Снимок экрана: изменение отчета.

Если в одном из правил возникает ошибка высокой серьезности, вы не сможете завершить запрос на вытягивание и объединить изменения обратно в основную ветвь.

Снимок экрана: завершенный запрос на вытягивание.

Дополнительные сведения об интеграции PBIP и Fabric Git см. в записи блога.