Maximize how you use your VSTS build and release pipeline with Inline Powershell tasks. In this blog series ‘Tips and Tricks for Inline Powershell’, I will show simple samples on how to get more out of your pipelines. This blog post: Call WebHooks from your build pipeline
VSTS Inline Powershell task
The Inline PowerShell VSTS task enables you to execute PowerShell from a textbox within your build or release pipeline. You can run a PowerShell script on you agent or as Azure Powershell.
Introduction Inline Powershell Task
Install Inline Powershell Task
Call a WebHook
Many systems can be integrated with a WebHooks. A WebHook is an HTTP callback: an HTTP POST that occurs when something happens; a simple event-notification via HTTP POST. A web application implementing WebHooks will POST a message to a URL when certain things happen. You can do this at any time in you build or release pipeline.
Services like Sendgrid, Slack or mayby the application you are developing have standard incoming WebHooks where you can integrate. You can do the Post with the Invoke-WebRequest Powershell command. Forexample the following script will post a message in the random slack channel:
$payload = @{ "channel" = "#random" "text" = "This is my message. Hello there!" "username"= "monkey-bot" "icon_emoji"= ":monkey_face:" } Invoke-WebRequest -UseBasicParsing ` -Body (ConvertTo-Json -Compress -InputObject $payload) ` -Method Post ` -Uri "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
Replace the T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX with your own configuration keys. Enable a incoming WebHook in Slack.
More tips and tricks
Use VSTS variables
Let your task fail
Set progress
Change buildnumber
VSTS Command overview
Call a WebHook
Download a file
Install a Powershell Module
Navigate VSTS as filesystem
Make VSTS API Rest calls
Script example: Act on failed build
Invoke-WebRequest use basic parsing
When calling the Invoke-WebRequest you need to add the parameter -UseBasicParsing because the Internet Explorer engine is not configured on the build server. If you do not add that parameter you will see the following error:
The response content cannot be parsed because the Internet Explorer engine is not available, or Internet Explorer’s first-launch configuration is not complete. Specify the UseBasicParsing parameter and try again.
Thank you for the post, Is it possible to send a yammer notification from vNext build definition in TFS ? if yes-could you please provide any support document or information.
Thank you in advance
LikeLike
I think that would possible. You can find the yammer documentation here: https://developer.yammer.com/docs
Calling the rest API would be the same as for Slack. I have not done it, so I can not provide any sample code.
LikeLike