Deploying BICEP using Azure DevOps Pipeline

Recently I was more looking into bicep side of things in Azure. And I wanted to deploy the bicep templates using azure DevOps. 😊

I came up with the following workflow to deploy the templates to Azure.

I believe this approach is quite good because

  1. Using the standard approach of build and deploy
  2. I will get to see if there are any errors in bicep files during the build
  3. Saving to artifacts will give the opportunity to go back instantly

Azure DevOps Repository

I will be using a native Azure DevOps repository to hold the bicep code. Feel free to use GitHub also if you prefer.

I have created a new project inside my DevOps organization and uploaded the Bicep code

Build Pipeline

Idea behind this build pipeline is the represent the build stage by compiling the bicep code in to Arm template and will be saving json file inside the artefacts

Following are the steps

Select your azure repository
Select Starter Pipeline
Remove the default code
Enter the new Code as above

Note:  Code is saved in my public GitHub. Head out there are and grab it

My yml file does have 2 tasks

Task 1 – Compiling the bicep template into an arm template using Az PowerShell modules

Task 2 – Saving the converted ARM template into artifacts.

Once all done hit save and exit or you can run the pipeline to make sure everything works. Now let’s move to the deploy component

Release Pipeline

In the release pipeline we will be using the successful built arm template in the above-mentioned phase to deploy it to the Azure. We will be selecting the ARM template from the Artifacts location and will be adding the ARM template deployment job.

Let look at how we can achieve this

Create a new release pipeline
Select an Empty Job

Add new Artefacts and from the drop down select the build pipeline details
Select Jobs
Add a new job and select ARM template deployment
Select the selected job and fill the required details for you AZ subscription. Filled form is below.
Note: When selecting the template section in the form you can hit the 3 dots in In front of the text box and select our artefacts as below

Note: When selecting the template section in the form you can hit the 3 dots in Infront of the text box and select our artefacts as below

Once done you are done with the configurations. Simply you are run the build pipeline and then the release pipeline. Based on the configurations you select your deployment will get completed.

If you have any questions, please comment down below. Will get back to you as soon as possible

5 thoughts on “Deploying BICEP using Azure DevOps Pipeline

  1. Hi.
    You dont need to convert BICEP to ARM json. The Azure resource manager knows about BICEP file. So you can give the BICEP file directly to deployment. The ARM converts BICEP to JSON automatically.

    From a CI perspective – i would just do a bicep build – just to make sure that i dont have compilation errors. I would package all the bicep file required in CI step.

    In CD you will pull down the package and call az deploy with bicep file passed as input.

    Just thought of sharing the info.

  2. Pingback: Top Stories from the Microsoft DevOps Community – 2021.11.05 - IT Skills You Need

  3. Pingback: Top Stories from the Microsoft DevOps Community – 2021.11.05 - Power Community

  4. Pingback: Top Stories from the Microsoft DevOps Community – 2021.11.05 - Azure DevOps Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.