DEV Community

Cover image for The Art of Iteration: Starting the Cycle
Arindam Mitra
Arindam Mitra

Posted on

2

The Art of Iteration: Starting the Cycle

Greetings my fellow Technology Advocates and Specialists.

This is the Chapter #1 of my Mastering Loops in Azure DevOps Series.

In this Session, I will walk you through The Art of Iteration: Starting the Cycle.

This is a quick start guide to introduce the topic and how it is relevant to the real world.

IMPORTANT NOTE:-

The YAML Pipeline is tested on WINDOWS BUILD AGENT Only!!!

REQUIREMENTS:-
  1. Azure Subscription.
  2. Azure DevOps Organisation and Project.
  3. Service Principal with Required RBAC (Contributor) applied on Subscription or Resource Group(s).
  4. Azure Resource Manager Service Connection in Azure DevOps.
CODE REPOSITORY:-



HOW DOES MY CODE PLACEHOLDER LOOKS LIKE:-:-
Image description
MILLION DOLLAR QUESTION:-
Question: Can we use "Loop" in Azure Devops YAML Pipeline ?
Answer: YES
HOW ?
Concise summary follows below:-
1.) We can use "Loop" in Azure Devops YAML Pipeline by using the "each" keyword.
2.) We can use the "each" keyword to loop through a) Parameters with the type as b) Object.
3.) Additionally, you can iterate through Nested elements within an Object.
EXAMPLE:-
PIPELINE CODE SNIPPET:-
AZURE DEVOPS YAML PIPELINE (azure-pipelines-Leverage-Loops-For-Automation-Initial-Test.yml):-
trigger:
  none

######################
#DECLARE PARAMETERS:-
######################
parameters:
- name: RGNAME
  displayName: Please Provide the Resource Group Name:-
  type: object
  default: [AMRG001,AMRG002,AMRG003]

######################
#DECLARE VARIABLES:-
######################
variables:
  BuildAgent: windows-latest

#########################
# Declare Build Agents:-
#########################
pool:
  vmImage: $(BuildAgent)

###################
# Declare Stages:-
###################
stages:
  - ${{ each rg in parameters.RGNAME }}:
    - stage: CREATE_${{ rg }}
      jobs:
        - job: CreateResourceGroup
          steps:
            - script: echo "Creating "${{ rg }}""

Enter fullscreen mode Exit fullscreen mode
EXPLANATION:-

I.) Declare "Parameter" of type "Object". In this example, I have declared 3 values (Resource Group Names) as an array.

######################
#DECLARE PARAMETERS:-
######################
parameters:
- name: RGNAME
  displayName: Please Provide the Resource Group Name:-
  type: object
  default: [AMRG001,AMRG002,AMRG003]
Enter fullscreen mode Exit fullscreen mode

II.) Declare "Each" at beginning of the Pipeline stage. The "rg" variable stores all the values that the "each" keyword iterates over in the parameter of type object.

stages:
  - ${{ each rg in parameters.RGNAME }}:
Enter fullscreen mode Exit fullscreen mode

III.) As there are 3 values declared in "Parameter" of type "Object", there will be 3 STAGES CREATED.

IV.) Name of each stage will be one of iterated value from the array declared in "Parameter" of type "Object".

- stage: CREATE_${{ rg }}
Enter fullscreen mode Exit fullscreen mode

V.) Finally, each stage displays the Value in the console.

steps:
            - script: echo "Creating "${{ rg }}""
Enter fullscreen mode Exit fullscreen mode
OUTPUT OF EXAMPLE:-
1. As in the example, there were 3 values declared in "Parameter" of type "Object", hence 3 STAGES got created.
Image description
2. Name of each stage is the iterated value from the array declared in "Parameter" of type "Object".
Image description
3. Each stage displays the Value in the console.
STAGE #1: CREATE_AMRG001
Image description
STAGE #2: CREATE_AMRG002
Image description
STAGE #3: CREATE_AMRG003
Image description

Hope You Enjoyed the Session!!!

Stay Safe | Keep Learning | Spread Knowledge

Hot sauce if you're wrong - web dev trivia for staff engineers

Hot sauce if you're wrong ยท web dev trivia for staff engineers (Chris vs Jeremy, Leet Heat S1.E4)

  • Shipping Fast: Test your knowledge of deployment strategies and techniques
  • Authentication: Prove you know your OAuth from your JWT
  • CSS: Demonstrate your styling expertise under pressure
  • Acronyms: Decode the alphabet soup of web development
  • Accessibility: Show your commitment to building for everyone

Contestants must answer rapid-fire questions across the full stack of modern web development. Get it right, earn points. Get it wrong? The spice level goes up!

Watch Video ๐ŸŒถ๏ธ๐Ÿ”ฅ

Top comments (0)

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

๐Ÿ‘‹ Kindness is contagious

If this article connected with you, consider tapping โค๏ธ or leaving a brief comment to share your thoughts!

Okay