Publicando atualizações de aplicativos na Microsoft Store com GitHub Actions

Observação

No momento, há suporte para operações de atualização de aplicativo por meio de ações de GitHub somente para produtos gratuitos. Os produtos pagos terão suporte em uma versão futura.

GitHub Actions permite implementar um pipeline de CI/CD robusto para seus aplicativos da Microsoft Store. Ao automatizar as etapas de compilação, teste e implantação diretamente do repositório de código, você garante que cada alteração, seja uma correção de bug, atualização de recursos ou alteração de metadados, seja validada e publicada com segurança na Microsoft Store.

Para entender como configurar pré-requisitos para o processo de atualização do aplicativo, confira o seguinte vídeo:

Pré-requisito

  1. Registre-se como um desenvolvedor de aplicativos Windows no Partner Center.

  2. Ter um locatário associado à sua conta do Partner Center. Você pode conseguir isso associando um Microsoft Entra ID existente no Partner Center ou criando um novo Microsoft Entra ID no Partner Center.

  3. Register um aplicativo no Microsoft Entra ID

  4. Em seguida, na guia Microsoft Entra aplicativos na página Gerenciamento de usuários na seção Configurações de conta do Partner Center, adicione o aplicativo Microsoft Entra ID que representa o aplicativo ou serviço que você usará para acessar envios para sua conta do Partner Center. Lembre-se de atribuir esse aplicativo à função de Gerenciador.

  5. O aplicativo que você deseja atualizar já deve estar publicado e ativo na Microsoft Store.

  6. IDs e segredos necessários:

    • Identificador do locatário (este é o identificador exclusivo do locatário Microsoft Entra. Vá para https://entra.microsoft.com/. Acesse Azure Active Directory > Visão geral. Copie o valor do Identificador do locatário.)
    • ID do cliente (esta é a ID do aplicativo do registro do aplicativo que você criou. No Centro de administração do Entra, vá para Azure Active Directory > App registrations. Selecione seu aplicativo registrado. Copie a "ID do aplicativo".) para acesso à API. No Centro de Administração do Entra, acesse Azure Active Directory > Registros de Aplicativos. Selecione seu aplicativo registrado. Copie a "ID do aplicativo".)
    • Segredo do cliente (esse é um valor semelhante a senha gerado para o registro do aplicativo, usado para autenticação segura. No Centro de administração do Entra, vá para Azure Active Directory App registrations. Selecione seu aplicativo registrado, vá para Certificados & Segredos. Em "Segredos do cliente", crie um novo segredo se ainda não tiver feito isso. Copie o valor imediatamente, pois ele não será mostrado novamente)
    • ID do Vendedor (este é o identificador exclusivo do publicador/vendedor no Microsoft Partner Center. Entre no Partner Center. Acesse as configurações de Conta > Configurações ou Identificadores do Desenvolvedor. Procure "ID do Publicador" ou "ID do Vendedor".)

    Eles serão usados como segredos em seu repositório GitHub.

Configurando GitHub Actions para atualizar aplicativos na Microsoft Store

Se o projeto já tiver um repositório GitHub, você poderá usá-lo diretamente para automatizar as atualizações de aplicativos da Microsoft Store.

No repositório GitHub, vá para Settings>Secrets and variables>Actions>New Repository Secret.

Uma captura de tela mostrando como adicionar segredos ao repositório.

Adicione os seguintes segredos:

  • AZURE_AD_APPLICATION_CLIENT_ID
  • AZURE_AD_APPLICATION_SECRET
  • AZURE_AD_TENANT_ID (Identificador do Inquilino do Azure AD)
  • SELLER_ID

Você pode automatizar atualizações de aplicativo usando GitHub Actions para ambos os tipos de aplicativos, MSIX e MSI/EXE. Selecione o tipo de aplicativo que você deseja atualizar abaixo:

Adicione o workflow do GitHub Action para invocar a ação do Microsoft GitHub (microsoft-store-apppublisher) para publicar atualizações de pacotes e metadados dos aplicativos na loja.

Para entender como automatizar atualizações de pacotes e metadados usando GitHub Actions, confira o seguinte vídeo:

Para atualizações de pacote

Em .github/fluxos de trabalho/, crie AppPackageAutoUpdate.yml usando o snippet de fluxo de trabalho fornecido:

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>

Quando o package.msix é atualizado como parte do fluxo CI/CD na pasta de lançamento, o fluxo de trabalho AppPackageAutoUpdate.yml é disparado automaticamente.

Para atualizações de metadados

Antes de publicar atualizações de metadados pela primeira vez, obtenha o JSON de metadados base do Partner Center para o envio do aplicativo. Isso garante que você comece com a estrutura correta para seu aplicativo. Portanto, crie um fluxo de trabalho GitHub Actions em .github/fluxos de trabalho/GetBaseMetadata.yml usando o snippet fornecido:

name: GetBaseMetadata 
 
on: 
  workflow_dispatch: 
 
jobs: 
  build: 
    runs-on: windows-latest 
 
    steps: 
    - uses: actions/checkout@v3 
 
    - 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>

Execute esse fluxo de trabalho na guia Ações em seu repositório GitHub. Selecione o fluxo de trabalho relevante e clique em Executar fluxo de trabalho.

Uma captura de tela mostrando o processo de execução do fluxo de trabalho para obter metadados base para o aplicativo MSIX.

Após a conclusão, o fluxo de trabalho obterá os metadados do aplicativo nos logs de build. Copie isso e crie um arquivo metadata.json na pasta de metadados.

Agora, em .github/fluxos de trabalho/, crie AppMetadataAutoUpdate.yml usando o snippet de fluxo de trabalho fornecido:

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>

Quando metadata.json for atualizado como parte do fluxo de CI/CD na pasta de metadados, ele disparará automaticamente o fluxo de trabalho AppMetadataAutoUpdate.yml.

Os fluxos de trabalho acima farão o seguinte em segundo plano:

  • Invocar a ação do GitHub “microsoft-store-apppublisher”
  • Autentique sua conta do Microsoft Store Partner Center usando os segredos configurados (ID do locatário, ID do cliente, segredo do cliente, ID do vendedor).
  • Use a CLI do Desenvolvedor da Microsoft Store (msstore) para obter metadados base e publicar o pacote ou metadados atualizados na Microsoft Store.

Para obter mais informações sobre comandos, consulte a CLI do Desenvolvedor da Microsoft Store (MSIX).

Depois que o fluxo de trabalho do GitHub Actions for concluído com êxito, verifique a Microsoft Store para confirmar se as alterações estão ativas. As atualizações serão exibidas após a conclusão do processo de certificação no Partner Center.

Confiamos que este documento ajudará a melhorar significativamente a eficiência e a confiabilidade do processo de atualização da Microsoft Store. Seguindo essas práticas recomendadas, você pode simplificar a publicação de aplicativos e garantir uma experiência de lançamento consistente e de alta qualidade.