Catesta

Minimum Supported PowerShell Version PowerShell Gallery Cross Platform License

Catesta Logo

Branch Windows - PowerShell Windows - pwsh Linux MacOS
master Build Status Windows PowerShell Master Build Status Windows pwsh Master Build Status Linux Master Build Status MacOS Master
Enhancements Build Status Windows PowerShell Enhancements Build Status Windows pwsh Enhancements Build Status Linux Enhancements Build Status MacOS Enhancements

Synopsis

Catesta is a PowerShell module project generator. It uses templates to rapidly scaffold test and build integration for a variety of CI/CD platforms.

Description

Catesta enables you to quickly scaffold a PowerShell module project with proper formatting, test + build automation, CI/CD integration, with just one line of code.

  • Catesta scaffolds an empty PowerShell module project that adheres to PowerShell community guidelines.
  • It generates a few Pester tests to get you started.
  • It makes a build file that analyzes your code for best practices and styling, runs Pester tests, creates PowerShell help, and combines your functions together to build your project for publication.
  • It will create resources you need to trigger CI/CD builds for your module.
  • When you commit your code to your chosen repository, the build(s) will run, and you can view the results.

Why

Simplify the process of structuring your module so that you can focus on building a great PowerShell module instead of the layout and build requirements.

Features

  • PowerShell module layout following PowerShell community practices
  • [Selection] Required CI/CD integration files generated:
  • [Selection] Build types for easy cross-platform testing
    • Windows PowerShell
    • Windows pwsh
    • Linux
    • MacOS
  • InvokeBuild tasks for validation / analysis / test / build automation
    • PSScriptAnalyzer code checks
      • [Optional] Code Style Enforcement (Stroustrup, OTBS, Allman)
    • Pester Tests
      • Will run Unit / Infrastructure Tests if available
      • Generates Code Coverage Report
      • Coverage Gutters support
    • [Optional] Create Help using platyPS
      • Markdown-based help
      • External XML help file generation
    • Build and artifact creation
  • [Optional] VSCode editor files
  • [Optional] Helpful repository files
    • .gitignore
    • Project LICENSE (MIT / APACHE / GNU / ISC)
    • Changelog
    • GitHub community files:
      • Code of Conduct
      • Contributing guidelines
      • Templates
        • Issue Bug Report
        • Issue Feature Request
        • Pull Request

Installation

# Install Catesta from the PowerShell Gallery
Install-Module -Name Catesta -Repository PSGallery -Scope CurrentUser

Quick start

# Scaffolds a PowerShell module project for integration with AWS CodeBuild.
New-PowerShellProject -CICDChoice 'AWS' -DestinationPath c:\path\AWSProject

# Scaffolds a PowerShell module project for integration with GitHub Actions Workflows.
New-PowerShellProject -CICDChoice 'GitHubActions' -DestinationPath c:\path\GitHubActions

# Scaffolds a PowerShell module project for integration with Azure DevOps Pipelines.
New-PowerShellProject -CICDChoice 'Azure' -DestinationPath c:\path\AzurePipeline

# Scaffolds a PowerShell module project for integration with AppVeyor Projects.
New-PowerShellProject -CICDChoice 'AppVeyor' -DestinationPath c:\path\AppVeyor

# Scaffolds a basic PowerShell module project with no additional extras. You just get a basic PowerShell module construct.
New-PowerShellProject -CICDChoice 'ModuleOnly' -DestinationPath c:\path\ModuleOnly

Getting Started

  1. Use Catesta to scaffold your PowerShell project with your desired CI/CD platform and builds.
  2. Write your module (the hardest part)
    • All build testing can be done locally by navigating to src and running Invoke-Build
    • If using VSCode as your primary editor you can use tasks to perform various local actions
      • Examples:
        • Press Ctrl+P, then type 'task .' - Runs complete build (all tasks)
        • Press Ctrl+P, then type 'task Test' - Invokes all Pester Unit Tests
        • Press Ctrl+P, then type 'task Analyze' - Invokes Script Analyzer checks
        • Press Ctrl+P, then type 'task DevCC' - Generates generate xml file to graphically display code coverage in VSCode using Coverage Gutters
  3. Add any module dependencies to your CI/CD bootstrap file:
    • AWS: install_modules.ps1
    • GitHub Actions: actions_bootstrap.ps1
    • Azure: actions_bootstrap.ps1
    • AppVeyor: actions_bootstrap.ps1
  4. Commit your project to desired repository that is integrated with your CI/CD platform. This will trigger the build actions.
  5. Evaluate results of your builds and display your README badges proudly!

Additional Catesta documentation that covers the process of CI/CD integration in depth:

FAQ

Catesta - FAQ

Author

Jake Morrison - https://techthoughts.info/

Contributors

Notes

Changelog

Reference the Changelog

Catesta

Catesta is a PowerShell module project generator. It uses templates to rapidly scaffold test and build integration for a variety of CI/CD platforms.

Catesta Info

⭐ Stars 72
🔗 Source Code github.com
🕒 Last Update 7 months ago
🕒 Created a year ago
🐞 Open Issues 4
➗ Star-Issue Ratio 18
😎 Author techthoughts2