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 |
| 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 |
| 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 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 |