Azure DevOps Pipelines YAML for Azure Deployments
This repo is a starting point for using Azure DevOps Pipelines YAML files to automate cloud infrastructure, building source, unit-testing source, deploying source and running external integration tests.
This is a simple Azure DevOps YAML template for Azure DevOps Pipelines
This repository relates to the following activities:
- Deploy Enterprise-scale Architecture Landing Zones
- Deploy Azure cloud infrastructure
- Building source with dotnet build
- Unit-testing source with dotnet tests
- Deploying source to cloud infrastructure
- And running external integration tests
| Path |
Item |
Contents |
| /pipelines |
- |
Contains all scripts, steps, variables and main-pipeline files |
| /pipelines |
rg-PRODUCT-infrastructure.yml |
Main-pipeline file to deploy cloud landing zone, and infrastructure |
| /pipelines |
rg-PRODUCT-src.yml |
Main-pipeline file to build/test/deply src, unit tests and integration tests |
| Path |
Item |
Contents |
| /steps |
- |
Azure DevOps Pipelines step templates. |
| /steps |
func-build-steps.yml |
Azure Functions source code build, and package |
| /steps |
func-deploy-steps.yml |
Azure Functions source code deploy to cloud infrastructure |
| /steps |
xxx-infrastructure-steps.yml |
Azure ESA infrastructure deploy |
| /steps |
integration-test-steps.yml |
Runs external integration tests against src |
| /steps |
logic-infrastructure-steps.yml |
Azure Logic Apps deploy to cloud infrastructure |
| /steps |
landingzone-infrastructure-steps.yml |
Azure ESA Landing Zone deploy |
| /steps |
nuget-deploy-external-steps.yml |
NuGet.org package (.nupkg) deploy |
| /steps |
nuget-deploy-internal-steps.yml |
Private NuGet Feed (.nupkg) deploy |
| /steps |
dotnet-build-steps.yml |
Source code (/src) build with dotnet build |
| /steps |
dotnet-test-steps.yml |
Source code (/src) unit-test with dotnet test |
/pipeline/variables (YAML)
| Path |
Item |
Contents |
| /variables |
- |
Variables (non-secret only) for the Azure landing zone, Azure infrastructure and NuGet packages. |
| /variables |
common.yml |
Common variables to all pipelines |
| /variables |
development.yml |
Development environment-specific variables |
| /variables |
production.yml |
Production environment-specific variables |
/scripts folder (PowerShell)
| Path |
Item |
Contents |
| /scripts |
- |
Contains Azure DevOps Pipelines YAML files, Windows PowerShell scripts, and variables to support Azure DevOps Pipelines YAML Pipelines. |
| /scripts |
System.psm1 |
Powershell helpers for system-level functions |
| /scripts |
Set-Version.ps1 |
Sets version per MAJOR.MINOR.REVISION.BUILD methodology |
| /scripts |
Get-AzureAd.ps1 |
Manual script for getting Azure AD information |
| /scripts |
New-SelfSignedCert.ps1 |
Manual script for generating a self-signed certificate |
Azure Services used in these repositories
| Azure Service |
Purpose |
| Azure Cosmos DB |
NoSQL database where original content as well as processing results are stored. |
| Azure Functions |
Code blocks that analyze the documents stored in the Azure Cosmos DB. |
| Azure Service Bus |
Service bus queues are used as triggers for durable Azure Functions. |
| Azure Storage |
Holds images from articles and hosts the code for the Azure Functions. |
| Azure Logic App |
Cloud workflow orchestrator, includes activities in the form of Connectors |