mirror of
git://code.qt.io/qt/qt5.git
synced 2026-02-02 03:36:54 +08:00
Provisioning: Add Ubuntu 24.04 ARM64 as non-blocking in CI
Documentation targets moved to nightly - QTBUG-125212 [CI Platforms] Ubuntu 24.04 has gcc 13.2.0 . Task-number: QTQAINFRA-6112 Task-number: QTQAINFRA-6098 Task-number: QTQAINFRA-6203 Change-Id: I2f7d24ed13f6a318d738e9cd2f607e928c6bb8a2 Reviewed-by: Liang Qi <liang.qi@qt.io>
This commit is contained in:
@@ -38,6 +38,24 @@ Configurations:
|
||||
Compiler: 'GCC'
|
||||
Features: ['Sccache', 'TestOnly']
|
||||
Platform dependency: 'ubuntu-22.04'
|
||||
# Build on Ubuntu 24.04 ARM64 and test on both X11 and Wayland later
|
||||
-
|
||||
Id: 'ubuntu-24.04-arm64'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
|
||||
Compiler: 'GCC'
|
||||
Features: ['UseConfigure', 'DoNotRunTests']
|
||||
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
|
||||
Environment variables: [
|
||||
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
|
||||
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON'
|
||||
]
|
||||
# Test on Ubuntu 24.04 ARM64 X11
|
||||
-
|
||||
Id: 'ubuntu-24.04-arm64-x11-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
|
||||
Compiler: 'GCC'
|
||||
Features: ['TestOnly', 'InsignificantTests']
|
||||
Platform dependency: 'ubuntu-24.04-arm64'
|
||||
-
|
||||
Id: 'opensuse-15.5-developer-build'
|
||||
Template: 'qtci-linux-openSUSE-15.5-x86_64-52'
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
Version: 2
|
||||
Configurations:
|
||||
# cmake_platforms.yaml
|
||||
# Build on Ubuntu 24.04 ARM64 and test on both X11 and Wayland later
|
||||
-
|
||||
Id: 'ubuntu-24.04-arm64-documentation'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
|
||||
Compiler: 'GCC'
|
||||
Features: ['Documentation', 'UseConfigure', 'DoNotRunTests']
|
||||
Configure arguments: '-make examples -developer-build -c++std c++20 -linker gold -qtlibinfix TestInfix -qtnamespace TestNamespace'
|
||||
Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}']
|
||||
# Test on Ubuntu 24.04 ARM64 X11
|
||||
-
|
||||
Id: 'ubuntu-24.04-arm64-documentation-x11-tests'
|
||||
Template: 'qtci-linux-Ubuntu-24.04-aarch64-50'
|
||||
Compiler: 'GCC'
|
||||
Features: ['TestDocs', 'TestOnly', 'InsignificantTests']
|
||||
Platform dependency: 'ubuntu-24.04-arm64-documentation'
|
||||
@@ -0,0 +1,60 @@
|
||||
### Ubuntu 24.04 ###
|
||||
Hard Disk: 1TB
|
||||
|
||||
Language: English (United States)
|
||||
Time & Date: Etc/Coordinated Universal Time
|
||||
Software Selection: Desktop image, minimal install
|
||||
|
||||
Language: English (US)
|
||||
Typing: English (US)
|
||||
Privacy: Location Services: OFF
|
||||
Connect Your Online Accounts: Skip
|
||||
|
||||
|
||||
# Configure Settings
|
||||
Notifications:
|
||||
* Notification Popups: OFF
|
||||
* Lock Screen Notifications: OFF
|
||||
Privacy:
|
||||
* Screen Lock: OFF
|
||||
* File History & Rubbish Bin:
|
||||
* File History: Off
|
||||
* Diagnostics:
|
||||
* Send error reports to Canonical: Never
|
||||
Power:
|
||||
* Blank screen: Never
|
||||
* Automatic suspend: Off
|
||||
Appearance:
|
||||
* Auto-hide the dock: Off
|
||||
Devices:
|
||||
* Displays: Resolution 1280 x 800 (found 1280 x 768)
|
||||
Details:
|
||||
* Time Zone: UTC
|
||||
* run "sudo timedatectl set-timezone UTC"
|
||||
* Users: Automatic login on
|
||||
|
||||
Software & Updates:
|
||||
* Updates:
|
||||
* Subscribed to: Security updates only
|
||||
* Automatically check for updates: Never
|
||||
* Notify me of a new Ubuntu version: Never
|
||||
|
||||
# Add user to sudoers
|
||||
Add 'qt ALL=NOPASSWD: ALL' to /etc/sudoers.d/qt
|
||||
|
||||
Add 'GRUB_GFXMODE=1280x800' to /etc/default/grub (Now it's 1280x768 - is that OK?)
|
||||
run 'sudo grub-mkconfig'
|
||||
|
||||
# Install ssh server
|
||||
run 'sudo apt install openssh-server'
|
||||
|
||||
# Disable firewall
|
||||
run 'sudo ufw disable'
|
||||
|
||||
# Fetch and run coin-setup (in Opennebula)
|
||||
Download http://coin/coin/binary/linux_arm64/coin-setup
|
||||
run 'chmod +x ./coin-setup' to make it executable
|
||||
run './coin-setup'
|
||||
|
||||
Reboot
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2017 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script modifies system settings for automated use
|
||||
|
||||
set -ex
|
||||
|
||||
# shellcheck source=../common/unix/check_and_set_proxy.sh
|
||||
source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh"
|
||||
|
||||
NTS_IP=10.212.2.216
|
||||
|
||||
echo "Set timezone to UTC."
|
||||
sudo timedatectl set-timezone Etc/UTC
|
||||
echo "Timeout for blanking the screen (0 = never)"
|
||||
gsettings set org.gnome.desktop.session idle-delay 0
|
||||
echo "Prevents screen lock when screesaver goes active."
|
||||
gsettings set org.gnome.desktop.screensaver lock-enabled false
|
||||
echo "Set grub timeout to 0"
|
||||
sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub
|
||||
sudo update-grub
|
||||
|
||||
# https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624320
|
||||
# Checking if Ubuntu 20.04 works without this
|
||||
#echo "Setting up workaround for Ubuntu systemd resolve bug"
|
||||
#sudo rm -f /etc/resolv.conf
|
||||
#sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
|
||||
|
||||
# remove hostname to get unique based on IP address
|
||||
sudo rm /etc/hostname
|
||||
|
||||
echo "Set Network Test Server address to $NTS_IP in /etc/hosts"
|
||||
echo "$NTS_IP qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts
|
||||
|
||||
echo 'LC_ALL=en_US.UTF8' | sudo tee /etc/default/locale
|
||||
|
||||
if [ "$http_proxy" != "" ]; then
|
||||
echo "Acquire::http::Proxy \"$proxy\";" | sudo tee -a /etc/apt/apt.conf
|
||||
fi
|
||||
|
||||
# This script diverts qtlogging.ini file so we don't get debugging related auto-test failures.
|
||||
sudo dpkg-divert --divert /etc/xdg/QtProject/qtlogging.ini.foo --rename /etc/xdg/QtProject/qtlogging.ini
|
||||
236
coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh
Normal file
236
coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh
Normal file
@@ -0,0 +1,236 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# Install required packages with APT
|
||||
|
||||
# shellcheck source=../common/linux/apt_wait_loop.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/apt_wait_loop.sh"
|
||||
|
||||
echo "Disabling auto update"
|
||||
sudo sed -i 's/APT::Periodic::Update-Package-Lists "1";/APT::Periodic::Update-Package-Lists "0";/' /etc/apt/apt.conf.d/10periodic
|
||||
for service in apt-daily.timer apt-daily-upgrade.timer apt-daily.service apt-daily-upgrade.service; do
|
||||
sudo systemctl stop $service
|
||||
sudo systemctl disable $service
|
||||
done
|
||||
|
||||
function set_internal_repo {
|
||||
|
||||
# Stop fetching the dep-11 metadata, since our mirrors do not handle them well
|
||||
sudo mv /etc/apt/apt.conf.d/50appstream{,.disabled}
|
||||
|
||||
sudo tee "/etc/apt/sources.list.d/ubuntu.list" > /dev/null <<-EOC
|
||||
deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble main restricted universe multiverse
|
||||
deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-updates main restricted universe multiverse
|
||||
deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-backports main restricted universe
|
||||
deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-security main restricted universe multiverse
|
||||
EOC
|
||||
}
|
||||
|
||||
#(ping -c 3 repo-clones.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories."
|
||||
echo "Internal package repository not loading Translation en package (QTQAINFRA-6297). Using public repositories."
|
||||
|
||||
# Make sure needed ca-certificates are available
|
||||
sudo apt-get install --reinstall ca-certificates
|
||||
|
||||
# Git is not needed by builds themselves, but is nice to have
|
||||
# immediately as one starts debugging
|
||||
installPackages+=(git)
|
||||
# 7zip is a needed decompressing tool
|
||||
installPackages+=(p7zip-full)
|
||||
# To be able to mount yocto-cache during builds
|
||||
installPackages+=(nfs-common)
|
||||
# libssl-dev provides headers for OpenSSL
|
||||
installPackages+=(libssl-dev)
|
||||
# Needed libraries for X11 support accordingly to https://wiki.qt.io/Building_Qt_5_from_Git
|
||||
installPackages+=("^libxcb.*")
|
||||
installPackages+=(libxkbcommon-dev)
|
||||
installPackages+=(libxkbcommon-x11-dev)
|
||||
installPackages+=(libx11-xcb-dev)
|
||||
installPackages+=(libglu1-mesa-dev)
|
||||
installPackages+=(libxrender-dev)
|
||||
installPackages+=(libxi-dev)
|
||||
# Enable linking to system dbus
|
||||
installPackages+=(libdbus-1-dev)
|
||||
# Needed libraries for WebEngine
|
||||
installPackages+=(udev)
|
||||
installPackages+=(libudev-dev)
|
||||
installPackages+=(libdrm-dev)
|
||||
installPackages+=(libegl1-mesa-dev)
|
||||
installPackages+=(libfontconfig1-dev)
|
||||
installPackages+=(libgbm-dev)
|
||||
installPackages+=(liblcms2-dev)
|
||||
installPackages+=(libpci-dev)
|
||||
installPackages+=(libre2-dev)
|
||||
installPackages+=(libsnappy-dev)
|
||||
installPackages+=(libva-dev)
|
||||
installPackages+=(libvpx-dev)
|
||||
installPackages+=(libxkbfile-dev)
|
||||
installPackages+=(libxshmfence-dev)
|
||||
installPackages+=(libxss-dev)
|
||||
# installPackages+=(nodejs) too old
|
||||
installPackages+=(python3-html5lib)
|
||||
|
||||
# Common event loop handling
|
||||
installPackages+=(libglib2.0-dev)
|
||||
# MySQL support
|
||||
installPackages+=(libmysqlclient-dev)
|
||||
# PostgreSQL support
|
||||
installPackages+=(libpq-dev)
|
||||
# SQLite support
|
||||
installPackages+=(libsqlite3-dev)
|
||||
# ODBC support
|
||||
installPackages+=(unixodbc-dev)
|
||||
# Support for FreeType font engine
|
||||
installPackages+=(libfreetype6-dev)
|
||||
# Enable the usage of system jpeg libraries
|
||||
installPackages+=(libjpeg-dev)
|
||||
# Enable support for printer driver
|
||||
installPackages+=(libcups2-dev)
|
||||
# Enable support for printer test
|
||||
installPackages+=(cups-pdf)
|
||||
# Install libraries needed for QtMultimedia to be able to support all plugins
|
||||
installPackages+=(libasound2-dev)
|
||||
installPackages+=(libgstreamer1.0-dev)
|
||||
installPackages+=(libgstreamer-plugins-base1.0-dev)
|
||||
installPackages+=(libgstreamer-plugins-good1.0-dev)
|
||||
installPackages+=(libgstreamer-plugins-bad1.0-dev)
|
||||
installPackages+=(libgstreamer-gl1.0-0)
|
||||
installPackages+=(gir1.2-gst-plugins-base-1.0)
|
||||
installPackages+=(gir1.2-gst-plugins-bad-1.0)
|
||||
installPackages+=(yasm)
|
||||
installPackages+=(libva-dev)
|
||||
# for QtMultimedia streaming tests
|
||||
installPackages+=(vlc-bin)
|
||||
installPackages+=(vlc-plugin-base)
|
||||
|
||||
# Support for cross-building to x86 (needed by WebEngine boot2qt builds)
|
||||
#installPackages+=(g++-multilib)
|
||||
installPackages+=(g++-multilib-powerpc-linux-gnu)
|
||||
|
||||
# python3 development package
|
||||
installPackages+=(python3-dev)
|
||||
installPackages+=(python3-pip)
|
||||
installPackages+=(virtualenv)
|
||||
installPackages+=(python3-wheel)
|
||||
installPackages+=(python-is-python3)
|
||||
|
||||
# Automates interactive applications (Needed by RTA to automate configure testing)
|
||||
installPackages+=(expect)
|
||||
installPackages+=(mesa-common-dev)
|
||||
|
||||
# TODO: Ubuntu 24.04 Replacement
|
||||
#installPackages+=(libgl1-mesa-glx)
|
||||
installPackages+=(libglx-mesa0)
|
||||
|
||||
installPackages+=(libgl1-mesa-dev)
|
||||
installPackages+=(libegl1-mesa-dev)
|
||||
installPackages+=(libegl1)
|
||||
installPackages+=(libegl-mesa0)
|
||||
installPackages+=(libegl-dev)
|
||||
installPackages+=(libglvnd-dev)
|
||||
installPackages+=(libgles2-mesa-dev)
|
||||
installPackages+=(curl)
|
||||
installPackages+=(libcurl4-openssl-dev)
|
||||
installPackages+=(libicu-dev)
|
||||
installPackages+=(zlib1g-dev)
|
||||
installPackages+=(zlib1g)
|
||||
installPackages+=(openjdk-8-jdk)
|
||||
#Java 11 for Android
|
||||
installPackages+=(openjdk-11-jdk)
|
||||
installPackages+=(libgtk-3-dev)
|
||||
installPackages+=(ninja-build)
|
||||
installPackages+=(libssl-dev)
|
||||
installPackages+=(libxcursor-dev)
|
||||
installPackages+=(libxcomposite-dev)
|
||||
installPackages+=(libxdamage-dev)
|
||||
installPackages+=(libxrandr-dev)
|
||||
installPackages+=(libfontconfig1-dev)
|
||||
installPackages+=(libsrtp2-dev)
|
||||
installPackages+=(libwebp-dev)
|
||||
installPackages+=(libjsoncpp-dev)
|
||||
installPackages+=(libopus-dev)
|
||||
installPackages+=(libminizip-dev)
|
||||
installPackages+=(libavutil-dev)
|
||||
installPackages+=(libavformat-dev)
|
||||
installPackages+=(libavcodec-dev)
|
||||
installPackages+=(libevent-dev)
|
||||
installPackages+=(bison)
|
||||
installPackages+=(flex)
|
||||
installPackages+=(gperf)
|
||||
installPackages+=(libasound2-dev)
|
||||
installPackages+=(libpulse-dev)
|
||||
installPackages+=(libxtst-dev)
|
||||
installPackages+=(libnspr4-dev)
|
||||
installPackages+=(libnss3-dev)
|
||||
installPackages+=(libnss3)
|
||||
installPackages+=(libopenal-dev)
|
||||
installPackages+=(libbluetooth-dev)
|
||||
# Needed for qtspeech
|
||||
installPackages+=(libspeechd-dev)
|
||||
#Pypdf for PDF reading in RTA tests
|
||||
installPackages+=(python3-pypdf2)
|
||||
# Needed for b2qt
|
||||
installPackages+=(git-lfs)
|
||||
installPackages+=(chrpath)
|
||||
installPackages+=(gawk)
|
||||
installPackages+=(texinfo)
|
||||
# Needed for Poppler test in QtWebEngine
|
||||
installPackages+=(libpoppler-cpp-dev)
|
||||
# Needed for QtCore
|
||||
installPackages+=(libdouble-conversion-dev)
|
||||
installPackages+=(libpcre2-dev)
|
||||
# Needed for testlib selftests
|
||||
installPackages+=(valgrind)
|
||||
# Needed for qtgampepad
|
||||
installPackages+=(libsdl2-2.0)
|
||||
installPackages+=(libsdl2-dev)
|
||||
# Needed for qtwebkit
|
||||
installPackages+=(ruby)
|
||||
installPackages+=(libxslt1-dev)
|
||||
installPackages+=(libxml2-dev)
|
||||
installPackages+=(libhyphen-dev)
|
||||
# For remote access
|
||||
installPackages+=(ssh)
|
||||
# For bitbake
|
||||
installPackages+=(diffstat)
|
||||
installPackages+=(binfmt-support)
|
||||
installPackages+=(zstd)
|
||||
installPackages+=(lz4)
|
||||
# Vulkan is needed for examples
|
||||
installPackages+=(libvulkan-dev)
|
||||
# Needed for qtdltlogging
|
||||
installPackages+=(libdlt-dev)
|
||||
# For QNX
|
||||
installPackages+=(nfs-kernel-server)
|
||||
installPackages+=(net-tools)
|
||||
installPackages+=(bridge-utils)
|
||||
# For Debian packaging
|
||||
installPackages+=(sbuild)
|
||||
installPackages+=(ubuntu-dev-tools)
|
||||
# cifs-utils, for mounting smb drive
|
||||
installPackages+=(keyutils)
|
||||
installPackages+=(cifs-utils)
|
||||
# VxWorks QEMU network setup (tunctl)
|
||||
installPackages+=(uml-utilities)
|
||||
# used for reading vcpkg packages version, from vcpkg.json
|
||||
installPackages+=(jq)
|
||||
# For building
|
||||
installPackages+=(cmake)
|
||||
|
||||
echo "Running update for apt"
|
||||
waitLoop
|
||||
sudo apt-get update
|
||||
echo "Installing packages"
|
||||
waitLoop
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y -o DPkg::Lock::Timeout=300 install "${installPackages[@]}"
|
||||
|
||||
# Configure pip
|
||||
pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/python_module_cache
|
||||
pip config --user set global.extra-index-url https://pypi.org/simple/
|
||||
|
||||
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
|
||||
# SetEnvVar "PATH" "/usr/lib/nodejs-mozilla/bin:\$PATH"
|
||||
|
||||
OpenSSLVersion="$(openssl version |cut -b 9-14)"
|
||||
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
#Copyright (C) 2023 The Qt Company Ltd
|
||||
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# shellcheck source=../common/linux/disable-notifications.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/disable-notifications.sh"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
#Copyright (C) 2023 The Qt Company Ltd
|
||||
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# shellcheck source=../common/linux/disable-ntp_linux.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/disable-ntp_linux.sh"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
#Copyright (C) 2023 The Qt Company Ltd
|
||||
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# shellcheck source=../common/linux/remove-apport.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/remove-apport.sh"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
#Copyright (C) 2023 The Qt Company Ltd
|
||||
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# shellcheck source=../common/linux/remove-update_notifier.sh
|
||||
source "${BASH_SOURCE%/*}/../common/linux/remove-update_notifier.sh"
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
set -ex
|
||||
|
||||
"$(dirname "$0")"/../common/linux/cleanup_cache.sh
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
#Copyright (C) 2023 The Qt Company Ltd
|
||||
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/ubuntu-version.sh"
|
||||
Reference in New Issue
Block a user