Azure DevOps Release Pipe Customization for Quality Boost

Azure DevOps release pipeline is a great platform to handle matured software deployment process and helps to customize the release pipe as required.

Based on the feedback of DevOps engineers, testers, and developers, we’ve identified the functionality needed to boost quality.

  1. Backup of the existing web application in the UNC shared folder before deployment.
  2. Clean-up of the IIS virtual application folder to purge the previously deployed artifacts, to avoid any unnecessary side effects.
  3. Create release manifest (Stage, Release and build number) in the deployment folder.
  4. View the endpoint details to verify web.config endpoint details as part of the release log.

Steps to Implement the Customization

Let’s get into details of it. Create a PowerShell task and task group implementation of the given below functionality:

  1. Backup
  2. Clean-up
  3. Create release manifest
  4. View endpoints

In the deployment workflow, add the newly created task group of Backup/Clean-up, etc. task.

backup

backup task groups

add tasks

Drag the added task in the required sequence listed below:

  1. Backup
  2. Clean
  3. IIS Web app deploy
  4. Generate Release Manifest
  5. Delete additional files from deployment folder
  6. Verify config

verify config

Backup

As part of the deployment process, taking back up of the previously deployed artifacts in a backup location is imperative to support the rollback procedure. In ADO, release pipe back up step is performed as a manual procedure. Each deployment instruction provided by the dev team includes the backup step and DevOps engineer performed manually by remote login, take a copy in a shared location.

With the above backup implementation, release pipe workflow handles the backup as part of the deployment steps.

Clean-up

Deleting the existing binaries from the deployed location is essential to avoid issues with any earlier deployed excess files in the location.

Create release manifest

Release manifest of stage, release number, and build number are required in the deployed binary location:

  1. To create back up with the correct build and release information.
  2. Release manifest helps to understand the release information from the deployment location.

From release pipe’s build number and release name using PowerShell-based script able to create the XML based release manifest file.

manifest file

Verify config

Web config transformation issues and incorrect endpoints (Ex: Database connection string ) are major issues in the deployment and requires troubleshooting.

To make life easier as part of the deployment step using PowerShell task, retrieve the web.config endpoint and show in the deployment log. This deployment log can be viewed using a browser and easily accessible, necessity to connect the server to review the endpoint is eradicated.

No doubt these four tasks add a lot of value to your deployment routine and increase your effectiveness. With Azure DevOps release platform, it is easy to create your customization.

I hope this gives you an idea about release pipe customization. Please share your feedback or comments if any!