Picassio2 is a Code-over-Config version of Picassio, and far more flexible for automation using PowerShell
MIT License
Picassio2 is a redesigned Picassio that is code-over-config
.
Instead of writing a JSON file with steps to run, you can now import the Picassio2 module and write your deployment/automation steps in pure PowerShell. Giving you all the flexibility you could want - you can even run steps in parallel and on remote servers.
Coming soon via Install-Module
and Chocolatey
.
Picassio2 allows you to write deployment and automation steps completely in PowerShell, meaning you could just use the Step
option and then do whatever you want.
Though to make your lives easier, Picassio2 comes with some inbuilt functions:
Picassio2 is a PowerShell module that helps with automating deployment tasks on local or remote servers.
With Picassio2 there are no JSON, YAML, or any other configuration files - everything is written purely in PowerShell. Unlike with the first Picassio where you needed a JSON file with defined steps, you can now import Picassio2 as a module and then just run the script as you would any other PowerShell script.
Import-Module Picassio2
Step 'Archive' {
# archive a directory
Invoke-PicassioArchive -Path 'C:\path\to\some\folder' -ZipPath 'C:\path\to\some\folder.7z'
}
Write-Host 'Random PowerShell between steps!'
Step 'Build Solution' {
# run a cake build script
Invoke-PicassioCake -Path 'C:\path\to\your\repo'
}
Step 'Name' {
# plus any other powershell you want
}
Picassio2 will need to be installed on the remote machine
Import-Module Picassio2
Step 'Install Features' -ComputerName 'Name' -Credentials (Get-Credential) {
# install iis on remote machine
Install-PicassioWindowsFeature -Name 'Web-Server' -IncludeAllSubFeatures
}
Import-Module Picassio2
ParallelStep 'Multiple Cake Builds' @(
{
Invoke-PicassioCake -Path 'C:\path\to\your\repo1'
},
{
Invoke-PicassioCake -Path 'C:\path\to\your\repo2'
},
{
Invoke-PicassioCake -Path 'C:\path\to\your\repo3'
}
)
How do you run these scripts? Well, if you save the last example as build-cake.ps1
, then to run it just do:
> .\build-cake.ps1
Yes, it's that simple!
This is a feature pulled over from the original Picassio: Extension scripts. If you have scripts you want to use via Picassio2, and want their functions to be loaded with Picassio2 then place them at:
C:\Picassio2\Extensions
Any PowerShell (*.ps1
) scripts here will be loaded with the Picassio2 module. If you use remoting any of your steps, then these extensions will have to exist on the remote machines as well.
For any bugs you may find or features you wish to request, please create an issue in GitHub.