Catesta
Branch | Windows - PowerShell | Windows - pwsh | Linux | MacOS |
---|---|---|---|---|
master | ||||
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
- PSScriptAnalyzer code checks
- [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
- Use Catesta to scaffold your PowerShell project with your desired CI/CD platform and builds.
- Write your module (the hardest part)
- All build testing can be done locally by navigating to src and running
Invoke-Build
- All build testing can be done locally by navigating to src and running
- Commit your project to desired repository that is integrated with your CI/CD platform. This will trigger the build actions.
- Evaluate results of your builds and display your README badges proudly!
Additional Catesta documentation:
- Catesta - AWS Doc
- Catesta - GitHub Actions Doc
- Catesta - Azure Pipelines Doc
- Catesta - GitHub AppVeyor Doc
- Catesta - FAQ
Author
Jake Morrison - https://techthoughts.info/
Contributors
Notes
Changelog
Reference the Changelog