Docs Navigation

Supported stack

Every build and deployment on Semaphore runs in an isolated virtual machine, based on Ubuntu 14.04 LTS 64-bit or Ubuntu 16.04 LTS 64-bit, depending on the selected platform type. This page describes the out-of-the-box software stack and the difference between platform types.

The timezone in the Semaphore environment is set to UTC. To find out how to change this value visit this page.

# Platform types

The platform can be changed in Project Settings > Platform.

# Standard

The Standard platform ships with a number of pre-installed languages, DB backends, and libraries. It's the go-to platform if you want a fully configured CI environment, with minimal setup from your side.

# Language support

Semaphore provides first-class support for the following programming languages:

Note that applications in any programming language can be configured manually in project settings. If you would like a language which is not listed above to be supported out of the box, please send us email or install it manually.

# Setting multiple language versions in jobs

Besides using the language which is selected in the project settings, you can utilize any combination of languages and versions from the table bellow. For example, to use Node.js 5.6.0 with a project which is not configured as such, add a following line as a setup command.

nvm use 5.6.0

To find more information about managing different language versions on Semaphore, please refer to the corresponding language page.

# Available components & services

Name Version
Ansible 2.6.4
Boost C++ libraries 1.54.0.1
Cassandra 3.11.3
Chrome 69.0.3497.92
ChromeDriver 2.41
ElasticSearch 5.4.3
Elixir 1.0.5
1.1.1
1.3.4
1.4.5
1.5.3 (default)
1.6.6
1.7.3
Erlang 18.3
19.3
20.3 (default)
21.0
Firefox 34.0 (default)
38.8.0 ESR
45.9.0 ESR
52.2.0 ESR
60.1.0 ESR
geckodriver 0.21.0 (default)
gcc 4.6.4
4.7.3
4.8.4
4.9.4
Git 2.19.0
Git LFS 2.5.1
Go 1.4.3 (default)
1.5.4
1.6.4
1.7.6
1.8.6
1.9.7
1.10.3
1.11
Gradle 4.1
Heroku CLI 7.15.2
io.js 1.8.4
2.5.0
3.3.1
ImageMagick 6.7.7.11
Java OpenJDK 7u181
Oracle JDK 8u181
Oracle JDK 9.0.1
Oracle JDK 10.0.2
Leiningen 2.8.1
Linux Kernel 4.4.0-135
Apache Maven 3.5.4
Memcached 1.4.14
MongoDB 3.4.17
MySQL 5.6.40
Node.js 0.8.28
0.10.48
0.11.16
0.12.18
4.1.2
4.2.6
4.3.2
4.4.7
4.5.0
4.6.2
4.7.3
4.8.4 (default)
5.0.0
5.1.1
5.2.0
5.3.0
5.4.1
5.6.0
5.8.0
5.10.1
5.11.1
6.1.0
6.2.2
6.3.1
6.6.0
6.9.5
6.10.3
6.11.3
7.1.0
7.3.0
7.4.0
7.6.0
7.7.4
7.10.1
8.1.4
8.2.1
8.5.0
8.7.0
8.9.4
8.11.3
8.12.0
9.2.0
9.5.0
9.11.1
10.0.0
10.7.0
10.10.0
PhantomJS 1.9.8 (default)
2.0.0
2.1.1
PHP 5.4.45
5.5.38
5.6.37 (default)
7.0.31
7.1.21
7.2.9
pip 18.0
PostGIS 2.3
PostgreSQL 9.6 (default)
10.0
Python 2.6.9
2.7.10 (default)
3.3.6
3.4.3
3.5.0
3.6.0
pypy 5.8.0
pypy3 5.8.0
Qt 4.8.1 (default)
5.4.2
5.5.1
RabbitMQ 3.6.15
Redis 4.0.10
RethinkDB 2.3.6
Ruby 2.5.1
2.5.0
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.7
2.3.6
2.3.5
2.3.4
2.3.3
2.3.1
2.3.0
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2 (default)
2.2.1
2.2.0
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.0-p598
1.9.3-p551
ree-1.8.7-2012.02
JRuby 1.7.27
JRuby 9.1.15.0
JRuby 9.2.0.0
Sphinx 2.2.11
sbt 0.13.15
Scala 2.11.11
2.12.6
SQLite 3.8.2
virtualenv 15.1.0
wkhtmltopdf 0.12.4

Note: If you need to upgrade or install additional packages for your builds, you can do it with apt-get - either from Ubuntu's official distribution channels or third-party PPAs.

# Docker

The Docker plaform has an identical software stack to the Standard platform, but with added support for running Docker images, and a pre-installed Docker toolchain (docker-ce 18.06 and docker-compose 1.22.0).

# Docker Light

The Docker Light platform is stripped from all software, and ships only with the bare essentials needed for running Docker containers during builds and deployments.

Name Version
docker-ce 18.06
docker-compose 1.22.0
gcloud 216.0.0
kubectl 1.11

# Open source

We have a number of open source test apps in various flavors that we use for verification. If your setup is different or you're having problems making your build pass, we encourage you to contact us - we'd be happy to get your app building on Semaphore as quickly as possible.

# Supported test frameworks and backends

Test frameworks known to be used by our users includes:

  • test/unit
  • RSpec
  • minitest
  • Cucumber
  • Steak
  • Selenium and Chrome headless
  • Capybara Webkit
  • Jasmine
  • Minitest
  • Karma
  • JUnit
  • QUnit
  • go test
  • Spock
  • Mockito
  • Mocha
  • PHPUnit
  • pytest

Note that these are simply a reflection of the whole supported stack.

# MacOS and iOS

MacOS and iOS will be supported in Semaphore 2.0.

Semaphore Docs are open source — Edit on GitHub

Newsletter

Occasional lightweight product and blog updates. Unsubscribe at any time.

2009-2018 © Rendered Text. All rights reserved. Terms of Service, Privacy policy, Security.