🚀  Our new eBook is out – “CI/CD for Monorepos.” Learn how to effectively build, test, and deploy code with monorepos. Download now →

Scala Support on Semaphore

We’re happy to announce that as of today, Semaphore officially supports continuous integration and deployment of Scala applications.

Scala: A Multi-Paradigm Language on JVM

What happens when you combine functional and object-oriented programming? Scala. The language is all about modularity. Scala’s approach is to implement small features which are using both object oriented and functional constructs to communicate effectively. This results in great flexibility. True to its name (short for “Scalable Language”), Scala is great for future proofing server side software with multi-threaded code and distributing the load in the cloud.

It runs on JVM and allows you to freely mix Java and Scala classes. This means you can integrate your favorite Java libraries with your Scala project and vice-versa. Scala programs are compiled to Java bytecode, so many bugs can be caught at compile-time before they see the light of day. However, Scala provides a lot of improvements over Java. A more flexible syntax, a unified type system which has no distinction between primitive types and boxed types and powerfull for-expressions just to name a few.

Scala is a mature language suitable for small projects and mission-critical systems alike providing excellent scalability.

Setting Up Continuous Integration for a Scala Project

After you create a Semaphore account you can add a Scala project right away. Adding a project from the dashboard will offer you a choice between GitHub and Bitbucket.

When you select your project from the list along the desired branch, a brief analysis will run which will suggest commands based on the language in which the project is written in.

Automatic configuration of a Scala repository for continuous integration

The sbt build tool is included in the Semaphore platform by default. In version 0.13.7 of sbt, an experimental feature was introduced for dependency caching. Instead of a full dependency graph, mini graphs are used for each dependency. If your project is configured to take advantage of this feature, Semaphore will also cache those dependecies between builds.

First continuous integration build of a Scala project on Semaphore

With testing frameworks like specs2 and ScalaTest combined with Semaphore’s continuous integration and deployment features, you can rest assured that your code is always ready for action.

We’re looking forward to seeing things you make with Scala and Semaphore.

Happy building!

Have a comment? Join the discussion on the forum