CanadaPubSecALZ/.pipelines
Senthuran Sivananthan 60f3b59013
Organize deployment parameters for Hub Networking with NVA (#266)
2022-04-27 17:29:58 -04:00
..
templates Organize deployment parameters for Hub Networking with NVA (#266) 2022-04-27 17:29:58 -04:00
README.md Initial Open Source Release (#6) 2021-09-30 18:08:22 -04:00
demo-approval.yml Initial Open Source Release (#6) 2021-09-30 18:08:22 -04:00
linters.yml Initial Open Source Release (#6) 2021-09-30 18:08:22 -04:00
management-groups.yml Improve `delete-management-groups.bat` script (#224) 2022-03-30 19:00:07 -04:00
platform-connectivity-hub-azfw-policy.yml Migrate Networking configuration to JSON parameters file (#250) 2022-04-20 11:30:10 -04:00
platform-connectivity-hub-azfw.yml Migrate Networking configuration to JSON parameters file (#250) 2022-04-20 11:30:10 -04:00
platform-connectivity-hub-nva.yml Migrate Networking configuration to JSON parameters file (#250) 2022-04-20 11:30:10 -04:00
platform-logging.yml Support logging infrastructure for multiple regions in same subscription (#244) 2022-04-11 11:24:00 -04:00
policy.yml Migrate Logging configuration to JSON parameters file (#236) 2022-04-08 11:31:52 -04:00
pull-request-check.yml Improve archetype parameter JSON schemas (#61) 2021-11-12 11:50:27 -05:00
roles.yml Configurable management group hierarchy (#186) 2022-02-27 16:50:20 -05:00
subscriptions.yml Migrate Logging configuration to JSON parameters file (#236) 2022-04-08 11:31:52 -04:00

README.md

Azure Pipelines

Disclaimer

Copyright (c) Microsoft Corporation.

Licensed under the MIT license.

THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.

Pipeline definitions

The following top-level pipelines are present in the .pipelines/ repository folder:

# Pipeline File CI Name
1 Management Groups management-groups.yml management-groups-ci
2 Platform Logging platform-logging.yml platform-logging-ci
3 Policy policy.yml policy-ci
4 Roles roles.yml roles-ci
5 Networking platform-connectivity-hub-nva.yml platform-connectivity-hub-nva-ci
6 Subscription subscription.yml subscription-ci

These pipelines need to be run in the order specified. For example, the Policy pipeline is dependent on resources deployed by the Platform Logging pipeline. Think of it as a layered approach; once the layer is deployed, it only requires re-running if some configuration at that layer changes.

In the default implementation, the Management Groups, Platform Logging, Policy, and Roles pipelines are run automatically (trigger) whenever a related code change is detected on the main branch. The Networking and Subscription pipelines do not run automatically (no trigger). This behavior can be changed by modifying the corresponding YAML pipeline definition files.

In the default implementation, the Roles and Platform Logging pipelines are run automatically after a successful run of the Management Groups pipeline, and the Policy pipeline is run automatically after a successful run of the Platform Logging pipeline. Again, this behavior can be changed by modifying the corresponding YAML pipeline definition files.

The top-level pipeline definitions are implemented in a modular way, using nested YAML templates defined in the .pipelines/templates/jobs/ and .pipelines/templates/steps/ paths.

Pipeline configuration

The top-level pipelines use configuration values from these locations:

  • environment related configuration values are stored in the config/variables/ path.
  • subscription related configuration values are stored in the config/subscriptions/ path.

Additional information on configuration files is available here:

Additional pipelines

In addition to the top-level pipelines mentioned previously, there are several other pipeline definitions in the ./pipelines path that may be useful.

Check Bicep files

The checks-bicep-compile.yml pipeline can be used to configure a Build Validation branch policy in your repository and validate any Bicep code changes by compiling all Bicep files with built-in linting.

Manual approval

The demo-approval.yml pipeline demonstrates how to implement a manual approval gate/check in your pipeline definition.

Linting source files

The linters.yml pipeline demonstrates using the GitHub SuperLinter project to run a linting process on many common source code file types.