CI/CD

Migrate from TravisCI to Codefresh

28 Feb 2019 5:00am, by

Kostis Kapelonis
Kostis Kapelonis is a developer advocate at Codefresh, a continuous delivery platform build for Kubernetes and containers. Formerly a Software Engineer, Kostis has years of experience containerizing applications, building CI/CD pipelines, and developing Java applications. He lives in Greece and loves roller skating.

TravisCI was recently bought by Idera. And it seems that this acquisition, with reported layoffs, is encouraging people to look for alternatives.

I will never forget the first time I used TravisCI. I was truly impressed. I could finally package and compile code on the public internet. This was long before the cloud became a thing but after a while it started making sense. If your code is hosted already on the internet, wouldn’t it make sense to also compile in on the internet?

I have a lot of admiration for the TravisCI team. Giving compile access to the masses was initially a very controversial move. I always feared the security implications of such effort. In an era where most security guides advised against the presence of development tools on servers, TravisCI actually offered public machines designed specifically for compilation.

Of course, after all these years we know that Continuous Integration on the cloud is an astounding success pioneered by TravisCI. The benefits of having public builds for open source projects cannot be understated. Getting your source code on the internet is one thing, but seeing the effect of public pull requests before you merge them also allowed several open source projects to flourish and lowered the bar for new collaborators.

We owe a lot to TravisCI for popularizing the idea of CI on the public internet.

The Container Landscape Changed CI/CD

For a while, TravisCI was almost synonymous with cloud CI. This situation however changed quickly in the last years as:

  • Containers entered the scene and Docker usage exploded
  • Companies started to move workloads in the cloud
  • Kubernetes appeared as the de facto clustering solution.

This led to the creation of several new CI/CD solutions that embraced containers and Kubernetes/Helm. Our own software, Codefresh is one of them. We support everything that TravisCI supports and more. In particular, while TravisCI (as the name suggests) only covered the CI needs of an application, Codefresh also expanded in the CD space (Continuous Delivery) while also offering native support for Kubernetes and Helm deployments.

TravisCI had the first mover advantage in the CI space, but never actually tried to embrace containers and the paradigms they bring. Docker support in TravisCI is an afterthought, as the main platform is still VM based. We have written extensively about the benefits of containers versus traditional build solutions.

Migrating to Codefresh from TravisCI

It is very straightforward to migrate to Codefresh. The CI part of Codefresh is also offered in the form of declarative pipelines in YAML. Here is a handy guide to start your Codefresh journey:

Feature TravisCI Codefresh
Platform VM based Docker-based
Pipeline filename .travis.yml codefresh.yml
Pipeline lifecycle Fixed (before_install, install, script etc.) Flexible (any combination of steps)
Extra services Set in advance Dynamically launched via compositions
Caching dependencies Configured manually Automatic shared volume
Default Variables TRAVIS_ prefix CF_ prefix
Testing Built-in Built-in
Parallel builds Multiple VMs Parallel steps
Scheduled builds Cron Jobs Cron Triggers
Command line client The Travis Client Codefresh CLI
Pull request building Built-in Built-in
Public builds Built-in Built-in

One important thing to remember is that Codefresh is fully Docker based. Each pipeline step runs in a Docker image. That is the central design of all Codefresh pipelines. This comes in contrast to what TravisCI is doing with VMs.

Thus, the following Travis Pipeline:

in Codefresh becomes

This also means that it is very easy to use multiple versions of the same language in the same pipeline:

With Codefresh, it is very easy to create pipelines for microservices developed in different programming languages and versions.

And of course, once you migrate you also gain all the CD benefits as well such as the integrated Docker registry, the Kubernetes dashboard, the Helm dashboard, the environment dashboard, native deployment steps, and so on.

Start your migration today by opening a free account!

Reaching out to #TravisAlums

By the way, if you were working for TravisCI and are actively looking for a new position, Codefresh is hiring and we would be very happy to work with people who are passionate about CI/CD.

Feature image via Pixabay.

A newsletter digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.