Scala#

This guide covers configuring Scala projects on Semaphore. If you’re new to Semaphore, we recommend reading the guided tour first.

Hello world#

The following Semaphore configuration file compiles and executes a Scala program:

# .semaphore/semaphore.yml

version: v1.0
name: Using Scala in Semaphore
agent:
  machine:
    type: e1-standard-2
    os_image: ubuntu1804
blocks:
  - name: Choose version
    task:
      jobs:
      - name: Choose Scala version
        commands:
          - checkout
          - sem-version scala 2.12
          - scala hello.scala

The contents of the Scala program are as follows:

// hello.scala

object HW {
    def main(args: Array[String]) {
      println("Hello World!")
    }
  }

Scala Play example project#

Semaphore provides a tutorial and demo Play application with a working CI pipeline that you can use to get started quickly. You can find them here:

Supported Scala versions#

The supported Scala versions via the Ubuntu1804 image are:

  • 2.11.11
  • 2.12.6

Changing the Scala version#

You can choose the Scala version to use with the help of the sem-version utility

Choosing Scala version 2.11 can be done with the following command:

sem-version scala 2.11

In order to go back to Scala 2.12, which is the default version of the Semaphore Virtual Machine (VM), you should execute the following command:

sem-version scala 2.12

Dependency management#

You can use Semaphore's cache tool to store and load any files or Scala libraries that you want to reuse between jobs.

System dependencies#

Scala projects might need packages like database drivers. As you have full sudo access on each Semaphore 2.0 VM, you are free to install all required packages.

See Also#