Giter Site home page Giter Site logo

microsoft / commercial-marketplace-offer-solution Goto Github PK

View Code? Open in Web Editor NEW
15.0 5.0 7.0 212 KB

This repository provides an easy way to get started on publishing an offer to the Microsoft Commercial Marketplace.

License: MIT License

PowerShell 61.00% Shell 15.00% Python 0.47% Dockerfile 0.43% Bicep 18.00% HCL 5.09%

commercial-marketplace-offer-solution's Introduction

Commercial Marketplace Offer Templates

This repository provides an easy way to get started on publishing an offer to the Microsoft Commercial Marketplace.

Included in this repository are:

  • Azure Application and Azure Virtual Machine offer type templates
  • GitHub actions and starter workflows to help you get started with automation
  • Scripts to help you run common tasks, such as creating a VM image

These templates are designed to be a starting point for your offer and are not intended to be a complete solution. You are free to modify the templates to meet your needs.

Getting Started

Step 1: Create a repository

The easiest way to get started is to use the GitHub Template Repository feature to create a new repository from this template. You can also fork or clone this repository and modify the files to meet your needs.

Step 2: Install Tools

The templates and scripts in this repository use the following tools:

Please refer to the setup scripts for your operating system for easy installation:

Step 3: Associate an Azure AD application with your Partner Center account

The scripts in this repository use the Partner Center API to create and manage offers. To use the scripts, you must first associate an Azure AD application with your Partner Center account. Follow the instructions in the Commercial Marketplace documentation to create an Azure AD application and associate it with your Partner Center account.

Step 4: Modify Offer Template Files

Use the following offer templates to build your own Commercial Marketplace offerings. Each offer template includes a README file that contains instructions on how to build the offer and modify it for your use case.

This offer template demonstrates how to build a solution template Azure Application offer. This offer deploys a Windows Server 2019 VM and runs a custom script extension that writes content to a file. The custom script extension runs a PowerShell script after the VM has been provisioned.

This offer template demonstrates how to create a Windows Server 2019 virtual machine image with Chocolatey and Microsoft Edge installed. The image can then be used to create an Azure Virtual Machine offer.

This offer template demonstrates how to build a solution template Azure Application offer that uses a VM image from a Virtual Machine offer.

Step 5: Create GitHub Workflows

GitHub actions and starter workflows are provided to automate the build, test and publish process for Commercial Marketplace offers.

Before using a workflow or action, create a new actions repository secret (AZURE_CREDENTIALS) with the following:

{
  "clientId": "<Azure AD application client ID>",
  "clientSecret": "<Azure AD application client secret>",
  "subscriptionId": "<Azure subscription ID>",
  "tenantId": "<Azure AD application tenant ID>",
  "resourceManagerEndpointUrl": "https://management.azure.com/"
}

For more information on creating a GitHub actions repository secret, see Creating encrypted secrets for a repository.

To use an action, refer to it as follows in your workflow:

microsoft/commercial-marketplace-offer-solution/.github/actions/[ACTION DIRECTORY]

For example:

steps:
  - name: Build and create/update offer
    uses: microsoft/commercial-marketplace-offer-solution/.github/actions/commercial-marketplace

Refer to the GitHub documentation for more information on using starter workflows.

Future Work and Updates

This repository is still under development. We are working to add more offer templates and scripts for testing and automation.

We have included an example template sync workflow. Create a new GitHub action by copying this file to .github/workflows/. When triggered, this action will create a new Pull Request with the latest changes from the template repository. If the action initially fails, manual merging may be required for the first time. When using the repository, we recommend that the original files included remain unchanged, and that new files are created or copied. This will help reduce the likelihood of future merge issues.

Contribute

Contributions to this repository are welcome. Here's how you can contribute:

  • Submit bugs and help us verify fixes.
  • Submit feature requests and help us implement them.
  • Submit pull requests for bug fixes and features.

Please refer to Contribution Guidelines for more details.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

commercial-marketplace-offer-solution's People

Contributors

alexandrakoller avatar dciborow avatar ongk avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

commercial-marketplace-offer-solution's Issues

Improve naming of 'sample' directory

I am not sure that the name 'sample' works as well once a customer has used the repo as a template. (in my repo, I called this directory 'azure', and that didn't work very well either)

My suggestion would be 'marketplace' (but no strong feelings for it).

Update Images

replace the "R" images with something, and add directions to Power Toys for image resizing.

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.