Giter VIP home page Giter VIP logo

store-submission's Introduction

Microsoft Store Submission

This is a GitHub Action to update EXE and MSI apps in the Microsoft Store.

Quick start

  1. Ensure you meet the prerequisites.

  2. Install the extension.

  3. Obtain and configure your Partner Center credentials.

  4. Add tasks to your release definitions.

Prerequisites

  1. You must have an Azure AD directory, and you must have global administrator permission for the directory. You can create a new Azure AD from Partner Center.

  2. You must associate your Azure AD directory with your Partner Center account to obtain the credentials to allow this extension to access your account and perform actions on your behalf.

  3. The app you want to publish must already exist: this extension can only publish updates to existing applications. You can create your app in Partner Center.

  4. You must have already created at least one submission for your app before you can use the Publish task provided by this extension. If you have not created a submission, the task will fail.

  5. More information and extra prerequisites specific to the API can be found here.

Obtaining your credentials

Your credentials are comprised of three parts: the Azure Tenant ID, the Client ID and the Client secret. Follow these steps to obtain them:

  1. In Partner Center, go to your Account settings, click Manage users, and associate your organization's Partner Center account with your organization's Azure AD directory. For detailed instructions, see Manage account users.

  2. In the Manage users page, click Add Azure AD applications, add the Azure AD application that represents the app or service that you will use to access submissions for your Partner Center account, and assign it the Manager role. If this application already exists in your Azure AD directory, you can select it on the Add Azure AD applications page to add it to your Partner Center account. Otherwise, you can create a new Azure AD application on the Add Azure AD applications page. For more information, see Add and manage Azure AD applications.

  3. Return to the Manage users page, click the name of your Azure AD application to go to the application settings, and copy the Tenant ID and Client ID values.

  4. Click Add new key. On the following screen, copy the Key value, which corresponds to the Client secret. You will not be able to access this info again after you leave this page, so make sure to not lose it. For more information, see the information about managing keys in Add and manage Azure AD applications.

See more details on how to create a new Azure AD application account in your organizaiton's directory and add it to your Partner Center account here.

Obtaining App Metadata

Seller ID

The Seller ID can be found by clicking the gear icon in the upper right corner of the Partner Center and selecting Account Settings. You can find the Seller ID under Legal info

Product ID

The Product ID can be found by navigating to the overview of your application in the Partner Center and copying the Partner Center ID.

Task reference

Microsoft Store Submission

This action allows you to publish your app on the Store by creating a submission in Partner Center.

Sample

name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  start-store-submission:
    runs-on: ubuntu-latest
    steps:
      - name: Configure Store Credentials
        uses: microsoft/store-submission@v1
        with:
          command: configure
          type: win32
          seller-id: ${{ secrets.SELLER_ID }}
          product-id: ${{ secrets.PRODUCT_ID }}
          tenant-id: ${{ secrets.TENANT_ID }}
          client-id: ${{ secrets.CLIENT_ID }}
          client-secret: ${{ secrets.CLIENT_SECRET }}

      - name: Update Draft Submission
        uses: microsoft/store-submission@v1
        with:
          command: update
          product-update: '{"packages":[{"packageUrl":"https://cdn.contoso.us/prod/5.10.1.4420/ContosoIgniteInstallerFull.msi","languages":["en"],"architectures":["X64"],"isSilentInstall":true}]}'

      - name: Publish Submission
        uses: microsoft/store-submission@v1
        with:
          command: publish

store-submission's People

Contributors

azchohfi avatar dependabot[bot] avatar jandedobbeleer avatar microsoft-github-operations[bot] avatar microsoftopensource avatar tejaswi-vinnakota avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

store-submission's Issues

Store submission for Azure DevOps

Is any official task for publishing into Microsoft Store on Azure DevOps and if no, will you consider one? On Azure DevOps is one, which is 2 years without commit and last release according to GitHub is 4 years old.

Free accounts for open source developers?

Publishing to the Microsoft Store requires a paid Microsoft Store developer account.

https://developer.microsoft.com/en-us/microsoft-store/register/

Individual accounts cost approximately $19 USD, and company accounts cost approximately $99 USD.

This cost can easily become a roadblock for developers of free, open source software without a revenue that is developed by passionate hobbyists in their spare time for the public benefit.

Is there any way Microsoft could offer free accounts to open source projects?

Failure with message `Create submission failed, status code Conflict, reason phrase Conflict`

I am attempting to test this action. The step in the workflow file is as follows:

    uses: isaacrlevin/[email protected]
    with:
      tenant-id: ${{ secrets.AZURE_AD_TENANT_ID }}
      client-id: ${{ secrets.AZURE_AD_ClIENT_ID }}
      client-secret: ${{ secrets.AZURE_AD_CLIENT_SECRET }}
      app-id: ${{ secrets.STORE_APP_ID }}
      package-path: ${{ github.workspace }}\build\windows\runner\Release

When attempting to run it, this step fails with the error message in the title. I have tried changing some of the secret values to random incorrect values to see if the error message changes, and indeed, for each change I have tried, inputting the wrong value gives a different and more clear error message telling me what the problem was, but when all values are correct (as far as I am aware), I receive the title message, whose meaning I am unsure of.

What does this error mean, and what might be the root cause?

The resource principal named https://api.store.microsoft.com was not found in the tenant named xxx

The action was configured correctly and stopped working all of a sudden. I already followed the guide again to set up the authentication again, to no avail. I have no idea why this started failing all of a sudden, everything seems correct on my end.

{
  "error": "invalid_resource",
  "error_description": "AADSTS500011: The resource principal named https://api.store.microsoft.com was not found in the tenant named xxxx. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You might have sent your authentication request to the wrong tenant. Trace ID: f1444049-5a5e-4cdf-8162-7ee388e21d00 Correlation ID: 322d3326-7984-4806-aa39-c9acba94be19 Timestamp: 2024-03-05 12:54:51Z",
  "error_codes": [
    500011
  ],
  "timestamp": "2024-03-05 12:54:51Z",
  "trace_id": "f1444049-5a5e-4cdf-8162-7ee388e21d00",
  "correlation_id": "322d3326-7984-4806-aa39-c9acba94be19",
  "error_uri": "https://login.microsoftonline.com/error?code=500011"
}

Failing action https://github.com/JanDeDobbeleer/oh-my-posh/actions/runs/8155912944/job/22294467113

Support for MSIX

currently supports EXE and MSI apps, needs to also support MSIX

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.