Publicera appuppdateringar till Microsoft Store med GitHub Actions

Anmärkning

Appuppdateringsåtgärder via GitHub åtgärder stöds för närvarande endast för kostnadsfria produkter. Betalda produkter kommer att stödjas i en framtida version.

GitHub Actions möjliggör för dig att implementera en robust CI/CD-pipeline för dina Microsoft Store-appar. Genom att automatisera stegen för att skapa, testa och distribuera direkt från kodlagringsplatsen ser du till att varje ändring, oavsett om det är en felkorrigering, funktionsuppdatering eller metadataändring, verifieras och publiceras på ett säkert sätt i Microsoft Store.

Om du vill veta hur du ställer in förutsättningar för appuppdateringsprocessen kan du titta på följande video:

Förutsättningar

  1. Registrera dig som Windows apputvecklare i Partner Center.

  2. Ha en tenant associerad med ditt Partner Center-konto. Det kan du uppnå genom att antingen associera en befintlig Microsoft Entra ID i Partnercenter eller genom att skapa en ny Microsoft Entra ID i Partnercenter.

  3. Registrera ett program i Microsoft Entra ID

  4. Från fliken Microsoft Entra program under sidan Användarhantering i avsnittet Kontoinställningar i Partnercenter lägger du sedan till det Microsoft Entra ID program som representerar den app eller tjänst som du kommer att använda för att få åtkomst till inlämningar för ditt Partnercenter-konto. Se till att du tilldelar den här applikationen rollen Manager.

  5. Appen som du vill uppdatera måste redan ha publicerats och vara live i Microsoft Store.

  6. Nödvändiga ID:t och hemligheter:

    • Klientorganisations-ID (detta är den unika identifieraren för din Microsoft Entra klientorganisation. Gå till https://entra.microsoft.com/. Gå till Azure Active Directory > Översikt. Kopiera värdet "Klientorganisations-ID".)
    • Klient-ID (det här är program-ID:t för appregistreringen som du skapade. I administrationscentret för Entra går du till Azure Active Directory > App registrations. Välj din registrerade app. Kopiera "Program-ID".) för API-åtkomst. I administrationscentret för Entra går du till Azure Active Directory > App registrations. Välj din registrerade app. Kopiera "Program-ID".)
    • Klienthemlighet (detta är ett lösenordsliknande värde som genereras för din appregistrering, som används för säker autentisering. I administrationscentret för Entra går du till Azure Active Directory > App registrations. Välj din registrerade app, gå till Certifikat och Hemligheter. Under "Klienthemligheter" skapar du en ny hemlighet om du inte redan har gjort det. Kopiera värdet omedelbart eftersom det inte visas igen)
    • Säljar-ID (det här är ditt unika utgivar-/säljar-ID i Microsoft Partner Center. Logga in på Partner Center. Gå till Kontoinställningar > Inställningar eller identifierare för utvecklare. Leta efter "Publisher ID" eller "Seller ID".)

    Dessa används som hemligheter i din GitHub lagringsplats.

Konfigurera GitHub Actions för att uppdatera appar i Microsoft Store

Om ditt projekt redan har en GitHub lagringsplats kan du använda den direkt för att automatisera Uppdateringar av Microsoft Store-appar.

I din GitHub-repo går du till Inställningar>Hemligheter och variabler>Åtgärder>Ny hemlighet för repository.

En skärmbild som visar hur du lägger till hemligheter på lagringsplatsen.

Lägg till följande hemligheter:

  • AZURE_AD_APPLICATION_CLIENT_ID
  • AZURE_AD_APPLICATION_SECRET
  • AZURE_AD_TENANT_ID
  • SELLER_ID

Du kan automatisera appuppdateringar med GitHub Actions för båda typerna av appar, MSIX och MSI/EXE. Välj den apptyp som du vill uppdatera nedan:

Lägg till arbetsflödet för GitHub åtgärd för att anropa Microsoft GitHub-åtgärden (microsoft-store-apppublisher) för publicering av paket- och appmetadatauppdateringar som ska lagras.

Om du vill veta hur du automatiserar paket- och metadatauppdateringar med GitHub Actions kan du titta på följande video:

För paketuppdateringar

Under .github/workflows/skapar du AppPackageAutoUpdate.yml med hjälp av det angivna arbetsflödesfragmentet:

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>

När package.msix uppdateras som en del av CI/CD-flödet i versionsmappen utlöses AppPackageAutoUpdate.yml arbetsflödet automatiskt.

För metadatauppdateringar

Innan du publicerar metadatauppdateringar för första gången hämtar du basmetadata-JSON från Partner Center för din appinlämning. Detta säkerställer att du börjar med rätt struktur för din app. Skapa därför ett GitHub Actions arbetsflöde under .github/workflows/GetBaseMetadata.yml med hjälp av det angivna kodfragmentet:

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>

Kör det här arbetsflödet från fliken Åtgärder i din GitHub lagringsplats. Välj relevant arbetsflöde och klicka på Kör arbetsflöde.

En skärmbild som visar arbetsflödeskörningsprocessen för att hämta basmetadata för MSIX-appen.

När det är klart hämtar arbetsflödet metadata för din app i byggloggarna. Kopiera detta och skapa en metadata.json fil i metadatamappen.

Under .github/workflows/skapar du nu AppMetadataAutoUpdate.yml med hjälp av det angivna arbetsflödesfragmentet:

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>

När metadata.json uppdateras som en del av CI/CD-flödet i metadatamappen utlöser det automatiskt AppMetadataAutoUpdate.yml arbetsflödet.

Arbetsflödena ovan gör följande i bakgrunden:

  • Anropa åtgärden GitHub (microsoft-store-apppublisher)
  • Autentisera ditt Microsoft Store Partner Center-konto med hjälp av de hemligheter som du har konfigurerat (klient-ID, klient-ID, klienthemlighet, säljar-ID).
  • Använd Microsoft Store Developer CLI (msstore) för att hämta basmetadata och publicera det uppdaterade paketet eller metadata till Microsoft Store.

Mer information om kommandon finns i Microsoft Store Developer CLI (MSIX).

När ditt GitHub Actions arbetsflöde har slutförts kontrollerar du Microsoft Store för att bekräfta att ändringarna är aktiva. Uppdateringar visas när certifieringsprocessen i Partnercenter har slutförts.

Vi litar på att det här dokumentet kommer att bidra till att avsevärt förbättra effektiviteten och tillförlitligheten i din Microsoft Store-uppdateringsprocess. Genom att följa dessa metodtips kan du effektivisera apppublicering och säkerställa en konsekvent och högkvalitativ versionsupplevelse.