|
| 1 | +# ModuleBuild |
| 2 | + |
| 3 | +A scaffolding framework which can be used to kickstart a generic PowerShell module project with a bunch of extras. |
| 4 | + |
| 5 | +## Description |
| 6 | + |
| 7 | +A scaffolding framework which can be used to kickstart a generic PowerShell module project with an Invoke-Build backend for regular deployments and other automated tasks. This project helps make everything about starting, documenting, building, and eventually releasing your module to the PSGallary a breeze. |
| 8 | + |
| 9 | +## Requirements |
| 10 | + |
| 11 | +- PowerShell 5.0 |
| 12 | + |
| 13 | +- All other module requirements will be automatically installed at build time if they are not available. (This is one of the reasons PowerShell 5 or greater is required) |
| 14 | + |
| 15 | +## Installation |
| 16 | + |
| 17 | +Powershell Gallery (PS 5.0, Preferred method) |
| 18 | +`install-module ModuleBuild -Scope:CurrentUser` |
| 19 | + |
| 20 | +Manual Installation |
| 21 | +`iex (New-Object Net.WebClient).DownloadString("https://github.com/zloeber/ModuleBuild/raw/master/Install.ps1")` |
| 22 | + |
| 23 | +Or clone this repository to your local machine, extract, go to the .\releases\ModuleBuild directory |
| 24 | +and import the module to your session to test, but not install this module. |
| 25 | + |
| 26 | +## Features |
| 27 | + |
| 28 | +This build framework for PowerShell modules comes with several appealing baked in features which include; |
| 29 | + |
| 30 | +- Fully portable project directory structure and build process. So portable that you can copy it to another PowerShell 5.0 capable system and it should run the same. |
| 31 | +- Automatically combine your public and private functions into one clean psm1 file at build time. |
| 32 | +- Automatically update your psd1 file with public functions at build time. |
| 33 | +- Automatically scan your module release with PSScriptAnalyzer |
| 34 | +- Automatically upload your script to the PowerShell Gallery (with appropriate API key) |
| 35 | +- Automatically create project documentation folder structure and yml definition file for ReadTheDocs.org integration |
| 36 | +- Automatically start Pester tests during build process |
| 37 | +- Visual Studio Code integration (tasks) |
| 38 | +- Easy to manage build configuration with forward compatible design and easy to use commands |
| 39 | +- Includes ability to scan for sensitive terms (like your company domain name or other items that you may not want published) |
| 40 | +- Functions for importing public and private functions from other projects into a ModuleBuild project |
| 41 | +- Add new public functions to your project based on easy to create templates. |
| 42 | + |
| 43 | +## Documentation |
| 44 | + |
| 45 | +Visit the [ReadTheDocs.org documentation](http://modulebuild.readthedocs.io/en/latest/) that this module created a manifest for automatically. |
| 46 | + |
| 47 | +## Contribute |
| 48 | + |
| 49 | +Please feel free to contribute by opening new issues or providing pull requests. |
| 50 | +For the best development experience, open this project as a folder in Visual |
| 51 | +Studio Code and ensure that the PowerShell extension is installed. |
| 52 | + |
| 53 | +* [Visual Studio Code](https://code.visualstudio.com/) |
| 54 | +* [PowerShell Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell) |
| 55 | + |
| 56 | +More contributing information can be found [here](https://github.com/zloeber/ModuleBuild/blob/master/docs/Contributing.md). |
| 57 | + |
| 58 | +This module is tested with the PowerShell testing framework Pester. To run all tests, just start the included build scrip with the test param `.\Build.ps1 -test`. |
| 59 | + |
| 60 | +## Other Information |
| 61 | + |
| 62 | +**Authors:** |
| 63
5EA2
| +- [Zachary Loeber](https://www.the-little-things.net) |
| 64 | +- [Justin Perdok](https://github.com/justin-p) |
| 65 | + |
| 66 | +**Website:** https://github.com/zloeber/ModuleBuild |
0 commit comments