Migrating from Ubuntu 18.04 to Ubuntu 20.04#

If you've used the Semaphore Ubuntu 18.04 image, this guide will help you migrate to the Ubuntu 20.04 image.

You don't have to migrate#

The Ubuntu 18.04 image will continue to be supported and updated. There are no current plans to deprecate it.

Please note, however, that Ubuntu 18.04 is coming out of LTS in 2023, so we would advise you migrate to the Ubuntu 20.04 image when possible.

Benefits of using the Ubuntu 20.04 image#

Ubuntu 20.04 LTS (Focal Fossa) is the latest LTS release for the Ubuntu Linux server operating system. There are many good reasons to keep your development environment up to date. Here are only some of the benefits of switching to Ubuntu 20.04:

  • Speed - this release has enhanced resource usage and includes a newer kernel.
  • Longer support - Canonical will support Ubuntu 20.04 until April 2025.
  • Latest language versions - in the future, some packages may not be supported by upstream providers for Ubuntu 18.04.
  • Expanded software stack - the 20.04 software stack will continue expanding with new packages, while new packages will not be added for 18.04.
  • Containers - the newest utilities can be installed (podman, skopeo, buildah).

If you want to read more about Ubuntu 20.04, check out the Ubuntu Blog.

Ubuntu 20.04 image on Semaphore#

The Ubuntu 20.04 image on Semaphore is the successor of the Ubuntu 18.04 image. Its pre-installed stack includes the most recent versions for many languages and frameworks. For the exact list, please consult the Ubuntu 20.04 image documentation.

Using the Ubuntu 20.04 image#

As a first step, please check your software version requirements in the software availability matrix below. If the available software stack matches your requirements, changing the image type is as simple as changing the os_image: line to use ubuntu2004 instead of ubuntu1804 in your semaphore.yml file.

Software stack availability matrix

Software Ubuntu 18.04 image Ubuntu 20.04 image
AWS CLI
Azure CLI
Bazel
Buildah
Gcc
Google Chrome
ChromeDriver
Closure
Docker
Dockercompose
DigitalOcean CLI
Elixir 1.7.4
Elixir 1.8.x
Elixir 1.9.4
Elixir 1.10.x
Elixir 1.11.x
Elixir 1.11.4
Elixir 1.12.x
Erlang 21
Erlang 22
Erlang 23
Erlang 24
Firefox
Google Cloud CLI
Git
Go
Heroku
Helm
Maven
NodeJS
PhantomJS
PHP 7.1.x
PHP 7.2.x
PHP 7.3.x
PHP 7.4.x
PHP 8.0.x
Podman
Python 2.7
Python 3.6
Python 3.7
Python 3.8
Python 3.9
Ruby 1.9.x
Ruby 2.0.x
Ruby 2.1.x
Ruby 2.2.x
Ruby 2.3.x
Ruby 2.4.x
Ruby 2.5.x
Ruby 2.6.x
Ruby 2.7.x
Ruby 3.0.x
Scala
Skopeo
Terraform