Sipping psake: Creating a Build and Release Pipeline for PowerShell

By Brandon Olin

Elevator Pitch

Building high-quality PowerShell modules can take some work. Let’s use some PowerShell to automate our PowerShell!

psake is a PowerShell framework for defining and executing steps as part of a CI/CD pipeline. This talk will show how to build such as pipeline in your PowerShell projects.

Description

psake is a build automation tool written in PowerShell. It uses a simple Domain Specific Language (DSL) to define a series of steps, dependencies, and conditions to execute as part of a build and release process. This talk will be an overview of psake itself and how to use it as part of a PowerShell module development workflow.

I will also show how psake tasks can be packaged and shipped in separate PowerShell modules. Using these shared tasks reduces the boilerplate scaffolding needed in most PowerShell module projects and help enforce a consistent module structure. This consistency ultimately benefits the community and assists in building high-quality PowerShell modules.

Notes

This talk will have some short slides giving an overview of psake itself and why build automation is vital to develop high-quality PowerShell modules. The bulk of the presentation will be a live demo of creating a PowerShell module and using psake tasks to orchestrate build, test, and deployment automation.

I took over maintainer duties of the psake project in November 2017 and helped to add PowerShell Core and cross-platform support. I have also been working on additional features to allow psake to be used in more broader scenarios than just PowerShell module development.