Assumptions:
- have installed the Azure Pipelines application on the GitHub repository
-
have 2 environments (servers) per application from the mono repository, production (code from the
master
branch) and development (code from thedevelop
branch) -
an application (static application based on the React) will be deployed on the Microsoft Azure Cloud and it will use a storage and a CDN (with it own URL domain)
-
Handle the build and release flows to a mono repository
- Follow the proposed idea
-
Have the pipelines definitions as code (YAML files) inside of the repository on the
.azure-pipelines
- avoid code duplication using the Azure Pipelines Templates
-
Have 2 types of pipeline flows, build and release
-
build - push the build to an auxiliary build branch
-
triggered automatically (CI - continuous integration) by any commit on the
master
ordevelop
branch, or by any pull request created which the target is thedevelop
branch -
triggered manually, to build all the applications or to a single application
-
-
release
- one pipeline per environment and application, triggered by any commit on the auxiliary build branch (CD - continuous deployment)
-
-
Quickstart: Create an organization or project collection | Azure DevOps | Microsoft Docs
-
Azure DevOps Pipelines: Depends On with Conditionals in YAML | Eric L. Anderson
-
Tutorial: Create and deploy your first Azure Resource Manager template | MS Docs
-
Understand the structure and syntax of Azure Resource Manager templates | MS Docs
-
Blazing Fast Distributed CI with Nx | Nrwl
- [GitHub] nrwl/nx-azure-build - Example of setting up distributed Azure build for Nx workspace
-
Azure DevOps YAML build for Mono Repository with multiple projects