Учебник: автоматизация развертывания решения с помощью GitHub Actions для Microsoft Power Platform
Из этого учебника вы узнаете следующее:
- Создание нового репозитория GitHub
- Создание двух рабочих процессов GitHub с помощью GitHub Actions для Microsoft Power Platform
Рабочие процессы могут автоматически экспортировать ваше приложение (как неуправляемое решение) из среды разработки, создавать артефакт сборки (управляемое решение) и развертывать приложение в производственной среде. В этом руководстве используется решение ALMLab, которое вы создали, и среды, которые вы настроили в предыдущих руководствах.
Связанные руководства: Начало работы и Создание приложения на основе модели.
Создание учетной записи GitHub
Перейдите на сайт https://github.com и нажмите Зарегистрироваться или Начать бесплатную пробную версию (или войдите, если у вас уже есть учетная запись).
После создания учетной записи создайте репозиторий, выбрав Создать репозиторий или Создать.
Вы можете увидеть следующий альтернативный целевой экран:
Создайте новый репозиторий и назовите его 'poweractionslab'. Убедитесь, что вы выбрали Добавить файл README, чтобы инициировать репозиторий, и выберите Создать репозиторий.
Создание нового секрета для аутентификации субъекта-службы
Перейдите в свой репозиторий и нажмите Настройки, затем разверните Секреты, а затем нажмите Действия.
На странице Секреты назовите секрет 'PowerPlatformSPN'. Используйте секрет клиента из регистрации приложения, созданного в Microsoft Entra, и введите его в поле Значение, а затем выберите Добавить секрет. На секрет клиента будут ссылаться в файлах YML, используемых для определения рабочих потоков GitHub позже в этом практическом задании.
Секрет клиента теперь надежно хранится как секрет GitHub.
Создание рабочего процесса для экспорта и распаковки файла решения в новую ветку
Нажмите на Действия, далее нажмите настроить рабочий процесс самостоятельно или нажмите Настроить в поле Простой рабочий процесс под разделом предложено для этого репозитория.
Это запустит новый файл YAML с базовым рабочим процессом, который поможет вам начать работу с действиями GitHub.
Удалите предварительно созданное содержимое, вставьте содержимое из файла export-and-branch-solution-with-spn-auth.yml, а затем переименуйте файл в 'export-and-branch-solution'.yml.
Обновите
<ENVIRONMENTURL>
на URL-адрес среды разработки, из которой вы хотите выполнить экспорт (например:https://poweractionsdev.crm.dynamics.com
).Измените
<APPID>
и<TENANT ID>
, введя свои значениями.Если вы используете учетные данные, вставьте файл export-and-branch-solution.yml вместо содержимого файла export-and-branch-solution-with-spn-auth.yml. Обновите
<USERNAME>
, введя имя пользователя, которое вы используете для подключения к среде.
Совет
Если вы не знакомы с GitHub Actions и хотите узнать больше, ознакомьтесь с официальной документацией по адресу https://docs.github.com/en/actions.
Теперь все готово к фиксации изменений. Выберите Начать фиксацию, введите Создать yml экспорта в поле заголовка, затем добавьте описание (необязательно). Далее нажмите Зафиксировать новый файл.
Поздравляем, вы только что создали свой первый рабочий процесс GitHub, используя следующие действия:
- Кто я: обеспечивает успешное подключение к среде, из которой выполняется экспорт.
- Экспортировать решение: экспортирует файл решения из среды разработки.
- Распаковать решение: Файл решения, экспортируемый с сервера, представляет собой сжатый (zip) файл с консолидированными файлами конфигурации. Эти исходные файлы не подходят для управления исходным кодом, так как они не структурированы, чтобы системы управления исходным кодом могли правильно выполнять дифференциацию файлов и фиксировать изменения, которые вы хотите зафиксировать в системе управления версиями. Вам необходимо "распаковать" файлы решения, чтобы сделать их пригодными для хранения и обработки в системе управления версиями.
- Решение ветви: создает новую ветвь для хранения экспортированного решения.
Тестирование рабочего процесса экспорта и распаковки
Затем проверьте, работает ли рабочий процесс. Перейдите в пункт Действия, Запустить рабочий процесс и выберите Запустить рабочий процесс. Если у вас другое имя решения, не ALMLab, измените значение здесь, но оставьте другие значения как есть.
Через 5–10 секунд рабочий процесс запустится, и вы сможете выбрать выполняемый рабочий процесс для отслеживания хода выполнения.
После завершения рабочего процесса убедитесь, что создана новая ветка с решением, распакованным в папку solutions/ALMLab. Перейдите на вкладку Код и разверните раскрывающийся список ветвей .
Выберите ветвь, созданную действием.
Убедитесь, что папка solutions/ALMLab была создана в новой ветви, затем создайте запрос на вытягивание, чтобы объединить изменения в основную ветвь. Нажмите Внести вклад и в раскрывающемся списке нажмите Открыть запрос на извлечение.
На экране Откройте запрос на вытягивание добавьте заголовок и описание по желанию, затем нажмите Создать запрос на вытягивание.
Экран обновится, и отобразится только что созданный запрос на вытягивание. Когда запрос на вытягивание будет создан, вы увидите подтверждение, сообщающее, что наша ветка не конфликтует с основной веткой. Это подтверждение означает, что изменения могут быть автоматически объединены в основную ветку. Нажмите Объединить запрос на извлечение , а затем нажмите Подтвердить слияние. При желании нажмите «Удалить ветку», чтобы очистить уже несуществующую ветку.
Вернитесь в ветвь по умолчанию (основную ветвь) и убедитесь, что решение теперь доступно и там.
Создайте многоразовый рабочий процесс для создания артефакта сборки и импорта в рабочую среду.
В этом разделе мы создадим дополнительный рабочий процесс, который:
- Создает управляемое решение и публикует его как артефакт GitHub
- Импортирует артефакт сборки в производственную среду
Перейдите к пункту Действия и выберите Создать рабочий процесс.
Выберите настроить рабочий процесс самостоятельно.
Переименуйте заголовок рабочего процесса в "release-solution-to-prod-with-inputs" и скопируйте содержимое из файла release-solution-to-prod-with-inputs.yml и вставьте на экран Изменить новый файл.
Зафиксируйте изменения. Выберите Начать фиксацию, затем добавьте заголовок и описание (необязательно). Далее выберите Зафиксировать новый файл.
Вызов повторно используемого рабочего процесса в событии выпуска
В этом разделе мы будем вызывать многоразовый рабочий процесс в событии выпуска.
Перейдите к пункту Действия и выберите Создать рабочий процесс.
Выберите Настроить рабочий процесс самостоятельно.
Переименуйте заголовок рабочего процесса в "release-action-call" и скопируйте содержимое из файла release-action-call.yml и вставьте на экран Изменить новый файл.
Обновите следующие переменные в новом файле рабочего процесса:
- Обновите
<BUILD_ENVIRONMENT>
с URL-адресом среды сборки, которую вы используете для создания файла управляемого решения. Например:https://poweractionsbuild.crm.dynamics.com
. - Обновите
<PROD_ENVIRONMENT>
, указав URL-адрес производственной среды, в которой вы выполняете развертывание. Например: https://poweractionsprod.crm.dynamics.com. - Обновите
<APP_ID>
, указав идентификатор приложения (клиента), который можно найти в колонке «Регистрации приложений» портала Microsoft Azure, нажав на регистрацию, созданную ранее в этом руководстве. - Обновите
<TENANT_ID>
, указав идентификатор Каталога (клиента), который можно найти в колонке «Регистрации приложений» портала Microsoft Azure, нажав на регистрацию, созданную ранее в этом руководстве.
- Обновите
Зафиксируйте изменения. Выберите Начать фиксацию, затем добавьте заголовок (необязательно) и описание (необязательно). Далее выберите Зафиксировать новый файл.
Тестирование рабочего процесса выпуска в производство
Теперь вы готовы протестировать последний рабочий процесс. Этот рабочий процесс запускается при развертывании новой версии в производственной среде.
Перейдите к пункту Выпуски.
Выберите Черновик новой версии.
Добавьте тег выпуска, заголовок и выберите Опубликовать выпуск.
Выберите Действия для просмотра выполняемого рабочего процесса.
Выберите запущенный рабочий процесс, чтобы просмотреть выполняемые действия.
Дождитесь завершения каждого действия.
После завершения рабочего процесса войдите в свою производственную среду и убедитесь, что решение было развернуто как управляемое решение.
Развертывание обновления и просмотр изменений перед производственным выпуском
Теперь мы протестируем сквозной процесс, а затем посмотрим, как мы можем просматривать и проверять изменения в приложении до его развертывания в производственной среде.
Перейдите к решению ALMLab в среде разработки и выберите Редактировать, или нажмите на отображаемом имени решения.
Выберите и просмотрите таблицу Запрос выходных.
Нажмите + Добавить столбец и создайте новый столбец, как показано на рисунке ниже.
Обновленные значения полей:**
- отображаемое имя: Одобрено
- Тип данных: Да/Нет
Нажмите кнопку Готово.
Щелкните Сохранить таблицу
Вернитесь к своим репозиториям GitHub, на вкладке Действия выберите Запустить рабочий процесс и выберите кнопку Запустить рабочий процесс.
Через 5–10 секунд рабочий процесс запустится, и вы сможете щелкнуть на выполняемом рабочем процессе для отслеживания хода выполнения.
После завершения рабочего процесса перейдите к новой ветви, выбрав Код, затем Ветви.
Выберите ветку, которая была создана расширением сделать вклад, и нажмите Открыть запрос на вытягивание.
Добавьте заголовок (необязательно) и нажмите Создать запрос на вытягивание.
После обновления содержимого нажмите вкладку Файлы изменены.
Обратите внимание, что изменения в решении выделены зеленым, чтобы указать, что этот раздел файла был добавлен по сравнению с тем же файлом в основной ветви.
Вернитесь на вкладку Беседа. Выберите Запросы на вытягивание, а затем выберите ранее созданный запрос на вытягивание.
На странице Запрос на вытягивание выберите Слияние со сжатием, чтобы объединить обновленный файл решения с вашей основной веткой, и при необходимости удалите файл, который теперь объединен с основной.
Следуйте инструкциям в разделе Тестирование выпуска в производственный рабочий процесс, чтобы создать новый выпуск и убедиться, что обновленное решение развернуто в вашей производственной среде.
Поздравляем, вы успешно настроили образец рабочего процесса CI/CD с помощью действий GitHub!
См. также
Автоматизируйте свой рабочий процесс от идея до производства