https://github.com/Appease/PowerShellClient
The Appease client for PowerShell
https://github.com/Appease/PowerShellClient
Last synced: 4 months ago
JSON representation
The Appease client for PowerShell
- Host: GitHub
- URL: https://github.com/Appease/PowerShellClient
- Owner: Appease
- License: apache-2.0
- Created: 2015-01-29T17:25:33.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2015-04-13T09:53:26.000Z (about 10 years ago)
- Last Synced: 2024-08-14T07:06:56.142Z (8 months ago)
- Language: PowerShell
- Homepage:
- Size: 1.63 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - Appease/PowerShellClient - The Appease client for PowerShell (PowerShell)
README

###How do I install it?
Make sure you have >= v0.9.9 of [Chocolatey](https://chocolatey.org) installed, then from PowerShell run
```POWERSHELL
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?
```PowerShell
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:
```PowerShell
Set-Location "PATH-TO-ROOT-DIR-OF-YOUR-PROJECT"
```
create a 'Build' devop:
```PowerShell
New-AppeaseDevOp Build
```
add 'RestoreNuGetPackages','BuildVisualStudioSln','InvokeVSTestConsole', and 'CreateNuGetPackage' tasks to the 'Build' devop:
```PowerShell
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
```PowerShell
Add-AppeaseConfiguration -Name Base -DevOpName Build
```set the 'TestCaseFilter' parameter of the 'InvokeVSTestConsole' task in the 'Base' configuration of your 'Build' devop
```PowerShell
Set-AppeaseTaskParameter `
-ConfigurationName Base `
-DevOpName Build `
-TaskName InvokeVSTestConsole `
-TaskParameter @{TestCaseFilter='TestCategory=Unit'}
```invoke the 'Build' devop with it's 'base' configuration:
```PowerShell
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](Docs)