We’ve all heard of continuous integration (CI), and we’ve been using it for a while now. CI pipeline can be very tedious to setup, luckily there are some cloud based solutions that work really well. One of them is nevercode.io.
In The Cloud
I actually had my own version of Jenkins running on google cloud, but that took me two or three days to setup. And it needed some attention from time to time. If I wanted to run the build my mac was acting as the slave, and it was running all my tests, while it was doing that I couldn’t do anything on my mac, the builds took way too long to finish, it was a pain.
So I decided to look for something that’s ‘hands-off’. One of the solutions that I ran into was nevercode.io. It’s a great service that’s extremely easy to setup. I wanted to try it out with one of my GitHub projects, and it literally took me a minute to setup. With nevercode you can build your iOS, Android, Cordova and Ionic projects. You can have an unlimited number of projects, and they will keep all the artifacts your build produces forever (or until you delete the project, whichever comes first 🙂 ) They also support bitbucket and your custom git servers. I’ll quickly show you how easy it is to have your CI up and running.
Setting Up Your Project
When you first register for the site and log in, you see a big plus button, so go ahead and add your new project:
In my case, I wanted to add an existing project from GitHub, and this was extremely easy since I could see all my projects in a list:
I choose my ‘DADependencyIncection’ project from the list. It’s a good example for this since it’s a complete iOS app that can be built on the device. When you select your project, nevercode will go and fetch it and try to build it, you might see something like the following:
When you click save on this screen, your project will start to build automatically for the first time:
If you reached this screen it pretty much means you’re finished. Your CI pipeline is set. What took me two days, now takes a minute, pretty amazing, right. Of course, this is not all you can do with nevercode, there’s loads more you can do.
You can inspect your builds and see the build log, the log is printed live as the build is executing (if you’re looking at the log screen as the build is executing… It’s a console output, basically 🙂 ).
One of the things I would expect to see from a cloud-based CI is the ability to run unit tests, and nevercode does not disappoint in that regard. You can run your tests on the device simulators or you can run them on the AWS device farm, which is pretty awesome. Setting up the tests if pretty straight forward, just enable them and select the simulators you want to run the tests on:
Building and testing is one thing, but distributing your builds is another and, luckily, nevercode plays nicely with third-party solutions. You can distribute your builds using a plain old email, you can send them to crashlytics, or to testflight beta, you can even slack them 🙂 One of the things I liked is sending a build to a crashlytics group, this way you can easily control the access to your build. No need for a custom script.
Build notifications are a given, you can send notifications to your email, slack, hipchat or a webhook.
There’s one last feature that I would like to mention, and it’s custom scripts. Nevercode offers you seven trigger points at which they will execute a custom shell script that you provide them. In your project settings, select ‘Environment’ and simply click on the ‘Add’ button in the ‘Environment Files’ section:
When you add your script, you will be prompted to add a name for your environment variable, and depending on the name you select, the script will be executed at a certain time, here’s the list of names and when it will be run:
You could also define your environment variables and use them in the scripts you upload here. You can do pretty much anything here, for example, I upload my coverage files to codecov.io when the tests are finished.
I nearly scratched the surface here, nevercode offers you a lot more features. It’s well worth considering. I know I’ll be using it. Price wise, it offers a free tier, and most features will be available to you, next tier is 43$ per month (which is a lot less than its main competitors) and the prices gradually increase to the enterprise tier. I recommend you give it a go and play with it for a couple of days, I’m sure you’ll like it as much as I did 🙂