Bringing it all together
With all the components introduced, we can use the template structure for our module development:
ModuleName\Public- Contains all publicly visible module functions
- Each function is in a separate script, called
NameOfFunction.ps1
ModuleName\Private- Contains all internally visible functions
- Each function is in a separate script, called
NameOfFunction.ps1
ModuleName\Types- Contains all .NET/PowerShell classes the module requires
ModuleName\ModuleName.psm1- Your script module
ModuleName\ModuleName.psd1- Your module manifest
Test- Contains all unit and integration tests to execute, possibly sorted into subfolders
- Usually one
*.Test.ps1file per function
ModuleName.psdeploy.ps1appveyor.ymlbuild.ps1psake.ps1README.mdLICENSE
As the central entry point, the build script kicks off your deployment process. We like to use Psake and PSDeploy, but you can also simply use your build script to create a Nuget package, execute tests, and so on. As an example, AutomatedLab.Common—a module collecting helper...