This is a major Ubuntu images update that might break some builds. Changes at a glance:

  • Ubuntu 20.04 (Focal Fossa) image;
  • Qt is now pre-installed on all Ubuntu images;
  • .NET Core SDKs are unified across Ubuntu images with outdated versions removed;
  • LLVM 10 is now pre-installed on all images;
  • Updated versions of Node.js, Golang, Ruby, Python and other frameworks and tools;
  • Image baking scripts were cleaned up and improved to be more consistent across multiple Ubuntu versions.

Ubuntu 20.04 (Focal Fossa)

ubuntu2004 image is available now. Give it a try and let us know how it worked!

ubuntu image is still pointing to Ubuntu 18.04. There are no plans to switch default ubuntu image to Ubuntu 20.04 at the moment.

While we were able to pre-install most of the software available on 16.04 and 18.04 images Ubuntu 20.04 is still quite new OS and some packages are not ready, or not compatible, or work with quirks:

  • PowerShell Core - manually installed to /opt/microsoft/powershell/7-focal with /usr/bin/pwsh link;
  • .NET Core SDKs were installed from 18.04 feed with hack. Manual way is also possible.
  • .NET Core SDKs 2.1.202 and 1.1.14 were not installed because of OpenSSL 1.0 dependency;
  • VirtualBox is installed from Bionic repo, but the test is not passing;
  • RVM was not able to pull/build Ruby 2.0, 2.1, 2.2 and 2.3;
  • Mono 6.10.0.103 installed from Preview channel;
  • Microsoft SQL Server is not supported on Ubuntu 20.04 yet;
  • Azure CLI installed from Bionic repo;
  • Firefox installed from Bionic repo.

Qt

Qt is now pre-installed on all Ubuntu images.

There are two versions available:

  • 5.14.2 in $HOME/Qt/5.14.2/gcc_64/bin
  • 5.12.8 in $HOME/Qt/5.12.8/gcc_64/bin

A simple example of Qt build

Similar to Windows images there are links created for latest and major versions:

  • $HOME/Qt/latest
  • $HOME/Qt/5.14
  • $HOME/Qt/5.12

Python

Starting this image update we are going to maintain only the latest patch version of every Python release with “minor” links to the latest patches:

  • Python 3.9.0a6: $HOME/venv3.9.0 and $HOME/venv3.9
  • Python 3.8.2: $HOME/venv3.8.2 and $HOME/venv3.8
  • Python 3.7.7: $HOME/venv3.7.7 and $HOME/venv3.7
  • Python 3.6.10: $HOME/venv3.6.10 and $HOME/venv3.6
  • Python 3.5.9: $HOME/venv3.5.9 and $HOME/venv3.5
  • Python 3.4.10: $HOME/venv3.4.10 and $HOME/venv3.4
  • Python 2.7.18: $HOME/venv2.7.18 and $HOME/venv2.7
  • Python 2.6.9: $HOME/venv2.6.9 and $HOME/venv2.6

Use stack: python <version> in appveyor.yml to activate required Python virtual environment, for example: stack: python 3.8.

Versions removed: 3.8.0, 3.8.1, 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5.

Docker updates

Docker is now installed with docker.io package.

Versions updates:

  • Docker 19.03.8
  • kubectl 2020.04.21

CMake 3.17.1 Git 2.26.2

Node.js

  • Node v14.2.0
  • Node v13.14.0
  • Node v12.16.3
  • Node v10.20.1
  • Yarn 1.22.4

Ruby

  • Ruby 2.4.9
  • Ruby 2.5.7
  • Ruby 2.6.5

Golang

  • Go 1.13.10
  • Go 1.14.2

JDK

  • OpenJDK 14.0.1
  • OpenJDK 15 early access 10

.NET Core SDK (Runtime)

  • .NET Core SDK 5.0.100-preview.3 (v5.0.0-preview.3 runtime) - Preview
  • .NET Core SDK 3.1.201 (3.1.3 runtime) - LTS
  • .NET Core SDK 3.0.103 (3.0.3 runtime) - EOL
  • .NET Core SDK 2.2.402 (2.2.8 runtime) - EOL
  • .NET Core SDK 2.1.805 (2.1.17 runtime) - LTS
  • .NET Core SDK 2.1.202 (2.0.9 runtime) - EOL
  • .NET Core SDK 1.1.14 (1.1.13, 1.0.16 runtimes) - EOL

Other updates

  • Azure CLI 2.5.0
  • Firefox 76.0
  • Google Chrome 81.0.4044
  • GCC 4.8.5 (Ubuntu 16.04 only)
  • GCC 5.5.0 (Ubuntu 16.04 only)
  • GCC 6.5.0 (Ubuntu 16.04 only)
  • GCC 7.5.0
  • GCC 8.4.0
  • GCC 9.3.0
  • Clang 9.0.1
  • Clang 10.0.0 (default, set with update-alternatives)
  • Erlang 22.3.2
  • VirtualBox 6.1.6

Previous worker images

There are build worker images available from previous deployment. You can use them in case of any issues with the current images:

  • Previous Ubuntu
  • Previous Ubuntu1604
  • Previous Ubuntu1804

You can select build worker image in “Build worker image” dropdown on Environment tab of project settings or if you use appveyor.yml:

image: Previous Ubuntu