Travis-CI is hosted continuous integration server for Github projects. The continuous integration part is fairly standard: it runs unit tests and report results after each project change.
The hosting part is unusual: the service runs tests on their own infrastructure and provides access to test results. The user does not need his own hardware nor to install and run the server. All that is part of the service.
Any public repository hosted on Github can use Travis-CI for free. Private repositories have to pay and the Travis Pro version they get is a bit different from the regular one.
This post is mainly about the free version. First chapter describes what Travis-CI does. Second part contains few things about Travis-CI server, infrastructure and organization behind it. Mini review with our experiences is located in the last chapter.
Sign up and configuration are pretty straightforward and explained in the getting started document.
Each time there is a change in any branch of the project, Travis-CI will:
In addition, Travis-CI automatically merges and tests all incoming pull requests. Tests results of pull requests are integrated into Github GUI. This feature is quite impressive, because you know whether the new code breaks your build without having to merge and test it manually.
Tests results are available in four different ways:
Email
Email is sent to the repository owner whenever build fails. It is sent also in case of virtual machine error and when the build starts working again after previous fails.
Full console output turned out to be especially useful. Our project behaved differently on Travis-CI environment and we could turn on logging and see everything that was going on. Debugging is much easier if you do not have to guess and can see any information you want.
Current status image of Less4j: .
It was designed as a distributed testing service for huge number of projects, builds, pull requests, branches and so on. Running it locally for a small number of projects seems like a huge overkill, but you can do it if you want.
Technical overview is a part of Travis-CI repository readme. In addition, both local configuration and Travis-CI architecture are explained in this blog post.
Anyway, the information is on Travis-CI donations page. Scroll down to FAQ on the bottom and all is written there. The project started a German company Travis CI GmbH in Berlin and lives mostly out of donations, founders money and from what they earn on Travis Pro.
The same page contains also future plans and does a bit of show about donations. In short, if you donate, they will send you stickers, ringtones, personal thanks and so on. More importantly, you can get also discounts on future Travis-Pro features.
Tests have been performed withing few minutes most of the time. However, we have seen also a slow day, when it took few hours to run the test. At one point, Travis-CI started to ignore our project changes. The problem was fixed after we forced build from Github administration page.
Overall, results are very good. We assume that response to private repositories is going to be a bit faster, simply because they are paid.
The hosting part is unusual: the service runs tests on their own infrastructure and provides access to test results. The user does not need his own hardware nor to install and run the server. All that is part of the service.
Any public repository hosted on Github can use Travis-CI for free. Private repositories have to pay and the Travis Pro version they get is a bit different from the regular one.
This post is mainly about the free version. First chapter describes what Travis-CI does. Second part contains few things about Travis-CI server, infrastructure and organization behind it. Mini review with our experiences is located in the last chapter.
Features
Travis-CI is continuous integration server and nothing else. It builds the project, runs tests and shows tests results in multiple ways. It has some limitations listed in a last sub-chapter, but they should not matter much for most open source projects.Basics
The service is integrated with Github and you must host your project on Github if you want to use it. Once configured, Github sends notifications about every repository change to Travis.Sign up and configuration are pretty straightforward and explained in the getting started document.
Each time there is a change in any branch of the project, Travis-CI will:
- initialize a clean virtual machine with Ubuntu Linux,
- clone project repository from Github,
- configure the machine,
- build changed branch of the project,
- run tests,
- report test results.
In addition, Travis-CI automatically merges and tests all incoming pull requests. Tests results of pull requests are integrated into Github GUI. This feature is quite impressive, because you know whether the new code breaks your build without having to merge and test it manually.
Test Results
All test results of all public repositories are public. This is probably the main difference against the Travis Pro version. Tests results of private repositories are never published.Tests results are available in four different ways:
- email,
- web page,
- status image,
- json API.
Web Page
Each repository has its own page with list of builds, status of each build and console output of each used virtual machine. You can try less4j test results page to see how it looks like.Full console output turned out to be especially useful. Our project behaved differently on Travis-CI environment and we could turn on logging and see everything that was going on. Debugging is much easier if you do not have to guess and can see any information you want.
Status Image
Status image represents last tests result of the project or specified branch. It is green when the build passed, red if it failed and grey if it is still running. You can add it to your project site, readme file or any other web page.Current status image of Less4j: .
Json API
Finally, you can fetch test results through public API.Limitations
Due to limited computing time, build time of each project is limited to 20 minutes. In addition, tests are not necessary performed immediately. Requests wait in queue until Travis finds free resources to perform them.Under the Hood
This chapter contains information about Travis-CI infrastructure and organization behind it. If you are not interested, skip to the next chapter.Software
The software running on the server was written in ruby and is open source. Its source code is published on Travis-CI Github account. The core repository has the same name - Travis-CI.It was designed as a distributed testing service for huge number of projects, builds, pull requests, branches and so on. Running it locally for a small number of projects seems like a huge overkill, but you can do it if you want.
Technical overview is a part of Travis-CI repository readme. In addition, both local configuration and Travis-CI architecture are explained in this blog post.
Hardware
Hosted server runs partly on Heroku and partly on members infrastructure.Organization and Funding
Although Travis-CI documentation does pretty good job with technical information, finding out who they are and how they are funded was a bit harder. This was weird, because hosting and organizing such service must costs a lot of effort and money.Anyway, the information is on Travis-CI donations page. Scroll down to FAQ on the bottom and all is written there. The project started a German company Travis CI GmbH in Berlin and lives mostly out of donations, founders money and from what they earn on Travis Pro.
The same page contains also future plans and does a bit of show about donations. In short, if you donate, they will send you stickers, ringtones, personal thanks and so on. More importantly, you can get also discounts on future Travis-Pro features.
Experiences
We setted up Travis-CI a few days ago, so our experiences are quite short. Travis-CI turned out to be very easy to use. Its documentation is easy to read and console output very practical. Project configuration have been straightforward without any problems.Tests have been performed withing few minutes most of the time. However, we have seen also a slow day, when it took few hours to run the test. At one point, Travis-CI started to ignore our project changes. The problem was fixed after we forced build from Github administration page.
Overall, results are very good. We assume that response to private repositories is going to be a bit faster, simply because they are paid.
7 comments:
Thanks for posting. Keep posting SEO Online Training
Java Online Training
python Online Training
Salesforce Online Training
Tableau Online Training
AWS Online training
Dot Net OnlineTraining
DevOps Online Training
Selenium Online Training
Abinitio online training
Android online training
Ansible online training
Appium online training
AWS online training
Azure DevOps online training
Azure online training
Chef online training
Data Guard online training
This type of article is interesting and fun to read. I like reading and I am always searching for informative info like this. online business
Great content indeed. I see the greatest contents on your blog and I extremely love reading them. 한국야동닷컴
Click this link
국산야동
After reading this article I was amazed. You explain it well. Keep on blogging, thanks!
I enjoy every little bit of it. I bookmarked to check out new stuff of this blog. Thanks
Your blog have nice information, I got good ideas from this amazing blog.
Post a Comment