diff options
author | Ivan Komissarov <ABBAPOH@gmail.com> | 2020-09-10 18:16:33 +0200 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2020-09-14 14:32:10 +0000 |
commit | 018194f4a832b406999762fdac3417dfbcb9b9cb (patch) | |
tree | f2da37eee53de5a550c8e60fd8b838bf29b956d3 | |
parent | 39e8a5773efadb653da2f59a8f758b697cecf569 (diff) | |
download | qbs-018194f4a832b406999762fdac3417dfbcb9b9cb.tar.gz |
Upgrade linux images to Ubuntu 20.04
Change-Id: I4dcfbe846f7847874908ed8ad84ac615a5a739c1
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | .github/workflows/main.yml | 28 | ||||
-rw-r--r-- | .travis.yml | 34 | ||||
-rw-r--r-- | docker-compose.yml | 26 | ||||
-rwxr-xr-x | docker/bionic/entrypoint.sh | 96 | ||||
-rw-r--r-- | docker/focal/Dockerfile (renamed from docker/bionic/Dockerfile) | 10 | ||||
-rw-r--r-- | docker/focal/test-android.Dockerfile (renamed from docker/bionic/test-android.Dockerfile) | 6 | ||||
-rw-r--r-- | docker/focal/test-baremetal.Dockerfile | 2 |
7 files changed, 54 insertions, 148 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4d9ed2280..ff7ea474d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -37,14 +37,14 @@ jobs: path: ~/.ccache key: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache-${{ steps.get-timestamp.outputs.timestamp }} restore-keys: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache- - - name: Pull the Bionic Image - run: docker-compose pull bionic + - name: Pull the Focal Image + run: docker-compose pull focal - name: Print ccache stats - run: docker-compose run bionic ccache -s + run: docker-compose run focal ccache -s - name: Build Qbs - run: docker-compose run bionic ${{ matrix.config.script }} + run: docker-compose run focal ${{ matrix.config.script }} - name: Print ccache stats - run: docker-compose run bionic ccache -s + run: docker-compose run focal ccache -s - name: Upload artifacts uses: 'actions/upload-artifact@v2' with: @@ -92,14 +92,14 @@ jobs: path: ~/.ccache key: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache-${{ steps.get-timestamp.outputs.timestamp }} restore-keys: ${{ runner.os }}-${{ matrix.config.cacheid }}-ccache- - - name: Pull the Bionic Image - run: docker-compose pull bionic + - name: Pull the Focal Image + run: docker-compose pull focal - name: Print ccache stats - run: docker-compose run bionic ccache -s + run: docker-compose run focal ccache -s - name: Build Qbs - run: docker-compose run bionic ${{ matrix.config.script }} + run: docker-compose run focal ${{ matrix.config.script }} - name: Print ccache stats - run: docker-compose run bionic ccache -s + run: docker-compose run focal ccache -s build-macos: name: Build on macOS @@ -226,25 +226,25 @@ jobs: config: - { name: 'Run Linux tests (gcc)', - image: 'bionic', + image: 'focal', profile: 'qt-gcc_64', script: './scripts/test-qbs.sh', } - { name: 'Run Linux tests (clang)', - image: 'bionic', + image: 'focal', profile: 'qt-clang_64', script: './scripts/test-qbs.sh', } - { name: 'Run Android tests (Qt 5.13)', - image: 'bionic-android-513', + image: 'focal-android-513', profile: '', script: './scripts/test-qt-for-android.sh', } - { name: 'Run Android tests (Qt 5.14)', - image: 'bionic-android-514', + image: 'focal-android-514', profile: '', script: './scripts/test-qt-for-android.sh', } diff --git a/.travis.yml b/.travis.yml index 3741d65f1..02359c3a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,47 +25,47 @@ stages: jobs: include: - - &build-on-bionic + - &build-on-focal stage: Build Qbs and and run autotests - name: With Qbs on Ubuntu bionic (linux_gcc64) + name: With Qbs on Ubuntu focal (linux_gcc64) env: BUILD_OPTIONS="modules.cpp.compilerWrapper:ccache modules.qbs.debugInformation:true" services: - docker before_script: - - docker-compose pull bionic + - docker-compose pull focal - ccache -M 5G - ccache -s after_script: - ccache -s script: - - docker-compose run bionic scripts/build-qbs-with-qbs.sh + - docker-compose run focal scripts/build-qbs-with-qbs.sh - - <<: *build-on-bionic + - <<: *build-on-focal name: With Qbs and with Qt 5.13 for Android before_install: - - docker-compose pull bionic - - docker-compose pull bionic-android-513 + - docker-compose pull focal + - docker-compose pull focal-android-513 script: - - docker-compose run bionic qbs build modules.cpp.compilerWrapper:ccache modules.qbsbuildconfig.enableBundledQt:true config:release - - docker-compose run bionic-android-513 scripts/test-qt-for-android.sh release/install-root/usr/local/bin + - docker-compose run focal qbs build modules.cpp.compilerWrapper:ccache modules.qbsbuildconfig.enableBundledQt:true config:release + - docker-compose run focal-android-513 scripts/test-qt-for-android.sh release/install-root/usr/local/bin - - <<: *build-on-bionic + - <<: *build-on-focal name: With Qbs and with Qt 5.14 for Android before_install: - - docker-compose pull bionic - - docker-compose pull bionic-android-514 + - docker-compose pull focal + - docker-compose pull focal-android-514 script: - - docker-compose run bionic qbs build modules.cpp.compilerWrapper:ccache modules.qbsbuildconfig.enableBundledQt:true config:release - - docker-compose run bionic-android-514 scripts/test-qt-for-android.sh release/install-root/usr/local/bin + - docker-compose run focal qbs build modules.cpp.compilerWrapper:ccache modules.qbsbuildconfig.enableBundledQt:true config:release + - docker-compose run focal-android-514 scripts/test-qt-for-android.sh release/install-root/usr/local/bin - - <<: *build-on-bionic + - <<: *build-on-focal name: With Qbs and with baremetal before_install: - - docker-compose pull bionic + - docker-compose pull focal - docker-compose pull focal-baremetal script: - - docker-compose run bionic qbs build modules.cpp.compilerWrapper:ccache modules.qbsbuildconfig.enableBundledQt:true config:release + - docker-compose run focal qbs build modules.cpp.compilerWrapper:ccache modules.qbsbuildconfig.enableBundledQt:true config:release - QBS_AUTOTEST_PROFILE=arm-none-eabi-gcc-9_2 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin - QBS_AUTOTEST_PROFILE=avr-gcc-5_4 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin - QBS_AUTOTEST_PROFILE=msp430-gcc-4_6 docker-compose run focal-baremetal scripts/test-baremetal.sh release/install-root/usr/local/bin diff --git a/docker-compose.yml b/docker-compose.yml index 5d7c227c1..d69776c67 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,33 +17,33 @@ x-default-service: &linux - SYS_PTRACE services: - bionic: + focal: << : *linux - hostname: bionic - image: ${DOCKER_USER:-qbsbuild}/qbsdev:bionic-5.15.0_1.15.1-2 + hostname: focal + image: ${DOCKER_USER:-qbsbuild}/qbsdev:focal-5.15.0_1.15.1-0 build: - dockerfile: docker/bionic/Dockerfile + dockerfile: docker/focal/Dockerfile context: . args: QT_VERSION: 5.15.0 QTCREATOR_VERSION: 4.11.2 - bionic-android-513: + focal-android-513: << : *linux - hostname: bionic-android - image: ${DOCKER_USER:-qbsbuild}/qbsdev:bionic-android-5.13.2-4 + hostname: focal-android + image: ${DOCKER_USER:-qbsbuild}/qbsdev:focal-android-5.13.2-0 build: - dockerfile: docker/bionic/test-android.Dockerfile + dockerfile: docker/focal/test-android.Dockerfile context: . args: QT_VERSION: 5.13.2 - bionic-android-514: + focal-android-514: << : *linux - hostname: bionic-android - image: ${DOCKER_USER:-qbsbuild}/qbsdev:bionic-android-5.14.0-4 + hostname: focal-android + image: ${DOCKER_USER:-qbsbuild}/qbsdev:focal-android-5.14.0-0 build: - dockerfile: docker/bionic/test-android.Dockerfile + dockerfile: docker/focal/test-android.Dockerfile context: . args: QT_VERSION: 5.14.0 @@ -51,7 +51,7 @@ services: focal-baremetal: << : *linux hostname: focal-baremetal - image: ${DOCKER_USER:-qbsbuild}/qbsdev:focal-baremetal-1 + image: ${DOCKER_USER:-qbsbuild}/qbsdev:focal-baremetal-2 build: dockerfile: docker/focal/test-baremetal.Dockerfile context: . diff --git a/docker/bionic/entrypoint.sh b/docker/bionic/entrypoint.sh deleted file mode 100755 index 40bc5acb9..000000000 --- a/docker/bionic/entrypoint.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env bash -set -e - -############################################################################# -## -## Copyright (C) 2019 Richard Weickelt <richard@weickelt.de> -## Contact: https://www.qt.io/licensing/ -## -## This file is part of Qbs. -## -## $QT_BEGIN_LICENSE:LGPL$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU Lesser General Public License Usage -## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - -# -# Entrypoint script when starting the container. The script checks the current -# working directory and changes the uid/gid of developer/users to match whatever -# is found in the working directory. This is useful to match the user and group -# of mounted volumes into the container - -# -# If not root, re-run script as root to fix ids -# -if [ "$(id -u)" != "0" ]; then - exec gosu root /sbin/entrypoint.sh "$@" -fi - -# -# Try to determine the uid of the working directory and adjust the current -# user's uid/gid accordingly. -# -USER_GID=${USER_GID:-$(stat -c "%g" .)} -USER_UID=${USER_UID:-$(stat -c "%u" .)} -USER_NAME=${USER_NAME:-devel} -USER_GROUP=${USER_GROUP:-devel} -EXEC="" -export HOME=/home/${USER_NAME} - -# -# This is a problem on Linux hosts when we mount a folder from the -# user file system and write artifacts into that. Thus, we downgrade -# the current user and make sure that the uid and gid matches the one -# of the mounted project folder. -# -# This work-around is not needed on Windows hosts as Windows doesn't -# have such a concept. -# -if [ "${USER_UID}" != "0" ]; then - if [ "$(id -u ${USER_NAME})" != "${USER_UID}" ]; then - usermod -o -u ${USER_UID} ${USER_NAME} - # After changing the user's uid, all files in user's home directory - # automatically get the new uid. - fi - current_gid=$(id -g ${USER_NAME}) - if [ "$(id -g ${USER_NAME})" != "${USER_GID}" ]; then - groupmod -o -g ${USER_GID} ${USER_GROUP} - # Set the new gid on all files in the home directory that still have the - # old gid. - find /home/${USER_NAME} -gid "${current_gid}" ! -type l -exec chgrp ${USER_GID} {} \; - fi -fi -EXEC="exec gosu ${USER_NAME}:${USER_GROUP}" - -if [ -z "$1" ]; then - ${EXEC} bash -l -else - ${EXEC} bash -l -c "$*" -fi diff --git a/docker/bionic/Dockerfile b/docker/focal/Dockerfile index 9fee903dd..e4e239529 100644 --- a/docker/bionic/Dockerfile +++ b/docker/focal/Dockerfile @@ -1,7 +1,7 @@ # # Install Qt and Qbs for Linux # -FROM ubuntu:bionic +FROM ubuntu:focal LABEL Description="Ubuntu development environment for Qbs with Qt and various dependencies for testing Qbs modules and functionality" ARG QT_VERSION ARG QTCREATOR_VERSION @@ -29,12 +29,12 @@ RUN apt-get update -qq && \ usermod -a -G sudo ${USER_NAME} && \ echo "%devel ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers -COPY docker/bionic/entrypoint.sh /sbin/entrypoint.sh +COPY docker/focal/entrypoint.sh /sbin/entrypoint.sh ENTRYPOINT ["/sbin/entrypoint.sh"] # Qbs build dependencies RUN apt-get update -qq && \ - apt-get install -qq -y --no-install-recommends \ + DEBIAN_FRONTEND="noninteractive" apt-get install -qq -y --no-install-recommends \ bison \ build-essential \ ca-certificates \ @@ -54,8 +54,10 @@ RUN apt-get update -qq && \ libfontconfig1 \ libgl1-mesa-dev \ libgl1-mesa-glx \ + libnanopb-dev \ libprotobuf-dev \ libgrpc++-dev \ + nanopb \ ninja-build \ nsis \ pkg-config \ @@ -73,7 +75,7 @@ RUN apt-get update -qq && \ update-alternatives --install /usr/bin/clang-check clang-check /usr/bin/clang-check-8 100 && \ update-alternatives --install /usr/bin/python python /usr/bin/python3 100 && \ update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 100 && \ - pip install beautifulsoup4 lxml pyyaml + pip install beautifulsoup4 lxml protobuf pyyaml ENV LLVM_INSTALL_DIR=/usr/lib/llvm-8 diff --git a/docker/bionic/test-android.Dockerfile b/docker/focal/test-android.Dockerfile index 64d22b8d1..a012f504f 100644 --- a/docker/bionic/test-android.Dockerfile +++ b/docker/focal/test-android.Dockerfile @@ -1,7 +1,7 @@ # # Android SDK/NDK + Qt for Android for testing Qbs # -FROM ubuntu:bionic +FROM ubuntu:focal LABEL Description="Ubuntu test environment for Qbs and Qt for Android" # Allow colored output on command line. @@ -27,7 +27,7 @@ RUN apt-get update -qq && \ usermod -a -G sudo ${USER_NAME} && \ echo "%devel ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers -COPY docker/bionic/entrypoint.sh /sbin/entrypoint.sh +COPY docker/focal/entrypoint.sh /sbin/entrypoint.sh ENTRYPOINT ["/sbin/entrypoint.sh"] # Qbs build dependencies @@ -35,7 +35,7 @@ RUN apt-get update -qq && \ apt-get install -qq -y --no-install-recommends \ ca-certificates \ curl \ - libasan4 \ + libasan5 \ libglib2.0-0 \ libgl1-mesa-glx \ openjdk-8-jdk-headless \ diff --git a/docker/focal/test-baremetal.Dockerfile b/docker/focal/test-baremetal.Dockerfile index d54a87dc2..0265ff135 100644 --- a/docker/focal/test-baremetal.Dockerfile +++ b/docker/focal/test-baremetal.Dockerfile @@ -33,7 +33,7 @@ ENTRYPOINT ["/sbin/entrypoint.sh"] # Install baremetal toolchains and Qbs runtime dependencies. RUN apt-get update -qq && \ apt-get install -qq -y \ - libasan4 \ + libasan5 \ libglib2.0-0 \ libgssapi-krb5-2 \ libgl1-mesa-glx \ |