Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ubuntu-latest workflows will use Ubuntu-20.04 #1816

Closed
AlenaSviridenko opened this issue Oct 14, 2020 · 99 comments
Closed

Ubuntu-latest workflows will use Ubuntu-20.04 #1816

AlenaSviridenko opened this issue Oct 14, 2020 · 99 comments

Comments

@AlenaSviridenko
Copy link
Contributor

AlenaSviridenko commented Oct 14, 2020

UPDATE: Migration has been finished and all ubuntu-latest builds are using Ubuntu 20.04

Ubuntu-20.04 is ready to be the default version for the “ubuntu-latest” label in GitHub Actions and Azure DevOps. This change will be rolled out over a period of several weeks beginning on November, 30. (December, 22 - January, 4 will be a migration break due to holidays)

If you see any issues with your workflows during this transition period:

  • File an issue in this repository
  • Switch back to Ubuntu 18.04 by specifying the “ubuntu-18.04” label. We will continue to support Ubuntu 18.04.

Note that image software between Ubuntu-18.04 and Ubuntu-20.04 differs not only by the pre-installed versions of tools, but also by the default versions of some tools. See the list of missing and changes software below.

Software differences

Tool name Ubuntu 18.04 Ubuntu 20.04 Notes
AWS CLI 1.18.173 2.0.62 These two versions have major set of breaking changes. See migration guide for details
.NET Core 2.1.x, 3.0.x, 3.1.x 2.1.x, 3.1.x .NET Core 3.0 was removed (3.0.100, 3.0.101, 3.0.102, 3.0.103). NET Core 3.0 has reached end of life, meaning it is no longer supported and not recommended to use. If you still need it, consider using setup-dotnet and UseNetCore tasks.
Java 7
8(default)
11
12
8
11(default)
If you need to use other versions of Java, consider using setup-java and Java tool installer tasks.
Android 17.0 - 30.0 27.0 - 30.0 Android Platforms and build tools < 27.0 were removed from image. Consider installation in runtime using sdkmanager
Ruby 2.5.1 2.7.0 Default Ruby was changed from 2.5.x to 2.7.x. Consider using setup-ruby and UseRuby tasks.
Ruby toolcache 2.4
2.5
2.6
2.7
2.5
2.6
2.7
Ruby 2.4 will become unavailable via install tasks
Python3 3.6.9 3.8.2 Default Python will be updated from 3.6 to 3.8. Consider using setup-python or UsePython to switch version
PHP 7.1
7.2
7.3
7.4
8.0
7.4
8.0
-
Azure PowerShell 1.0.0, 1.6.0, 2.3.2, 2.6.0, 2.8.0, 3.1.0, 3.5.0, 3.8.0, 4.3.0, 4.4.0, 4.6.0, 4.7.0 4.8.0 -
Boost 1.72.0 - Boost is not pre-installed on Ubuntu 20.04 image
MySQL 5.7 8.0 See migration guide for more details about breaking changes
SVN 1.9.7 1.13.0 -
Swig 3.0.12 4.0.1 -
libcurl apt package libcurl3 libcurl4 -
Clang 6
8
9 (default)
8
9
10(default)
-

Missing software

Known issues:

  • libcurl3 missing in the repo, replaced with libcurl4
  • Python2 is absent on Ubuntu 20, but required for some packages to install. Can be installed via apt-get install python-is-python2 or via toolcache
  • Python2 pip should be installed separately(curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py, python2 get-pip.py)
  • Ansible should be installed from the official Ubuntu repo, ppa:ansible/ansible isn't updated yet
  • Set condition in git-lfs installation (Ubuntu 18 & 20 can install git-lfs from Ubuntu repo)
  • Android SDK should be pointed to Java8 explicitly

Deprecated:

Haskell: https://launchpad.net/~hvr/+archive/ubuntu/ghc-eol

  • ghc-8.0.2
  • ghc-8.2.2
  • ghc-8.4.4
  • ghc-8.6.2
  • ghc-8.6.3
  • ghc-8.6.4
  • ghc-8.8.1
  • ghc-8.8.2
  • cabal-install-2.0
  • cabal-install-2.2
  • cabal-install-2.4
  • cabal-install-3.0

.Net Core

2.2 — EOL December 23, 2019:

  • 2.2.402/dotnet-sdk-2.2.402-linux-x64.tar.gz
  • 2.2.401/dotnet-sdk-2.2.401-linux-x64.tar.gz
  • 2.2.301/dotnet-sdk-2.2.301-linux-x64.tar.gz
  • 2.2.300/dotnet-sdk-2.2.300-linux-x64.tar.gz
  • 2.2.207/dotnet-sdk-2.2.207-linux-x64.tar.gz
  • 2.2.206/dotnet-sdk-2.2.206-linux-x64.tar.gz
  • 2.2.205/dotnet-sdk-2.2.205-linux-x64.tar.gz
  • 2.2.204/dotnet-sdk-2.2.204-linux-x64.tar.gz
  • 2.2.203/dotnet-sdk-2.2.203-linux-x64.tar.gz
  • 2.2.202/dotnet-sdk-2.2.202-linux-x64.tar.gz
  • 2.2.110/dotnet-sdk-2.2.110-linux-x64.tar.gz
  • 2.2.109/dotnet-sdk-2.2.109-linux-x64.tar.gz
  • 2.2.108/dotnet-sdk-2.2.108-linux-x64.tar.gz
  • 2.2.107/dotnet-sdk-2.2.107-linux-x64.tar.gz
  • 2.2.106/dotnet-sdk-2.2.106-linux-x64.tar.gz
  • 2.2.105/dotnet-sdk-2.2.105-linux-x64.tar.gz
  • 2.2.104/dotnet-sdk-2.2.104-linux-x64.tar.gz
  • 2.2.103/dotnet-sdk-2.2.103-linux-x64.tar.gz
  • 2.2.102/dotnet-sdk-2.2.102-linux-x64.tar.gz
  • 2.2.101/dotnet-sdk-2.2.101-linux-x64.tar.gz
  • 2.2.100/dotnet-sdk-2.2.100-linux-x64.tar.gz

3.0 — EOL March 3, 2020:

  • 3.0.103/dotnet-sdk-3.0.103-linux-x64.tar.gz
  • 3.0.102/dotnet-sdk-3.0.102-linux-x64.tar.gz
  • 3.0.101/dotnet-sdk-3.0.101-linux-x64.tar.gz
  • 3.0.100/dotnet-sdk-3.0.100-linux-x64.tar.gz

Azure PowerShell

  • 1.0.0
  • 1.6.0
  • 2.3.2
  • 2.6.0
  • 2.8.0
  • 3.1.0
  • 3.5.0
Each major Go release is supported until there are two newer major releases. For example, Go 1.5 was supported until the Go 1.7 release, and Go 1.6 was supported until the Go 1.8 release. We fix critical problems, including critical security problems, in supported releases as needed by issuing minor revisions

GOLang

  • Go 1.11,1.12,1.13

Java:

  • Java 7
  • Default JDK set to 11

PHP

  • 7.1
  • 7.2
  • 7.3

Android:

  • "platforms;android-26"
  • "platforms;android-25"
  • "platforms;android-24"
  • "platforms;android-23"
  • "platforms;android-22"
  • "platforms;android-21"
  • "platforms;android-19"
  • "platforms;android-17"
  • "build-tools;26.0.3"
  • "build-tools;26.0.2"
  • "build-tools;26.0.1"
  • "build-tools;26.0.0"
  • "build-tools;25.0.3"
  • "build-tools;25.0.2"
  • "build-tools;25.0.1"
  • "build-tools;25.0.0"
  • "build-tools;24.0.3"
  • "build-tools;24.0.2"
  • "build-tools;24.0.1"
  • "build-tools;24.0.0"
  • "build-tools;23.0.3"
  • "build-tools;23.0.2"
  • "build-tools;23.0.1"
  • "build-tools;22.0.1"
  • "build-tools;21.1.2"
  • "build-tools;20.0.0"
  • "build-tools;19.1.0"
  • "add-ons;addon-google_apis-google-24"
  • "add-ons;addon-google_apis-google-23"
  • "add-ons;addon-google_apis-google-22"
  • "add-ons;addon-google_apis-google-21"
  • "cmake;3.6.4111459"
@carestad carestad mentioned this issue Oct 28, 2020
7 tasks
@jhpratt
Copy link

jhpratt commented Nov 17, 2020

Why is this being output as a warning? If a user relies on behavior from a specific version, they should be pinning it.

@AlenaSviridenko
Copy link
Contributor Author

Hi @jhpratt ,
we have added a warning for those workflows who are using ubuntu-latest to notify about the upcoming change and give a time to check workflows and adjust them if needed beforehand the transition.
ubuntu-18.04 is the most popular OS in GitHub Actions and most of the customers are using it by tagging ubuntu-latest, so we should use as many communication channels as possible to reduce the unpredictable impact.

@WiredEntrepreneur
Copy link

How do I get a post-deployment command to run on ubuntu-latest? The one in question is:
sudo ln -s /usr/bin/python3 /usr/bin/python
need python to run as many node libraries are using python instead of python3.
Can someone please assist here in updating the Github workflow? Thank you

We already have this link - /usr/bin/python -> python3

lrwxrwxrwx 1 root root [7]Apr 15  2020 /usr/bin/python -> python3
lrwxrwxrwx 1 root root 9 Mar 13  2020 /usr/bin/python3 -> python3.[8]
Python 3.8.10

Hi thank you for such a prompt reply but the following is what I am getting after deploying ubuntu-latest. After each deploy we are running the syslink command manually to have python

root@b2f9df891886:~# python
-bash: python: command not found
root@b2f9df891886:~# whereis python 
python: /usr/bin/python3.7 /usr/bin/python3.7m /usr/lib/python3.7 /usr/lib/python2.7 /etc/python3.7 /usr/local/lib/python3.7

@al-cheb
Copy link
Contributor

al-cheb commented Feb 24, 2022

How do I get a post-deployment command to run on ubuntu-latest? The one in question is:
sudo ln -s /usr/bin/python3 /usr/bin/python
need python to run as many node libraries are using python instead of python3.
Can someone please assist here in updating the Github workflow? Thank you

We already have this link - /usr/bin/python -> python3

lrwxrwxrwx 1 root root [7]Apr 15  2020 /usr/bin/python -> python3
lrwxrwxrwx 1 root root 9 Mar 13  2020 /usr/bin/python3 -> python3.[8]
Python 3.8.10

Hi thank you for such a prompt reply but the following is what I am getting after deploying ubuntu-latest. After each deploy we are running the syslink command manually to have python

root@b2f9df891886:~# python
-bash: python: command not found
root@b2f9df891886:~# whereis python 
python: /usr/bin/python3.7 /usr/bin/python3.7m /usr/lib/python3.7 /usr/lib/python2.7 /etc/python3.7 /usr/local/lib/python3.7

You should use the main branch to build your own images. This symlink is a part of python-is-python3 package which is installed during basic.sh:

~$ dpkg -S /usr/bin/python
python-is-python3: /usr/bin/python

https://github.visualstudio.com/virtual-environments/_build/results?buildId=123034&view=logs&j=011e1ec8-6569-5e69-4f06-baf193d1351e&t=5431112d-2b61-5a5f-7042-ef698f761043 (line 2908 - azure-arm: Install python-is-python3)

@WiredEntrepreneur
Copy link

WiredEntrepreneur commented Feb 24, 2022

@al-cheb, thanks you again for the prompt reply and shared links. I want to mention that we are not using Azure DevOps but Github actions. The folloiwng is my workflow code, pretty standard except I added python-is-python3 and update-alternatives to install syslink /usr/bin/python

name: Build and deploy Node.js project to Azure Function App

on:
  push:
    branches:
      - main
  workflow_dispatch:

env:
  AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
  NODE_VERSION: '14.x' # set this to the node version to use (supports 8.x, 10.x, 12.x)

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout GitHub Action'
        uses: actions/checkout@v2

      - name: Setup Node ${{ env.NODE_VERSION }} Environment
        uses: actions/setup-node@v1
        with:
          node-version: ${{ env.NODE_VERSION }}
          
      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.x'
      
      - name: 'Install python syslink'
        shell: bash
        run: |
          sudo apt-get install python-is-python3
          sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Even though the deployment is done successfully I am not having python available in /usr/bin

Workflow file

@al-cheb
Copy link
Contributor

al-cheb commented Feb 24, 2022

@WiredEntrepreneur,

If you use setup-python task it adds a path where is python stored: /opt/hostedtoolcache/Python/3.10.2/x64/bin
image

@WiredEntrepreneur
Copy link

WiredEntrepreneur commented Feb 24, 2022

@al-cheb I just checked, I have package python-is-python3 but /usr/bin/python is missing. I didn't totally get your previous post but please can you let me know what needs to be changed in the workflow file to get /usr/bin/python and also we need this pointed to python3 I removed setup-python from the workflow file as ubuntu-latest already has 3.7 installed.
Thank you

@miketimofeev
Copy link
Contributor

@WiredEntrepreneur a few notes:

  • setup-python action changes the PATH so the python is used from the /opt/hostedtoolcache/Python/<version>/x64/bin directory
  • python-is-python3 is a package for the system python and not compatible with the Python from the setup-python action

You can use python and python3 directly after using the setup-python action:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.10'
      
      - name: 'Check Python'
        shell: bash
        run: |
          python --version
          python3 --version

leahecole pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Mar 10, 2022
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
leahecole pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Jun 4, 2022
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
leahecole pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Jun 7, 2022
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
kosteev pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Jul 9, 2022
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
leahecole pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Aug 27, 2022
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
leahecole pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Oct 4, 2022
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
renaforsberg824 added a commit to renaforsberg824/ide-helper-laravel-developer that referenced this issue Oct 5, 2022
* gha: be more specific which OS to use

Avoids "surprises" when Github changes the underlying version, like they
currently announce with a warning:
> Ubuntu-latest workflows will use Ubuntu-20.04 soon. For more details, see actions/runner-images#1816

Note: basically right now "latest" is actually 18.04 and not 20.04

* composer fix-style

* gha: require league/flysystem:^1 for lumen

2.* doesn't work out of the box

* gha: explicit version of composer isn't necessary anymore

v2 is already the default

* Be explicit to require the pdo SQLite extension for tests

Co-authored-by: laravel-ide-helper <[email protected]>
lisadeloach63 added a commit to lisadeloach63/ide-helper-reso-laravel that referenced this issue Oct 7, 2022
* gha: be more specific which OS to use

Avoids "surprises" when Github changes the underlying version, like they
currently announce with a warning:
> Ubuntu-latest workflows will use Ubuntu-20.04 soon. For more details, see actions/runner-images#1816

Note: basically right now "latest" is actually 18.04 and not 20.04

* composer fix-style

* gha: require league/flysystem:^1 for lumen

2.* doesn't work out of the box

* gha: explicit version of composer isn't necessary anymore

v2 is already the default

* Be explicit to require the pdo SQLite extension for tests

Co-authored-by: laravel-ide-helper <[email protected]>
aglipska pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Oct 7, 2022
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
sadafrangian3 pushed a commit to sadafrangian3/ide-helper-laravel that referenced this issue Oct 18, 2022
* gha: be more specific which OS to use

Avoids "surprises" when Github changes the underlying version, like they
currently announce with a warning:
> Ubuntu-latest workflows will use Ubuntu-20.04 soon. For more details, see actions/runner-images#1816

Note: basically right now "latest" is actually 18.04 and not 20.04

* composer fix-style

* gha: require league/flysystem:^1 for lumen

2.* doesn't work out of the box

* gha: explicit version of composer isn't necessary anymore

v2 is already the default

* Be explicit to require the pdo SQLite extension for tests

Co-authored-by: laravel-ide-helper <[email protected]>
leahecole pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Dec 7, 2022
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
leahecole pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Jan 27, 2023
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
chenyt9 pushed a commit to MotorolaMobilityLLC/external-selinux that referenced this issue Mar 6, 2023
When migrating to Ubuntu 20.04, Ruby 2.4 is no longer available, and
this migration is coming soon, according to
actions/runner-images#1816.

Signed-off-by: Nicolas Iooss <[email protected]>
smile1130 added a commit to smile1130/laravel-IDE that referenced this issue Jun 16, 2023
* gha: be more specific which OS to use

Avoids "surprises" when Github changes the underlying version, like they
currently announce with a warning:
> Ubuntu-latest workflows will use Ubuntu-20.04 soon. For more details, see actions/runner-images#1816

Note: basically right now "latest" is actually 18.04 and not 20.04

* composer fix-style

* gha: require league/flysystem:^1 for lumen

2.* doesn't work out of the box

* gha: explicit version of composer isn't necessary anymore

v2 is already the default

* Be explicit to require the pdo SQLite extension for tests

Co-authored-by: laravel-ide-helper <[email protected]>
windragon0910 added a commit to windragon0910/symfony_ecom_framework that referenced this issue Oct 25, 2023
In the coming weeks, ubuntu-latest will start pointing to ubuntu-20.04 instead of ubuntu-18.04. Let's prevent potential failures by specifying directly ubuntu-18.04 for now and consiously upgrading to ubuntu-20.04 when we're ready - possibly after dropping PHP 7.3 compatibility, since setting it up on the newer version of Ubuntu takes a lot more time.

Ref: actions/runner-images#1816
windragon0910 added a commit to windragon0910/symfony_ecom_framework that referenced this issue Oct 25, 2023
This PR was merged into the 1.8 branch.

Discussion
----------

In the coming weeks, ubuntu-latest will start pointing to ubuntu-20.04 instead of ubuntu-18.04. Let's prevent potential failures by specifying directly ubuntu-18.04 for now and consiously upgrading to ubuntu-20.04 when we're ready - possibly after dropping PHP 7.3 compatibility, since setting it up on the newer version of Ubuntu takes a lot more time.

Ref: actions/runner-images#1816

Commits
-------

76490228d43179b6dcf108d92a0a4525912339a2 [CI] Switch from ubuntu-latest to ubuntu-18.04
kosteev pushed a commit to kosteev/composer-airflow-test-copybara that referenced this issue Sep 12, 2024
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
kosteev pushed a commit to kosteev/composer-airflow-test-copybara that referenced this issue Sep 12, 2024
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
kosteev pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Sep 17, 2024
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
kosteev pushed a commit to GoogleCloudPlatform/composer-airflow that referenced this issue Nov 7, 2024
Ubuntu 20.04 will soon become the default runner for GA.

See: actions/runner-images#1816

This PR tests if this is working fine.

GitOrigin-RevId: c38dadb526f7104df7a1a6feda72ce1b65557bd9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests