Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

This guide will walk through everything needed in order to send a slack notification on workflow failures.

Configuring Slack integration

You will first need to configure your Slack integration with FlexDeploy. To do this you will need to create a new Slack bot and save the token to a credential in FlexDeploy. To get more information on this you can follow the guide located on our Slack plugin guide. This simple configuration will allow you to send notifications to your specified Slack channel. The bot token and Slack channel name will be used in the event listener groovy script to send the notification.

We will want to create a new credential with our bot token. We can do this by going to Administration → Security → Credentials. We can create a local credential and save the credential Id as it will be used later in our groovy script.

Creating Event Listener

Now that Slack is integrated with FlexDeploy we will now want to create the event listener that will process all failed workflow completed events. To do this we will navigate to the events screen through Administration → Integrations → Events. Once at the events screen we will start by creating the event listener by clicking the Create Listener button.

We will want to add a name, event type, and mock payload to our new event listener. The event type will specify what events our new listener will process. We will want to select the Workflow Completed event type. The mock payload is used in the groovy script editor to give suggestions when accessing the events payload. We will want to select the workflow completed payload here as well.

Implement Groovy Script

Our event listener is now created, but we do not have any groovy script added to send our Slack message. FlexDeploy has several built in Event Context Variables and Methods that can be used to help you implement exactly what you want in this groovy script. We will be using FlexDeploy’s Slack methods in order to send a notification.

As stated before you will need to add your Slack bot token to a credential within FlexDeploy. We then add this token as well as Slack channel name to the groovy script. We can create a message by simply using FlexDeploy’s built in methods. Then we will simply call our postMessage method and provide the specified information. We also set the log message to easily see what workflow has failed when viewing the event messages.

Implementing Event Filter

We now have an event listener that will send a Slack notification to our specified channel every time a workflow is completed. In order to only send the notification when the workflow execution has failed we will need to implement a filter. This filter is groovy script that will determine whether or not our event listener will process a given event. To edit the filter we will need to click the filter tab to the left of our script tab. We will now create a groovy script that will return true when we want our listener to process the event and false otherwise.

In this example we have also added a list of excluded projects that we do not want our listener to process even if the workflow execution has failed. The return value will check our event payload for the execution status. If the execution status is SUCCESS, or if the project Id of the workflow execution is in our excluded projects list we will return false. You can edit this filter to cater to your needs. For example, you can edit the return statement to only return true only if the workflow was a deployment and it failed when trying to deploy to Production.

Viewing Event Messages

Now that we have our event listener completely set up we will create a workflow that will fail and attempt to execute it. In order to see if our filter is working correctly we will view our event messages after executing our faulty workflow. This can be found by clicking the Event Messages button on the main events page.

On this page we should be able to see our event has been processed by our new listener in the table along with the payload that was sent. Our message states that our Slack message has been sent so we can verify that. If the message has not been sent we can debug by showing our groovy logs by clicking the show logs button and resubmit the event with the same payload by clicking the resubmit button. These tool are very useful for debugging as we can create a duplicate event without having to go back and execute our workflow.

If the event listener and Slack integration was set up correctly a message should have been sent to your channel.

  • No labels