Netcentric has configured Amazon’s Alexa to voice control Jenkins. Watch the demo video to see how we use it to deploy systems and launch automated tests.
Deployment and test automation is very important for Netcentric in its projects.
Today, we've taken this one step further. We’ve setup a system that allows us to use Amazon’s Alexa to control our Jenkins to deploy systems and launch automated tests.
The user can tell Alexa, whom we have configured to respond to “computer”, to deploy builds, ask about the job results, failures, get the job names, check out what builds are running or what jobs are in the Jenkins queue.
As you can see, Alexa will respond to voice commands like:
Each Alexa skill is comprised of an “Invocation Name” which you can think of as your app name, a set of “Intents” and the phrases that map to each intent. The “Alexa Skills Kit” software can detect the intent and return an appropriate result.
An Intent is like an action that the device is capable of doing.
For example, when the user says the wake word “computer” followed by a phrase like “tell Jenkins to deploy the Netcentric website”, the echo DOT device will stream the user’s voice to the Alexa Skills Kit software that will search for a skill named Jenkins and then inside that skill will look for an Intent that matches the phrase “deploy the Netcentric website”. If the phrase matches to an Intent then the Intent implementation is called.
The Intent Implementation sits in AWS Lambda which is a service that lets you run code in the cloud without managing servers.
Alexa-Jenkins skill is implemented in Node.js The app will send an API request to Jenkins, parse the Json response and then return a formatted response back to the Alexa Skills Kit which in turn will send the response to the Echo DOT to be presented to the user.
In our Jenkins implementation, the jobs are using POST-build actions like Slack notifications with the help of the Jenkins CI plugin, so that a Slack notification is sent when the build starts, finishes etc. and also Email notifications so that an email is sent to the user once the job finishes.
Starting automated tests, deploying builds on different environments, asking about the results of a smoke test or about a deployment has never been easier.
It’s not only an easier way to find out Jenkins information, but also saves you the time like going to Jenkins, searching for the job and checking out the results.
Interested in knowing more? Simply get in touch.