Публикация обновлений приложений в Microsoft Store с помощью GitHub Actions

Замечание

Операции обновления приложений с помощью действий GitHub в настоящее время поддерживаются только для бесплатных продуктов. Платные продукты будут поддерживаться в будущем выпуске.

GitHub Actions позволяет реализовать надежный конвейер CI/CD для приложений Microsoft Store. Автоматив сборку, тестирование и развертывание непосредственно из репозитория кода, вы гарантируете, что каждое изменение, будь то исправление ошибок, обновление компонентов или изменение метаданных, проверяется и безопасно публикуется в Microsoft Store.

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

Необходимые условия

  1. Зарегистрируйтесь в качестве разработчика приложений Windows в Partner Center.

  2. У вас есть арендатор, связанный с учетной записью Центра партнеров. Это можно сделать, соединяя существующий Microsoft Entra ID в Центре партнеров или создание нового Microsoft Entra ID в Центре партнеров.

  3. Register приложение в Microsoft Entra ID

  4. Затем на вкладке приложений Microsoft Entra на странице управления пользователями в разделе настроек учетной записи Центра партнеров добавьте приложение Microsoft Entra ID, представляющее приложение или службу, которое будет использоваться для доступа к поданным заявкам для учетной записи Центра партнеров. Убедитесь, что этому приложению назначена роль Менеджер.

  5. Приложение, которое вы хотите обновить, должно уже быть опубликовано и доступно в Microsoft Store.

  6. Обязательные идентификаторы и секреты:

    • Идентификатор арендатора (это уникальный идентификатор вашего арендатора Microsoft Entra. Перейдите к https://entra.microsoft.com/. Перейдите в раздел Identity > > Обзор. Скопируйте значение «Tenant ID».)
    • Идентификатор клиента (это идентификатор приложения в регистрации приложения, которую вы создали. В центре администрирования Entra перейдите в раздел Удостоверения > Приложения > Регистрации приложений. Выберите зарегистрированные приложения. Скопируйте идентификатор приложения (клиента).)
    • Секрет клиента (это значение, похожее на пароль, создаваемое при регистрации приложения и используемое для безопасной аутентификации. В центре администрирования Entra перейдите в раздел Удостоверение > Приложения > Регистрация приложений. Выберите зарегистрированное приложение и перейдите в раздел «Сертификаты и секреты». В разделе «Секреты клиента» создайте новый секрет, если вы еще этого не сделали. Сразу скопируйте это значение, так как оно больше не будет отображаться)
    • Идентификатор продавца (это уникальный идентификатор издателя или продавца в Microsoft Partner Center. Войдите в центр Partner Center. Перейдите к параметрам учетной записи > параметры разработчика или идентификаторы. Найдите идентификатор издателя или "Идентификатор продавца".)

    Они будут использоваться в качестве секретов в репозитории GitHub.

Настройка GitHub Actions для обновления приложений в Microsoft Store

Если у проекта уже есть репозиторий GitHub, его можно использовать непосредственно для автоматизации обновлений приложений Microsoft Store.

В вашем репозитории GitHub перейдите к Настройки>Секреты и переменные>Действия>Новый секрет репозитория.

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

Добавьте следующие секреты:

  • AZURE_AD_APPLICATION_CLIENT_ID
  • AZURE_AD_APPLICATION_SECRET
  • AZURE_AD_TENANT_ID
  • SELLER_ID

Обновления приложений можно автоматизировать с помощью GitHub Actions для обоих типов приложений, MSIX и MSI/EXE. Выберите тип приложения, который требуется обновить ниже:

Добавьте GitHub Action Workflow для вызова действия Microsoft GitHub (microsoft-store-apppublisher) для публикации пакетов и обновлений метаданных приложения в магазине.

Чтобы понять, как автоматизировать обновления пакетов и метаданных с помощью GitHub Actions, ознакомьтесь со следующим видео:

Для обновлений пакетов

В разделе github/workflows/создайте AppPackageAutoUpdate.yml с помощью предоставленного фрагмента рабочего процесса:

name: AppPackageAutoUpdate 
 
on: 
  push: 
    paths: 
      - 'release/package.msix' 
 
jobs: 
  build: 
    runs-on: windows-latest 
 
    steps: 
      - name: Checkout repository 
        uses: actions/checkout@v4 
 
      - name: Configure Microsoft Store CLI 
        uses: microsoft/microsoft-store-apppublisher@v1.1 
 
      - name: Reconfigure store credentials 
        run: msstore reconfigure ` 
              --tenantId ${{ secrets.AZURE_AD_TENANT_ID }} ` 
              --sellerId ${{ secrets.SELLER_ID }} ` 
              --clientId ${{ secrets.AZURE_AD_APPLICATION_CLIENT_ID }} ` 
              --clientSecret ${{ secrets.AZURE_AD_APPLICATION_SECRET }} 
 
      - name: Publish App package 
        run: msstore publish '${{ github.workspace }}/release/package.msix' -id <Store product Id>

При обновлении package.msix в рамках потока CI/CD в папке выпуска рабочий процесс AppPackageAutoUpdate.yml активируется автоматически.

Для обновлений метаданных

Прежде чем публиковать обновления метаданных в первый раз, получите базовый JSON метаданных из Центра партнеров для отправки приложения. Это гарантирует, что вы начинаете с правильной структуры приложения. Поэтому создайте рабочий процесс GitHub Actions в разделе .github/workflows/GetBaseMetadata.yml с помощью предоставленного фрагмента кода:

name: GetBaseMetadata 
 
on: 
  workflow_dispatch: 
 
jobs: 
  build: 
    runs-on: windows-latest 
 
    steps: 
    - uses: actions/checkout@v4 
 
    - uses: microsoft/microsoft-store-apppublisher@v1.1 
 
    - name: Configure MSStore CLI 
      run: | 
        msstore reconfigure ` 
          --tenantId ${{ secrets.AZURE_AD_TENANT_ID }} ` 
          --sellerId ${{ secrets.SELLER_ID }} ` 
          --clientId ${{ secrets.AZURE_AD_APPLICATION_CLIENT_ID }} ` 
          --clientSecret ${{ secrets.AZURE_AD_APPLICATION_SECRET }} 
 
    - name: Get base metadata  
      shell: pwsh 
      run: | 
        msstore submission get <Store product Id>

Запустите этот рабочий процесс на вкладке "Действия" в репозитории GitHub. Выберите соответствующий рабочий процесс и нажмите кнопку "Запустить рабочий процесс".

Снимок экрана: процесс выполнения рабочего процесса для получения базовых метаданных для приложения MSIX.

По завершении рабочий процесс получит метаданные приложения в журналах сборки. Скопируйте его и создайте файл metadata.json в папке метаданных.

Теперь в разделе .github/workflows/создайте AppMetadataAutoUpdate.yml с помощью предоставленного фрагмента рабочего процесса:

name: AppMetadataAutoUpdate 
 
on: 
  push: 
    paths: 
      - 'metadata/metadata.json' 
 
jobs: 
  build: 
    runs-on: windows-latest 
 
    steps: 
      - name: Checkout repository 
        uses: actions/checkout@v4 
 
      - name: Configure Microsoft Store CLI 
        uses: microsoft/microsoft-store-apppublisher@v1.1 
 
      - name: Reconfigure store credentials 
        run: msstore reconfigure ` 
              --tenantId ${{ secrets.AZURE_AD_TENANT_ID }} ` 
              --sellerId ${{ secrets.SELLER_ID }} ` 
              --clientId ${{ secrets.AZURE_AD_APPLICATION_CLIENT_ID }} ` 
              --clientSecret ${{ secrets.AZURE_AD_APPLICATION_SECRET }} 
 
      - name: Update metadata 
        run: | 
          $metadata = Get-Content -Raw "${{ github.workspace }}/metadata/metadata.json" 
          msstore submission updateMetadata <Store product Id> $metadata
      - name: Publish to Store 
        run: msstore submission publish <Store product Id>

Когда metadata.json обновляется в рамках потока CI/CD в папке метаданных, он автоматически активирует рабочий процесс AppMetadataAutoUpdate.yml.

Приведенные выше рабочие процессы выполняют следующие действия в фоновом режиме:

  • Запустите действие GitHub (microsoft-store-apppublisher)
  • Проверка подлинности учетной записи Центра партнеров Microsoft Store с помощью настроенных секретов (идентификатор клиента, идентификатор клиента, секрет клиента, идентификатор продавца).
  • Используйте интерфейс командной строки разработчика Microsoft Store (msstore), чтобы получить базовые метаданные и опубликовать обновленный пакет или метаданные в Microsoft Store.

Дополнительные сведения о командах см. в интерфейсе командной строки разработчика Microsoft Store (MSIX).

После успешного завершения рабочего процесса GitHub Actions проверьте Microsoft Store, чтобы убедиться, что изменения опубликованы. Обновления будут отображаться после завершения процесса сертификации в Центре партнеров.

Мы доверяем, что этот документ поможет значительно повысить эффективность и надежность процесса обновления Microsoft Store. Следуя этим рекомендациям, вы можете упростить публикацию приложений и обеспечить согласованный высококачественный выпуск.