You'll need roughly 7 minutes to read this article.
We often get questions regarding the differences and migration path from Jenkins to Codeship. Here, we’ll walk through the almost effortless ways to migrate your notifications from Jenkins to Codeship. For those that aren’t using Jenkins, this documentation will still convey ways that could be used to migrate from any number of privately managed, hosted, and maintained build servers.
Jenkins is a build server used by many developers, but as practices have matured and more streamlined tooling is needed, your development team may be dissatisfied with the granular treatment to the continuous integration and delivery process that Jenkins provides.
In just the last few years, software development has matured in a number of ways. With new agile practices and tooling to advance these practices and draw efficiencies where they didn’t exist before, effective steps forward have been made. With these strides forward we have needed to gain more insight, metrics, and information to make decisions on our respective development efforts.
It’s important to keep informed of your team’s work. You need to know when new builds are pushed and when they have succeeded or failed. In the following samples, we’ve detailed some of the notifications that can be used to help your team stay informed of their builds.
Jenkins has a number of ways to notify you of build status, commit information, and a whole host of other points of information. To implement most of these, Jenkins requires you to use a plugin of some type and then configure that plugin.
Because of the number of options, Jenkins can become a time-consuming tool to manage. Each type of notification system—Slack, GitHub, etc.—requires individual, cumbersome plugin installation and management. For self-managed servers or hosted servers, the support experience also differs, with more than a few of the hosted Jenkins providers opting to disallow many plugins and only support or implement the authorized plugins.
Here’s a shortlist of notifications that are useful to maintain consistent visibility, with respective links to get them set up on Codeship:
Of course among all of these notifications and pieces of information, the most common type is still the simple build failed or build succeeded notification.
Smart Notifications are a key feature of Codeship.
Codeship Pro uses commands inside containers. Because of this, you can define your own notifications per the baked container images however the need arises. This also provides the advantage of being part of the actual application system versus being part of the build tooling. This removes the need for plugins and adds the advantage of being able to reuse notifications for monitoring within the deployed application.
Codeship Basic, too, provides a lot of granular build notification options, giving you good visibility into the health of your projects.
Migrating notifications from Jenkins to Codeship is pretty easy. What generally works best is to begin with a list of notification types that your team uses and then reimplement each of those specific to the teams that want the particular notification.
Following are a few ways to get notified of build status or related information with Codeship.
Codeship’s Slack integration works with webhooks to deliver updates to builds and related information.
You can implement this by going to your Slack team’s “Apps & Integrations” settings, search for “Codeship” and click the app that shows up. Once on the app, you can select to create a new configuration via the button on the left hand side, and you’ll see the following screen:
Select the channel you want the notifications to be posted in and click “Add Codeship Integration”. On the following screen you will find the webhook URL you need to configure Codeship notifications.
Copy the webhook and head to your the Codeship project you want to setup with notifications. In the project settings -> notifications tab, you will be able to add the Slack integration to one or more branches or branch matches. To add a Slack notification, simply click either of the Add buttons (supply the branch if you’re setting up a new rule), select Slack, paste in your webhook URL, and select which events you want the notification to trigger on:
If you want different branches to send notifications to the same channel, simply re-use the webhook you just created. If you want to have notifications to different channels, you will need to create multiple integrations on Slack and copy the respective webhook URLs to Codeship.
The HipChat plugin for Atlassian’s chat client provides notifications for builds and additional information and links back to commits.
To setup this Codeship to send notifications to Hipchat, first go to your Hipchat team’s integrations page and find the Codeship integration.
Once the integration have been added, you are given a token which you will need to setup Codeship.
Copy the token and go to your Codeship project you want to setup with notifications. In the project settings -> notifications tab, you will be able to add the Hipchat integration to one or more branches or branch matches. To add a Hipchat notification, simply click either of the Add buttons (supply the branch if you’re setting up a new rule), select Hipchat, paste in the token, supply a channel name and select which events you want the notification to trigger on:
The token is good for any notification rule you want to create; just make sure to supply the right channel name so that notifications are sent to the right people. If you want notifications to be sent to multiple channels for the same branch, you will have to create multiple rules as each one only handles one channel name.
After many conversations, we found that the management and upkeep of plugins on Jenkins over time weren’t working for a lot of development teams, as they might not for you. With Codeship, we aim to provide a more developer-friendly solution that focuses on transitioning from existing setups easily and quickly. Removing any maintenance of plugins or other components helps our users stay focused on their application code.
In this article, we’ve covered Slack, HipChat, and our Google Chrome Shipscope App. There are other options worth reviewing of course, such as GitHub and GitLab Pull Requests and more. We hope it’s been useful for you to learn about the options for migrating notifications from Jenkins to Codeship.
Now that you know how to migrate your notifications from Jenkins to Codeship we suggest looking into our other walk-throughs:
You also might be interested in downloading these migration guides as PDFs. You can do so here.
We also have a couple of code examples and sample projects available, that make it easier to get started with Codeship.