Skip to content

ModuleForge is a powerful scaffolding and build tool for creating other PowerShell modules. With ModuleForge, you can easily generate the foundational structure, boilerplate code, and github actions build techniques

License

Notifications You must be signed in to change notification settings

adrian-andersson/ModuleForge

Repository files navigation

ModuleForge

PowerShell 7+ Cross-Platform GitHub Actions Azure DevOps

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.

Full Documentation Available Here

Tutorials, function documentation, examples, and other information is published here

Design Goals

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.

Key Features

  • One-line module scaffolding with standard file layout
  • Add CI workflows for GitHub or Azure DevOps (Feature Parity)
    • Pester tests are hard-fail, code coverage is soft-fail, ScriptAnalyzer is advisory
    • PR comments auto-generated with lint/test results
    • PR Comments
  • Semantic changelog automation from commit prefixes (feat, fix, etc.)
    • GitHub Packages release integration
    • GH Release
  • Support for enumerators, classes, and advanced PowerShell constructs
  • Tag-based automated versioning with pre-release support
    • GH Release
  • Works with GitHub Packages and Azure DevOps feeds for module repositories

Workflow Overview

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

Loading

About

ModuleForge is a powerful scaffolding and build tool for creating other PowerShell modules. With ModuleForge, you can easily generate the foundational structure, boilerplate code, and github actions build techniques

Resources

License

Contributing

Stars

Watchers

Forks

Packages