ModuleForge is a scaffolding and build tool designed to streamline PowerShell module creation. It simplifies the process of setting up a module, automating versioning, and ensuring compatibility with modern CI/CD workflows with a minimal amount of effort.
Tutorials, function documentation, examples, and other information is published here
ModuleForge was built to achieve the following goals
- PowerShell CI/CD with minimal config
- Standardised, fast module setup
- Cross-platform, OS agnostic
- Semantic Versioning with easy prerelease support and incrementing
- Orchestration tool agnostic
- Support and use the latest versions of PowerShell 7+, Pester, and PSResourceGet
- Compatible with GitHub Packages
- Support simple and complex PowerShell modules alike
- Easily identify function and file dependencies in your project
ModuleForge is designed for flexibility.
- One-line module scaffolding with standard file layout
- Add CI workflows for GitHub or Azure DevOps (Feature Parity)
- Semantic changelog automation from commit prefixes (
feat
,fix
, etc.) - Support for enumerators, classes, and advanced PowerShell constructs
- Tag-based automated versioning with pre-release support
- Works with GitHub Packages and Azure DevOps feeds for module repositories
graph TD
A[🚀 Start A New Pwsh Module Project] --> B[💻 Code your functions]
B --> C[🔍 Test Locally]
C --> D[📦 Commit Changes & Open a PR]
subgraph "CI ⚙️"
D --> E[🧪 Automated Pester and PSInvoke Tests]
E --> F[👀 Review and Merge]
end
subgraph "CD 🚚"
F --> G[🏷️ Build & Release Version]
G --> H[⏬ Deploy & Use]
end
H --> B