sintaxasn / 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.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 scaffolds an empty PowerShell 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 the 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.

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

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.

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
  3. Commit your project to desired repository that is integrated with your CI/CD platform. This will trigger the build actions.
  4. Evaluate results of your builds and display your README badges proudly!

Additional Catesta documentation:

Author

Jake Morrison - https://techthoughts.info/

Contributors

Notes

Changelog

Reference the Changelog

About

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

License:MIT License


Languages

Language:PowerShell 100.0%