Return Multiple Values from PowerShell Function

In PowerShell functions, by default, you can return only one object at a time. Since PowerShell does not apply any restriction on data type returned, it created a lot of possibilities on what can be returned as an output of the function. So if one needs to return multiple values or objects, it is generally suggested to create an array of the objects and then return the array. If the underlying values are simple strings, some would create a custom PSObject and then return the PSObject. In this blog post, we will discuss the other methods to return the multiple values from PowerShell functions.
Continue reading “Return Multiple Values from PowerShell Function”

Print all environment variables in Azure DevOps across Microsoft Hosted Agents

While debugging the CI builds, sometimes it becomes necessary to take a peek at the values of the variables that are being passed to the environment used. It helps in understanding what is going on and why some steps are not working as desired in the build pipeline. There are different commands to check the environment variables in different types of agents, mostly based on the underlying Operating System. However, if you happen to use the Microsoft Hosted agents for your build pipelines, we can use one single line of code to print all environmental variables across all agents.
Continue reading “Print all environment variables in Azure DevOps across Microsoft Hosted Agents”

Scale your Git workflow with Git hooks – 2

In our previous post, we discussed what are git hooks, how to install git hooks ,few of the local git hooks and custom hooks. This post is continuation of the same and we are going to discuss more types of git hooks and their customization.

Post-Checkout git hook

The post-checkout hook works a lot like the post-commit hook, but it is called whenever you successfully check out a reference with git checkout.
Continue reading “Scale your Git workflow with Git hooks – 2”

Scale your Git workflow with Git Hooks

Git hooks are a very useful feature in the git. Git hooks are scripts that you can place in a hooks directory. They are triggered every time an specific event occurs in a Git repository. They let you customize Git’s internal behavior and trigger customizable actions at key points in your CI/CD and git workflow.

Some of the common use cases include to encourage a commit policy, altering the project environment depending on the state of the repository, to trigger continuous integration workflows before and after commits, etc. However since scripts can be written as per the requirements at hand, you can use Git hooks to automate or optimize virtually any aspect of your development workflow.
Continue reading “Scale your Git workflow with Git Hooks”

Prepare failback strategy for database changes with Liquibase

In our previous blog post, we describe how we can conditionally prepare for database state to determine certain conditions and then only proceed to deploy our changes. This prevents us from doing errors like inserting the same record again or dropping a table full of records. However, irrespective of our precautionary measures, mistakes are bound to happen. So we need to prepare for those eventualities as well. This may also be needed if you roll out certain changes and found that those changes were inadequate to resolve the matter at hand. In liquibase, we can prepare for these kind of scenarios using the concept of rollback and tags.
Continue reading “Prepare failback strategy for database changes with Liquibase”