Screwdriver.cd helps to streamline the continuous delivery process by automating menial tasks. A major pain point users have noted is having to constantly check whether a build has passed or not. To address this issue, we have implemented build notifications, starting with emails.
Technologies
Node.js with nodemailer for emails
Joi for input validation.
For a Screwdriver.cd Cluster Admin
If you are running your own Screwdriver.cd cluster, you can configure the host, port, and email address from which to send notifications from by using a custom environment variable called NOTIFICATIONS. The environment variable that you set for notifications will be in the following json format:
For an example custom config file, take a look at the default.yaml file.
This serves as a great example of the modularity of Screwdriver.cd. Additional notification features can be added as plugins. For example, if you wanted to implement webhook notifications, the configuration may look like:
Configurable authentication settings have not yet been built, but can be easily added. We’re using the nodemailer package to power emails, so authentication features will be similar to any typical nodemailer setup.
For a Screwdriver.cd User
If you’ve been following our development, you know that the screwdriver.yaml file is where you customize all your build settings. Here, you can configure who will be notified on which statuses (only works if the cluster you're using has enabled email notifications as detailed above).
The result is an email notification that looks something like this:
Compatibility List
The Email Notifications feature requires the following minimum versions of these Screwdriver :
API - v0.4.108
LAUNCH_VERSION - v4.0.10
LOG_VERSION - v0.0.14
STORE - v2.2.1
UI - v1.0.116
Contributors
Thanks to the following people for making this feature possible:
d2lam
jerryzhang222
r3rastogi
Screwdriver is an open-source build automation platform designed for Continuous Delivery. It is built (and used) by Yahoo. Don’t hesitate to reach out if you have questions or would like to contribute: http://docs.screwdriver.cd/about/support.