This project demonstrates a sample Azure Marketplace Managed Application with integrated ARM template testing capabilities. It includes both the application structure and testing framework using the arm-ttk PowerShell module.
- Complete Marketplace Managed Application structure
- Local ARM template testing via Docker
- Automated testing through GitHub Actions
- Sample UI definitions for Marketplace deployment
- Deployment scripts for local testing
These instructions will help you set up the project for development, testing, and marketplace deployment.
- Docker installed on your machine (for local testing)
- GitHub repository with Actions enabled (for CI/CD)
- Azure CLI installed (for deployment)
- Azure subscription with appropriate permissions
-
Create a
.envfile in the root directory with the following variables:AZURE_LOCATION=eastus MANAGED_APP_NAME=storage-account RESOURCE_GROUP_NAME=marketplace-app AZURE_SUBSCRIPTION_ID=your-subscription-id
Note: This solution mounts the azure cli context into the container. Mac to Linux. CLI version mismatch can occur.
-
Navigate to the project root directory.
-
Run the following command to build and test:
docker compose up test --build docker compose up deploy --buildThis will:
- Build a Docker image with the ARM TTK tools
- Mount your
srcdirectory containing ARM templates - Run tests against all JSON files in the mounted directory
- Use the provided access token to authenticate with Azure
- Create necessary Azure resources
- Package the application
- Deploy it as a managed application definition
- Access to Partner Center
- Completed company verification
- Azure Marketplace publisher account
-
Package the Application
- Ensure all templates are in the
srcdirectory - UI definitions are in the
uidirectory - Run tests to verify template validity
- Ensure all templates are in the
-
Create/Update Partner Center Offer
- Navigate to Partner Center
- Create a new Azure Application offer
- Complete the offer setup:
- Offer ID and setup
- Properties and categories
- Marketplace listings
- Preview audience configuration
- Technical configuration
- Plan setup
- Navigate to your existing offer in Partner Center
- Create a new plan or update an existing one
- Upload the new application package
- Update the version number
- Publish the changes
This project is licensed under the MIT License - see the LICENSE file for details.