Today we are happy to announce support for an 11th language on Travis CI: Haskell. Known for its concision and very advanced type system, Haskell has been attracting some of the brightest minds in the programming languages research community for a couple of decades.
Haskell can be found in code analysis tools, DSLs for cryptographic algorithms, secure networking stack implementations, network applications, plenty of financial software and even system administration. So Haskell sounds like the right candidate to complete Travis’ Eleven.
Wait, What Is Travis CI Anyway?
Travis CI is a distributed continuous integration for the open source community. It is integrated with GitHub and offers first class support for multiple technologies. Our CI environment provides many tools, libraries, and services (MySQL, PostgreSQL, Redis, RabbitMQ, MongoDB and so on), and you don’t have to bother setting up your own CI server.
You can watch build logs in near-real time in your browser, access logs later, and even link to log line numbers (for example, when reporting an issue).
Thanks to GitHub integration, Travis CI lets your contributors effortlessly add their development forks to test work-in-progress branches and makes your CI status very visible to the community thanks to our CI badges.
Started in early 2011, Travis CI has since run half a million builds for over 7,000 open source projects, including Ruby, Ruby on Rails, RubyGems, Node.js, Leiningen, Symfony and many more.
Getting Your Project on Travis CI
Travis CI currently provides Haskell Platform 2011.04 (with GHC 7, Cabal, Happy, Alex and so on). To get started, you need to add one file (.travis.yml) and the GitHub hook as described in the Getting Started guide. If your project uses Cabal, a minimal .travis.yml would look like this:
Travis CI will run the dependency installation command:
and then the testing commands:
cabal configure --enable-tests && cabal build && cabal test
By default Travis’ build workflow is
- Clone your repository from GitHub
- (If applicable) pick language/runtime version to use
before_installcommands (can be more than one)
- Install dependencies. Travis will use
cabal installby default. You can override the command using the
installkey in your .travis.yml.
- Run one or more
- Run the
cabal build && cabal test. This too can be overridden in .travis.yml.
- Report the build has finished running.
To learn what tools and services (MySQL, Postgres, Riak, etc.) are available in the CI environment, refer to the CI environment guide.
Thank You Contributors
We would like to thank Alessandro Vermeulen for his help with making Haskell support on Travis CI a reality.