Publicar atualizações de aplicações na Microsoft Store com GitHub Actions

Observação

As operações de atualização de aplicações através das ações do GitHub são atualmente suportadas apenas para produtos gratuitos. Produtos pagos serão suportados numa versão futura.

O GitHub Actions permite-lhe implementar um pipeline robusto de CI/CD para as suas aplicações 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 recurso ou alteração de metadados, seja validada e publicada com segurança na Microsoft Store.

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

Pré-requisito

  1. Registe-se como programador de aplicações Windows no Partner Center.

  2. Tenha um locatário associado à sua conta do Partner Center. Pode conseguir isso associando uma Microsoft Entra ID existente no Partner Center ou criando uma nova Microsoft Entra ID no Partner Center.

  3. Register uma candidatura em Microsoft Entra ID

  4. De seguida, a partir do separador de aplicações Microsoft Entra na página de gestão de utilizadores, na secção de definições de conta do Centro de Parceiros, adicione a aplicação Microsoft Entra ID que representa a aplicação ou serviço que irá usar para aceder a submissões para a sua conta do Centro de Parceiros. Certifique-se de atribuir a este aplicativo a função de gerente.

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

  6. IDs e segredos necessários:

    • ID do Tenant (Este é o identificador único do seu tenant Microsoft Entra. Aceda a https://entra.microsoft.com/. Navegue para Azure Active Directory > Visão geral. Copie o valor do "Tenant ID".)
    • ID do cliente (Este é o ID da aplicação do registo da aplicação que criou. No centro administrativo da Entra, vá ao Azure Active Directory > App registrations. Selecione a sua aplicação registada. Copie o "ID da Aplicação".) para acesso à API. No centro administrativo da Entra, vá para Azure Active Directory > Registros de aplicação. Selecione seu aplicativo registrado. Copie a "ID do aplicativo".)
    • Segredo do Cliente (Este é um valor semelhante a uma palavra-passe gerado para o registo da sua aplicação, usado para autenticação segura. No centro administrativo da Entra, vá ao Azure Active Directory > Registos de Aplicações. Selecione a sua aplicação registada, vá a Certificados e Segredos. Em "Segredos do Cliente", crie um novo segredo se ainda não o tiver feito. Copie o valor imediatamente, pois não será mostrado novamente)
    • ID do Vendedor (Este é o seu identificador único de editor/vendedor no Microsoft Partner Center. Inicie sessão no Centro de Parceiros. Vá às definições da conta > Definições de programador ou Identificadores. Procura por "ID do Editor" ou "ID do Vendedor".)

    Estes serão usados como segredos no teu repositório GitHub.

Configurar GitHub Actions para atualizar aplicações na Microsoft Store

Se o seu projeto já tiver um repositório no GitHub, pode usá-lo diretamente para automatizar atualizações de aplicações da Microsoft Store.

No teu repositório de GitHub, vai a Configurações>Segredos e variáveis>Ações>Novo Segredo do Repositório.

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
  • SELLER_ID

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

Add the GitHub Action Workflow para invocar a ação Microsoft GitHub (microsoft-store-apppublisher) para publicar atualizações de metadados de pacotes e aplicativos na loja.

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

Para atualizações de pacotes

Em .github/workflows/, crie AppPackageAutoUpdate.yml usando o trecho 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 versão, o fluxo de trabalho AppPackageAutoUpdate.yml é acionado automaticamente.

Para atualizações de metadados

Antes de publicar atualizações de metadados pela primeira vez, obtenha o JSON de metadados básicos do Partner Center para o envio do seu aplicativo. Isso garante que você comece com a estrutura correta para seu aplicativo. Assim, crie um fluxo de trabalho GitHub Actions em .github/workflows/GetBaseMetadata.yml usando o excerto 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>

Executa este fluxo de trabalho a partir do separador Ações no teu 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 básicos para o aplicativo MSIX.

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

Agora, em .github/workflows/, crie AppMetadataAutoUpdate.yml usando o trecho 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 é atualizado como parte do fluxo de CI/CD na pasta de metadados, ele aciona 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 que você configurou (ID do Locatário, ID do Cliente, Segredo do Cliente, ID do Vendedor).
  • Use a Microsoft Store Developer CLI (msstore) para obter metadados básicos e publicar o pacote ou metadados atualizados na Microsoft Store.

Para obter mais informações sobre comandos, consulte Microsoft Store Developer CLI (MSIX).

Depois de o seu fluxo de trabalho GitHub Actions ser concluído com sucesso, verifique a Microsoft Store para confirmar que as suas alterações estão ativas. As atualizações aparecerão 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 seu 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.