Travis

FreeBSD Build Environment

Overview #

This guide provides an overview of the packages, tools, and settings available in the FreeBSD CI environment.

To use our FreeBSD build infrastructure, you can use the following:

Note: We use FreeBSD 12.1 as default.

Use FreeBSD #

To use FreeBSD, add the following to your .travis.yml.

os: freebsd

Travis CI also supports the Ubuntu Linux Build Environment, Windows Build Environment and macOS Build Environment.

FreeBSD is available on our hosted fully virtualized infrastructure.

FreeBSD Improvements #

FreeBSD includes the following changes and improvements:

Remove third-party pkg-repositories #

To specify a third-party pkg-repository, you can add the source with the pkg addon and specify the packages.

For example:

os: freebsd
addons:
 pkg:
  - go
  - curl

Common Environment to FreeBSD 12.1 images #

The following versions of version control software and compilers are present on all FreeBSD 12.1 builds, along with more language-specific software, are described in detail below.

Any preinstalled software not provided by the distro is installed from ports – either a prebuilt binary if available, or a source release built with default options. For preinstalled language interpreters, a standard version manager like rvm is used, if available for the language.

Ruby Support #

  • Pre-installed Rubies: 2.6.5.
  • Available ruby versions: 1.8.6, 1.8.7, 1.9.1, 1.9.2, 1.9.3, 2.0.0, 2.1.10, 2.2.10, 2.3.8, 2.4.6, 2.5.5, 2.6.3, 2.7.0 (preview1)
  • Other ruby versions can be installed during build time:
language: ruby
rvm:
 - 2.5 # RVM should install 2.5 for FreeBSD
 - 2.6 # should use default pre-installed 2.6.5

C and C++ Support #

Pre-install compilers and linkers:

  • Make
  • GNU autotools
  • Scons
  • Shellcheck
  • Shfmt
  • Clang
  • GCC
  • CMake
  • Ccache
  • Llvm

Python Support #

  • Supported Python versions: 2.7, 3.4 or higher.
  • Pre-installed Python versions: 3.6 and 3.8.
  • Pre-installed PyPy
  • Pre-installed PIP

Go Support #

  • Pre-installed Go: 1.11
  • Other Go versions can be installed during build time by specifying the language versions with the go:-key.

Julia Support #

  • Supported Julia versions: starting with version 0.7 and higher

JAVA Support #

  • Default version: 8
  • Pre-installed OpenJDK version 8, 11, 12, 13 (OpenJDK10 not supported in FreeBSD)
  • Pre-installed Apache Ant(TM) version 1.10.6
  • Pre-installed Apache Maven version 3.6.3
  • Pre-installed Gradle version 6.0.1

Docker Support #

Currently unsupported. See FreeBSD wiki about Docker for more details and FreeBSD wiki on Container Orchestration for more native solutions.