2. Whatisit?
In simple words…...
● It is an hidden bot which sitting in a Hipchat
room waiting for our command.
● Once we will give those commands, it process
them and perform desired tasks.
3. Continued….
In technical words……
● It’s a node js application/server running on our local
network.
● We are using ngrok utility to map the local Ip to public
Ip.
● Node js application communicates with Jenkins over HTTP.
4. 1
2
3
1.User enters a slash-command into
hipchat room.
Eg. /automator run Operation on ENV
for PROJECT
2.Hipchat forwards that command to
node server as a post request with
request body containing command text
and other info like token, user_id,
room_id etc.
3.Node server process the received
command and fire a post API to
Jenkins job as per the request.
4. Jenkins start the job with given
parameters.
Flow
Chart:
5. SlashCommandFormat
/Automator Command Operation ON Environment FOR
Project AT Time
Command:Run/Stop/Status/Disable
Operation: smoke/sanity/regression
Environment:
qa/Stage/Production
Project:
The project for which you want to start/stop the build
process.
6. Command
Run:
/Automator Run smoke on env for xyz
Stop command:
/Automator Stop Project
It will stop all the builds for Project which are running or which
are scheduled to run.
Status:
I have created a hipchat notification script which runs in our test
suite and update the room with the status of the scenario.
Disable:
For disable command we will call disable api with one of our access
token.