Old Friends

Long time ago (link) I’ve created a little helper function to ease creation of PowerShell modules. Since then I’ve learnt a lot of new stuff, but most importantly I’ve met Plaster. I’ve decided to revisit the idea of scaffolding a PowerShell module with Plaster.

New Friends

I’m using this template for some time now, but never found time to publish it. If You’ve been to our Polish PowerShell User Group #10 Meetup, You could get a sneak peak of it being used in our CI/CD chain both for open source (AppVeyor and GitHub) and closed source (TeamCity in Objectivity). We (with Tomek Dabrowski) had the privilege to show that during PSConfEU 2018 (YouTube and slides ) as well.

The Benefit

What is the benefit of using Plaster? Simplicity and repeatability when creating new modules. It can also be used to create functions and tests files based on another template (that is yet to be discovered by me :)) ) If you’d like to know more, these are the best sources to start from:

Our PPoShTemplate creates basic folder structure, script style rules for PSScriptAnalyzer and adds build scripts to support both local runs and with CI/CD (works well with TeamCity and AppVeyor). The bonus is that if you clone your repo’s wiki it will regenerate it during local build run (details in our video from PSConfEU).

How to Use it

This is VERY simple - just download/clone this repo PlasterModuleTemplate and Invoke-Plaster

This will trigger Plaster. After you answer some questions your new module will be created:

What’s next

Currently we’re preparing to add Azure DevOps Services (a.k.a VSTS) into the mix, so soon additional files in build directory will be added to support that.