Simplifying notifications in your pipeline with Novu and Dagger
May 21, 2024
Lev Lazinskiy
About two months ago one of my colleagues, Gerhard, showed an awesome demo of the Dagger notify module that he created that lets you send a notification to Discord from a Dagger pipeline. This was a huge hit at our community call and he quickly added support for Slack as well. A few days later I learned that someone that was evaluating Dagger for their company found this module in the Daggerverse and implemented it in their own production pipeline. They now have Slack notifications for their deployments which they have never had before.
Fast forward a few weeks, and we’re in Paris at the Ubisoft HQ hacking on Dagger modules with the local community during KubeCon EU. After a few hours of working everyone got together and showed off the modules that they created. One of the Daggernatus showed off a really impressive module that performs drift detection using Terragrunt and then sends a notification to Slack using Gerhard’s notify module. It was so cool to see the power of the Daggerverse in action because this person was able to introduce this notification capability into their own module with just a few lines of code.
The ability to easily add notifications to your pipeline can make you want to add even more notifications to different places. What if we wanted to send things to Microsoft Teams? What about email? How about a text message every time my pipeline fails? We could implement functions for each of these targets, but then we can quickly run into needing to manage notification templates based on the destination, or being able to send to multiple destinations based on an escalation workflow or even allow end users to specify their own notification channel preferences.
At this point you may wonder, isn't there a library that I can use to handle all of this complexity? The good news is that the answer is yes, and it's called Novu. Novu is an open-source notifications infrastructure platform for developers. It makes it easy to programmatically manage transactional notifications to a huge range of destinations with a simple cross-language API. This allows you to make a single API call from your code and then manage all of the configuration, templating, and routing logic in the Novu platform.
Inspired by Gerhard, I was able to write a Novu module that uses the Novu Go library to provide multi-channel notifications for anyone in the Daggerverse to use. I demoed this at one of our community calls, which you can see below. I showed how you can send a slack, discord, email, and SMS message with a single call to the Dagger CLI. This module only scratches the surface of what you can do with Novu and I intend to add additional functionality such as subscriber, topic, and workflow management in future releases. I also want to provide a demo in the near future of all possible destinations including in-app notifications using the Novu provided React component.
If you're an existing Novu user or would like to send notifications to multiple destinations as part of your CI/CD pipeline, I'd encourage you to check out the Novu module and let me know what you think in the Dagger Discord.
About two months ago one of my colleagues, Gerhard, showed an awesome demo of the Dagger notify module that he created that lets you send a notification to Discord from a Dagger pipeline. This was a huge hit at our community call and he quickly added support for Slack as well. A few days later I learned that someone that was evaluating Dagger for their company found this module in the Daggerverse and implemented it in their own production pipeline. They now have Slack notifications for their deployments which they have never had before.
Fast forward a few weeks, and we’re in Paris at the Ubisoft HQ hacking on Dagger modules with the local community during KubeCon EU. After a few hours of working everyone got together and showed off the modules that they created. One of the Daggernatus showed off a really impressive module that performs drift detection using Terragrunt and then sends a notification to Slack using Gerhard’s notify module. It was so cool to see the power of the Daggerverse in action because this person was able to introduce this notification capability into their own module with just a few lines of code.
The ability to easily add notifications to your pipeline can make you want to add even more notifications to different places. What if we wanted to send things to Microsoft Teams? What about email? How about a text message every time my pipeline fails? We could implement functions for each of these targets, but then we can quickly run into needing to manage notification templates based on the destination, or being able to send to multiple destinations based on an escalation workflow or even allow end users to specify their own notification channel preferences.
At this point you may wonder, isn't there a library that I can use to handle all of this complexity? The good news is that the answer is yes, and it's called Novu. Novu is an open-source notifications infrastructure platform for developers. It makes it easy to programmatically manage transactional notifications to a huge range of destinations with a simple cross-language API. This allows you to make a single API call from your code and then manage all of the configuration, templating, and routing logic in the Novu platform.
Inspired by Gerhard, I was able to write a Novu module that uses the Novu Go library to provide multi-channel notifications for anyone in the Daggerverse to use. I demoed this at one of our community calls, which you can see below. I showed how you can send a slack, discord, email, and SMS message with a single call to the Dagger CLI. This module only scratches the surface of what you can do with Novu and I intend to add additional functionality such as subscriber, topic, and workflow management in future releases. I also want to provide a demo in the near future of all possible destinations including in-app notifications using the Novu provided React component.
If you're an existing Novu user or would like to send notifications to multiple destinations as part of your CI/CD pipeline, I'd encourage you to check out the Novu module and let me know what you think in the Dagger Discord.
About two months ago one of my colleagues, Gerhard, showed an awesome demo of the Dagger notify module that he created that lets you send a notification to Discord from a Dagger pipeline. This was a huge hit at our community call and he quickly added support for Slack as well. A few days later I learned that someone that was evaluating Dagger for their company found this module in the Daggerverse and implemented it in their own production pipeline. They now have Slack notifications for their deployments which they have never had before.
Fast forward a few weeks, and we’re in Paris at the Ubisoft HQ hacking on Dagger modules with the local community during KubeCon EU. After a few hours of working everyone got together and showed off the modules that they created. One of the Daggernatus showed off a really impressive module that performs drift detection using Terragrunt and then sends a notification to Slack using Gerhard’s notify module. It was so cool to see the power of the Daggerverse in action because this person was able to introduce this notification capability into their own module with just a few lines of code.
The ability to easily add notifications to your pipeline can make you want to add even more notifications to different places. What if we wanted to send things to Microsoft Teams? What about email? How about a text message every time my pipeline fails? We could implement functions for each of these targets, but then we can quickly run into needing to manage notification templates based on the destination, or being able to send to multiple destinations based on an escalation workflow or even allow end users to specify their own notification channel preferences.
At this point you may wonder, isn't there a library that I can use to handle all of this complexity? The good news is that the answer is yes, and it's called Novu. Novu is an open-source notifications infrastructure platform for developers. It makes it easy to programmatically manage transactional notifications to a huge range of destinations with a simple cross-language API. This allows you to make a single API call from your code and then manage all of the configuration, templating, and routing logic in the Novu platform.
Inspired by Gerhard, I was able to write a Novu module that uses the Novu Go library to provide multi-channel notifications for anyone in the Daggerverse to use. I demoed this at one of our community calls, which you can see below. I showed how you can send a slack, discord, email, and SMS message with a single call to the Dagger CLI. This module only scratches the surface of what you can do with Novu and I intend to add additional functionality such as subscriber, topic, and workflow management in future releases. I also want to provide a demo in the near future of all possible destinations including in-app notifications using the Novu provided React component.
If you're an existing Novu user or would like to send notifications to multiple destinations as part of your CI/CD pipeline, I'd encourage you to check out the Novu module and let me know what you think in the Dagger Discord.