Whether everything went according to plan or if a mistake was made, you still want to be informed right away. Therefore, using a notification system is essential.
Before reading it, I strongly recommend you read our previous articles on continuous integration. In the first article, we explain what continuous integration is and why it should be of interest to you. In the second article in the series, we look at how to use the systems tools for the most effective outcome. In the third article, we describe how continuous integration can prevent errors.
Typically, you can receive notifications via:
- HipChat, Slack
- RSS feed
- Custom service in XML or JSON
- MSN Messenger
- Google Cloud Messaging (GCM) service – Android devices
- Jabber – Google Talk, AOL Instant Messenger
Here are some examples of notification messages sent in a Hipchat room to inform users of successful and unsuccessful demo project deployments:
Every CI tool enables sending notifications through email, which is the most basic notification method. Receiving extremely specific information is possible via email notifications. However, if you frequently receive hundreds of emails and messages pile up, you could want a different approach. What then is it? You should constantly be aware of text message notifications since they might be sent together with important messages.
The majority of the tools support many communication channels. You can select from the options listed above, which are likely to include your favourite chat tool. We use Hipchat for general notifications, which are accompanied by e-mails and SMS messages for tasks of urgent importance.
Every project requires a build almost immediately after each commit. It takes some work to organise hundreds of messages. That is why we are delighted to be able to employ “intelligent notifications.” Do you want to know how it works?
We do not use artificial intelligence, but rather basic logic. If the current build’s result differs from the previous one, a notification is delivered.
E.g., it is possible that your most recent build failed even though the prior build was successful. We should investigate the reason and, if possible, repair it. Of course, it is possible that the build failed because a cloud service was unavailable. In that event, we will not be able to directly affect the issue, but the rest of the team and the customer will be informed.
Jenkins CI notification configuration is simple and, in most circumstances, effective. Administrators cannot make a mistake. The setup includes the previously mentioned “intelligent notification.”
If you want more configuration choices, consider Atlassian Bamboo, which allows you to differentiate between who receives a common notification and who receives an important event notification, i.e., through “intelligent notification.”
SELECTION OF THE TOOLS
Personally, I can provide a detailed comparison of Jenkins CI, which I have been using for several years, as well as Atlassian Bamboo as a newer solution capable of additional system integration.
Jenkins CI is completely free, including all plugins.
However, you will have to put in some time and effort to install it and set up configuration tools. Jenkins, on the other hand, has a historical advantage because it is based on Hudson. Because of its lengthy history, it has rich documentation and a variety of plugins providing a wide range of new capabilities.
Job management is simple, with everything on one page; you cannot get lost. On the other hand, the user interface may be regarded as a drawback because it does not appear to be “cool” at first glance, but rather “old school.” So, I suppose we should not anticipate a lot of frills in the era of flat design.
Below is an example of a Jenkins CI job dashboard. The administrator menu is on the left, as is the history of builds, including the one currently in process; in the centre are fast links and a summary of previous successful / failed builds, with timings.
I also included Atlassian Bamboo for comparison. It is attractive, clickable, and targeted at less technical consumers. Furthermore, if you use Bitbucket as your SCM platform and Atlassian JIRA for requirements tracking, you can quickly set up the integration and build a small, automated tool ecosystem that works nicely together.
However, I detect a major weakness in the complex deployment process breakdown – plan – stages – jobs – tasks. The system minimizes setting redundancy, such as when you specify a global variable in the plan and use it in all jobs; one task can be used in several jobs.
As it is Jenkins CI, I am missing an overall summary on a single page. Bamboo’s “Plan” management features tabs with several sub-settings. Jobs are divided into tasks, so you just work on certain sections. That is why Bamboo is confusing and may cause inattentive mistakes. Bamboo, like other Atlassian tools, is licenced, and the price, particularly for small businesses, may be a limiting concern. The basic version costs $ 10, while the full operation costs $ 800 per year.
A typical user will not be able to compare all of the available possibilities, even though it is possible to find such comparisons on the Internet.
Perhaps none of us has the time for that, though. However, you should try to select the tool that best suits you and that you can use effectively. For me, Jenkins CI has proven to be that. Without it, I find it impossible to imagine continuous integration.
CONTINUOUS INTEGRATION CAN’T BE DONE WITHOUT THE RIGHT TOOL
As we have seen, continuous integration involves a wide range of activities. If a human user makes a mistake, there is plenty of room for error. We must also consider the amount of time and knowledge necessary.
Furthermore, if we use human resources, we must consider probable substitutability.
Continuous integration professionals are expensive and difficult to come across. As a result, it is reasonable, if not necessary, to include an automation tool in the process. Various criteria may impact how we choose it. Personally, I recommend considering not just the cost of the tool, but also what it can accomplish and how effectively it works – notifications, interaction with other services, and user interface. Consider your top priorities and test the tools accordingly. If you run into trouble, attempt to contact someone who can assist you. Many businesses around the world are likely to be in a similar situation.
Finally, do not be concerned about getting started with continuous integration and process setup. It may need some initial investment, but it will save you both time and nerves (and even reputation). Once the automated process has been properly configured inside continuous integration, you can simply “replicate it only” in future projects.