Skip to content

Appease/PowerShellClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

###How do I install it? Make sure you have >= v0.9.9 of Chocolatey installed, then from PowerShell run

choco install appease.client.powershell -yxf -version='0.0.77'
import-module 'C:\Program Files\Appease\PowerShell\Appease.Client' -Force

###In a nutshell, hows it work?

  • devops (development operations) are sets of related tasks
    for example: a project might have 'Build', 'Unit Test', 'Package', 'Deploy', 'Integration Test' devops
  • tasks are arbitrary operations implemented as PowerShell modules and packaged as .nupkg's.
    for example: a 'Package' devop might have tasks: 'CopyArtifactsToTemp', 'CreateNuGetPackage'
  • configurations define sets of parameters to pass to devop tasks.
    for example: a "Deploy" devop might have configurations: 'Base', 'ChrisDev', 'Integration', 'QA', 'Demo', 'Prod'

###Whats the API look like?

PS C:\> Get-Command -Module Appease.Client | Format-Table -AutoSize
 
CommandType Name                               ModuleName    
----------- ----                               ----------    
Function    Add-AppeaseConfiguration           Appease.Client
Function    Add-AppeaseTask                    Appease.Client
Function    Get-AppeaseConfiguration           Appease.Client
Function    Get-AppeaseDevOp                   Appease.Client
Function    Invoke-AppeaseDevOp                Appease.Client
Function    New-AppeaseDevOp                   Appease.Client
Function    Publish-AppeaseTaskTemplate        Appease.Client
Function    Remove-AppeaseConfiguration        Appease.Client
Function    Remove-AppeaseDevOp                Appease.Client
Function    Remove-AppeaseTask                 Appease.Client
Function    Rename-AppeaseConfiguration        Appease.Client
Function    Rename-AppeaseDevOp                Appease.Client
Function    Rename-AppeaseTask                 Appease.Client
Function    Set-AppeaseConfigurationParentName Appease.Client
Function    Set-AppeaseTaskParameter           Appease.Client
Function    Update-AppeaseTaskTemplate         Appease.Client

###How do I get started? navigate to the root directory of your project:

Set-Location "PATH-TO-ROOT-DIR-OF-YOUR-PROJECT"

create a 'Build' devop:

New-AppeaseDevOp Build

add 'RestoreNuGetPackages','BuildVisualStudioSln','InvokeVSTestConsole', and 'CreateNuGetPackage' tasks to the 'Build' devop:

Add-AppeaseTask -DevOpName Build -TemplateId RestoreNuGetPackages
Add-AppeaseTask -DevOpName Build -TemplateId BuildVisualStudioSln
Add-AppeaseTask -DevOpName Build -TemplateId InvokeVSTestConsole
Add-AppeaseTask -DevOpName Build -TemplateId CreateNuGetPackage

add a 'Base' configuration to the 'Build' devop

Add-AppeaseConfiguration -Name Base -DevOpName Build

set the 'TestCaseFilter' parameter of the 'InvokeVSTestConsole' task in the 'Base' configuration of your 'Build' devop

Set-AppeaseTaskParameter `
    -ConfigurationName Base `
    -DevOpName Build `
    -TaskName InvokeVSTestConsole `
    -TaskParameter @{TestCaseFilter='TestCategory=Unit'}

invoke the 'Build' devop with it's 'base' configuration:

Invoke-AppeaseDevOp -Name Build -ConfigurationName Base

###How do I distribute my devops? Your devops are stored in json files in devop specific directories following the format YOUR-PROJECT-ROOT-DIR\.Appease\DevOps\YOUR-DEVOP-NAME. Make sure the .Appease\DevOps directory is indexed by your version control and you're set.

pro-tip: make sure the .Appease\Templates folder is excluded from your version control. Appease is smart enough to handle installing task templates when they're required and this way you don't unnecessarily bloat your version control.

###Where's the documentation? Here

About

The Appease client for PowerShell

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published