Showing posts with label YAML. Show all posts
Showing posts with label YAML. Show all posts

Friday, October 31, 2025

How to Convert StringList Parameters to PowerShell Arrays in Azure DevOps YAML Pipelines

Azure DevOps YAML pipelines provide a well-established, code-based approach to defining CI/CD workflows as code. When working with YAML pipelines, various types of parameters can be used to pass input values into the pipeline. These parameters can be referenced in later stages for multiple purposes, such as structuring the pipeline, adding conditions, or controlling task behavior.

In this blog, we’ll learn how to use StringList parameters in a PowerShell task within a YAML pipeline.

Pre-requites: Experience with Azure DevOps YAML pipelines

Wednesday, July 30, 2025

Automate PagerDuty Maintenance Windows with Azure DevOps

Reliable notifications, scheduled escalations, and effective on-call management are essential for operations teams to quickly identify and address issues. PagerDuty is a platform that provides all of these capabilities, enabling teams to maintain high reliability and reduce operational noise.When working with any operations platform, reliability is key to avoiding unnecessary alerts or actions. For example, during a scheduled system update, creating a maintenance window in PagerDuty can prevent false alarms triggered by expected changes.

In this blog, we'll discuss how to create a PagerDuty maintenance window using an Azure DevOps pipeline. By adding this step to your deployment process, you can automatically start a maintenance window during system updates, improving alert accuracy and reducing manual overhead.

Saturday, July 5, 2025

Using StringList Parameters in Azure DevOps Pipelines

Azure DevOps YAML pipelines now support the stringList parameter type, which allows you to present multiple selectable options as checkboxes in the pipeline UI.

This blog explains a pipeline that uses a stringList parameter with three values: dev, qa, and prod. After adding the region parameter as a stringList, the pipeline looks similar to the image below.

Sunday, June 22, 2025

Exploring the Full YAML Pipeline View in Azure DevOps

Azure DevOps YAML pipelines can be created using reusable YAML templates that help define parts of the pipeline as modules. By using templates, we can create shorter YAML pipelines and avoid duplication. However, debugging a YAML pipeline with templates is not easy, as we are unable to view the full, expanded pipeline easily. Azure DevOps now supports a new feature that allows us to see the full YAML pipeline of a pipeline run. In this blog post we are going to learn how to navigate to the full YAML pipeline view of the YAML pipeline that uses templates.

Pre-requisites:

  • Azure DevOps YAML pipeline that uses templates

Tuesday, April 29, 2025

Getting Started with Elastic Cloud on Kubernetes

In the modern DevOps world, ELK (Elasticsearch, Logstash, and Kibana) plays a crucial role by enabling the search, analysis, and visualization of large data sets. These capabilities are essential for troubleshooting issues, gaining insights, and ensuring the security of systems.

There are several deployment options for the ELK Stack, depending on a team's requirements and the desired level of infrastructure management. One of the deployment options is Elastic Cloud on Kubernetes (ECK), an official Kubernetes Operator provided by Elastic. Elastic Cloud on Kubernetes simplifies the deployment and management of Elastic Stack components within Kubernetes clusters.

This blog explains the process of installing Elastic Cloud on Kubernetes on an Azure Kubernetes Service (AKS) cluster using YAML templates.

Wednesday, February 26, 2025

Conditional Variable Assignment in Azure DevOps Pipelines

Azure DevOps pipeline expression functions enable the creation of powerful Azure DevOps YAML pipelines to achieve various advanced automation needs for build and deployment purposes. This blog explains how to use the if condition with pipeline variable values.

In an Azure DevOps YAML pipeline, a variable if condition can be defined as follow

iif(condition, the_value_returns_when_condition_true, the_value_returns_when_condition_false) 

Friday, December 20, 2024

Working with Unskippable Stages in Azure DevOps

Azure DevOps pipelines have several stages, and we can use these stages to fulfill various specific automation requirements. However, there can be stages that should not be skipped during the deployment process for any reason. For example, some organizations may have a policy that it is mandatory to run automated tests before deployment, or it is mandatory to run a security scan stage. By default, Azure DevOps allows its users to skip stages when initiating a new pipeline run. Now, Azure DevOps has introduced a new property that can be used with YAML pipelines to disable the option to skip stages during the pipeline creation.

Pre-requisites:

Azure DevOps YAML pipeline with multiple stages

Wednesday, November 20, 2024

Using Azure DevOps UI to Enable Detailed Pipeline Logs

In Azure DevOps YAML pipelines, detailed logs can be enabled by setting the system.debug value to true. This enables verbose logging, providing additional details in the logs, such as task inputs/outputs, agent setup details, and more descriptive error messages.

Further, Azure DevOps provides a UI feature to enable detailed logs before running a pipeline. To enable detailed logging, follow these steps.

Wednesday, October 9, 2024

Optimizing CI/CD Pipelines by Looping Jobs with Dependencies in YAML

This blog explains how to create multiple jobs using an array and define a final job that depends on the previous loop jobs.

The following is the first YAML template file ( deploystage.yaml) with stages. Under the jobs section, it includes two templates. The first template is called within a loop, creating multiple jobs. 

Wednesday, September 11, 2024

Enabling Manual Triggers for Azure DevOps Pipeline Stages

Azure DevOps pipeline stages now support manual triggers, allowing for more flexibility. There are situations where some stages of a pipeline should run automatically, while others may require manual intervention. This blog explains how to configure a manual trigger for Azure DevOps pipeline stages.

Pre-requisites: Azure DevOps YAML Pipeline

To enable a manual trigger for a specific stage, include the trigger: manual option in the pipeline's YAML definition. Below is an example pipeline demonstrating how to configure a manual trigger for a stage.

Sunday, May 26, 2024

Run YAML Pipeline Stages Based on Dynamic Variable Values

YAML pipeline conditions can be utilized to generate pipelines that meet various criteria, such as dependencies between stages and determining whether a stage should be run or not. In this blog post, we will learn how to run stages based on dynamically generated variables.

Pre-requisites: Azure DevOps Account

Monday, May 20, 2024

Share Dynamic Variables Between Azure DevOps Stages

This blog post explains how to generate dynamic variables while running Azure DevOps tasks and how to utilize them in subsequent tasks in dependent stage.

Prerequisites: Azure DevOps account

The following YAML pipeline consist with two stages called GenerateGuid and PrintGUID

1. Two GUIDs are generated within Job1 in GenerateGuid stage and are designated as output variables using the script below. 'demovariable01' is the dynamic variable name.           

Saturday, February 3, 2024

Share Dynamic Variables Between Azure DevOps Jobs

Azure DevOps pipelines can be defined with multiple jobs based on the final result to be achieved and specific requirements. There may arise situations where variable values need to be dynamically generated within one pipeline job and utilized in another subsequent job. This blog explains the process of achieving such functionality.

Prerequisites: Azure DevOps account

Sunday, January 21, 2024

Multi configuration build with GitHub Action Matrices

Testing is a crucial part of software development, and there are several kinds of testing performed by software development teams. Configuration testing is one type of testing that verifies the performance of a system under different configurations. This blog explains how to use GitHub Actions Matrices to build the code with different configurations.

GitHub actions matrices allow to use of variables in a single job definition to create multiple jobs with different configurations.