Giter VIP home page Giter VIP logo

catesta's Introduction

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

catesta's People

Contributors

techthoughts2 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.