A PowerShell module that simplifies deployments using a declarative configuration DSL similar to Pester.
PSDeploy is a PowerShell module that automates deployment tasks using a declarative domain-specific language (DSL). It allows users to define deployment configurations in *.psdeploy.ps1 files, specifying sources, targets, and options, which PSDeploy then executes to ensure consistent and repeatable deployments across environments.
PowerShell developers and system administrators who need to automate and standardize deployment processes, such as copying files or directories to various targets like network shares or local paths.
Developers choose PSDeploy for its simplicity and practicality, offering a clean DSL similar to Pester for declarative configurations, reducing manual scripting and enabling extensible deployment types with features like tag-based filtering and dependency management.
Simple PowerShell based deployments
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses a clean, Pester-like syntax in *.psdeploy.ps1 files, making deployment definitions easy to read, write, and maintain without extensive scripting.
Supports built-in types like Filesystem and allows creating custom types for specialized scenarios, enabling flexibility beyond basic file copying.
Enables filtering deployments by tags (e.g., Prod or Dev), allowing targeted runs for specific environments and reducing manual intervention.
Provides options to use robocopy with mirroring and purge capabilities for folder deployments, ensuring efficient synchronization and cleanup.
Heavily reliant on PowerShell and Windows ecosystems, making it unsuitable for non-Windows environments or teams using other scripting languages like Bash or Python.
Initial installation requires downloading, unblocking, and extracting the module manually, which is less streamlined than modern package managers and can be error-prone.
Lacks built-in support for advanced deployment scenarios like rollbacks, real-time monitoring, or complex error handling, as it follows a 'quick and dirty' philosophy that prioritizes simplicity over robustness.