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 have to migrate#

Due to the end of standard support for Ubuntu 18.04 on 31 May 2023, we will no longer provide updates for the ubuntu1804 image. However, the image will remain available until 31 March 2024. We encourage you to consider migrating to either the ubuntu2004 or ubuntu2204 image.

Benefits of using the Ubuntu 20.04 image#

Ubuntu 20.04 LTS (Focal Fossa) is the newer 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
Elixir 1.13.x
Elixir 1.14.x
Elixir 1.15.x
Erlang 21
Erlang 22
Erlang 23
Erlang 24
Erlang 25
Erlang 26
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
PHP 8.1.x
PHP 8.2.x
Podman
Python 2.7
Python 3.6
Python 3.7
Python 3.8
Python 3.9
Python 3.10
Python 3.11
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
Ruby 3.1.x
Ruby 3.2.x
Scala
Skopeo
Terraform