From 974884c0d158732f1dd1870ff027159ace6099ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joni=20J=C3=A4ntti?= Date: Tue, 11 Sep 2018 14:21:40 +0300 Subject: Provisioning: Rebase Ubuntu provisioning Some provisioning changes made to Ubuntu 16.04 didn't make it to 18.04 when the new platform was introduced. These changes need to be included. Task-number: QTQAINFRA-2210 Change-Id: Ie8c3cfda95abadbd3a416545ebcfbbab8c0cb4ad Reviewed-by: Dominik Holland Reviewed-by: Liang Qi --- coin/provisioning/common/linux/docker.sh | 52 ++++++++++++++++++++ coin/provisioning/common/linux/ubuntu-version.sh | 46 ++++++++++++++++++ .../qtci-linux-Ubuntu-16.04-x86_64/80-docker.sh | 54 ++------------------- .../qtci-linux-Ubuntu-16.04-x86_64/99-version.sh | 46 ------------------ .../yocto_ssh_configurations.sh | 55 ---------------------- .../qtci-linux-Ubuntu-18.04-x86_64/02-apt.sh | 7 +++ .../22-mqtt_broker.sh | 0 .../qtci-linux-Ubuntu-18.04-x86_64/80-docker.sh | 4 ++ .../qtci-linux-Ubuntu-18.04-x86_64/99-version.sh | 4 ++ .../yocto_ssh_configurations.sh | 55 ++++++++++++++++++++++ 10 files changed, 171 insertions(+), 152 deletions(-) create mode 100755 coin/provisioning/common/linux/docker.sh create mode 100755 coin/provisioning/common/linux/ubuntu-version.sh delete mode 100755 coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/99-version.sh delete mode 100755 coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/yocto_ssh_configurations.sh mode change 100644 => 100755 coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/22-mqtt_broker.sh create mode 100755 coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/80-docker.sh create mode 100644 coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-version.sh create mode 100755 coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/yocto_ssh_configurations.sh (limited to 'coin/provisioning') diff --git a/coin/provisioning/common/linux/docker.sh b/coin/provisioning/common/linux/docker.sh new file mode 100755 index 00000000..16af0a0a --- /dev/null +++ b/coin/provisioning/common/linux/docker.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## 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 http://www.qt.io/terms-conditions. For further +## information use the contact form at http://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 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +set -ex + +# Download and install the docker engine. +sudo apt-get install curl -y +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" +sudo apt-get update +sudo apt-get install docker-ce -y +sudo usermod -a -G docker $USER +sudo docker info + +# Download and install the docker-compose extension. +sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose +sudo chmod +x /usr/local/bin/docker-compose + +# Start testserver provisioning +source "${BASH_SOURCE%/*}/testserver/docker_testserver.sh" diff --git a/coin/provisioning/common/linux/ubuntu-version.sh b/coin/provisioning/common/linux/ubuntu-version.sh new file mode 100755 index 00000000..d403df13 --- /dev/null +++ b/coin/provisioning/common/linux/ubuntu-version.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2018 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## 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 http://www.qt.io/terms-conditions. For further +## information use the contact form at http://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 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# This script needs to be called last during provisioning so that the software information will show up last in provision log. + +set -ex + +# shellcheck disable=SC2129 +echo "*********************************************" >> ~/versions.txt +echo "***** All installed packages *****" >> ~/versions.txt +apt list --installed >> ~/versions.txt +echo "*********************************************" >> ~/versions.txt + +"$(dirname "$0")/version.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/80-docker.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/80-docker.sh index 90c3a7eb..4a6681f3 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/80-docker.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/80-docker.sh @@ -1,52 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL21$ -## 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 http://www.qt.io/terms-conditions. For further -## information use the contact form at http://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 2.1 or version 3 as published by the Free -## Software Foundation and appearing in the file LICENSE.LGPLv21 and -## LICENSE.LGPLv3 included in the packaging of this file. Please review the -## following information to ensure the GNU Lesser General Public License -## requirements will be met: https://www.gnu.org/licenses/lgpl.html and -## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -## -## As a special exception, The Qt Company gives you certain additional -## rights. These rights are described in The Qt Company LGPL Exception -## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -## -## $QT_END_LICENSE$ -## -############################################################################# - -set -ex - -# Download and install the docker engine. -sudo apt-get install curl -y -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - -sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" -sudo apt-get update -sudo apt-get install docker-ce -y -sudo usermod -a -G docker $USER -sudo docker info - -# Download and install the docker-compose extension. -sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose -sudo chmod +x /usr/local/bin/docker-compose - -# Start testserver provisioning -source "${BASH_SOURCE%/*}/../common/linux/testserver/docker_testserver.sh" +BASEDIR=$(dirname "$0") +$BASEDIR/../common/linux/docker.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/99-version.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/99-version.sh deleted file mode 100755 index 21a4c4cf..00000000 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/99-version.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash - -############################################################################# -## -## Copyright (C) 2018 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL21$ -## 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 http://www.qt.io/terms-conditions. For further -## information use the contact form at http://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 2.1 or version 3 as published by the Free -## Software Foundation and appearing in the file LICENSE.LGPLv21 and -## LICENSE.LGPLv3 included in the packaging of this file. Please review the -## following information to ensure the GNU Lesser General Public License -## requirements will be met: https://www.gnu.org/licenses/lgpl.html and -## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -## -## As a special exception, The Qt Company gives you certain additional -## rights. These rights are described in The Qt Company LGPL Exception -## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -## -## $QT_END_LICENSE$ -## -############################################################################# - -# This script needs to be called last during provisioning so that the software information will show up last in provision log. - -set -ex - -# shellcheck disable=SC2129 -echo "*********************************************" >> ~/versions.txt -echo "***** All installed packages *****" >> ~/versions.txt -apt list --installed >> ~/versions.txt -echo "*********************************************" >> ~/versions.txt - -"$(dirname "$0")/../common/linux/version.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/yocto_ssh_configurations.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/yocto_ssh_configurations.sh deleted file mode 100755 index e4d988fc..00000000 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/yocto_ssh_configurations.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash - -############################################################################# -## -## Copyright (C) 2018 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL21$ -## 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 http://www.qt.io/terms-conditions. For further -## information use the contact form at http://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 2.1 or version 3 as published by the Free -## Software Foundation and appearing in the file LICENSE.LGPLv21 and -## LICENSE.LGPLv3 included in the packaging of this file. Please review the -## following information to ensure the GNU Lesser General Public License -## requirements will be met: https://www.gnu.org/licenses/lgpl.html and -## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -## -## As a special exception, The Qt Company gives you certain additional -## rights. These rights are described in The Qt Company LGPL Exception -## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -## -## $QT_END_LICENSE$ -## -############################################################################# - -set -ex - -source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh" - -url="http://ci-files01-hki.intra.qt.io/input/semisecure/test_farm_id_rsa" -sha1="1b0d651661c33a654ac89ef3c97bbe06d6bf1ca1" -sshKey="$HOME/.ssh/test_farm_id_rsa" - -DownloadURL "$url" "$url" "$sha1" "$sshKey" -chmod 600 "$sshKey" - -echo "Configuring ssh config file for Yocto" -cat <> "$HOME/.ssh/config" -StrictHostKeyChecking=no -Host codereview.qt-project.org - Port 29418 - User qt-builder - IdentityFile "$sshKey" -EOT - diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/02-apt.sh index ff2f1dac..92b7a990 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/02-apt.sh @@ -96,6 +96,7 @@ installPackages+=(g++-multilib) installPackages+=(python3-dev) installPackages+=(python3-pip) installPackages+=(python3-virtualenv) +installPackages+=(python3-wheel) # python2 development package installPackages+=(python-dev) # Automates interactive applications (Needed by RTA to automate configure testing) @@ -150,3 +151,9 @@ sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install "${installPackages[@]} echo "Running update for apt" waitLoop sudo apt-get update + +# Install all needed packages in a special wheel cache directory +pip3 wheel --wheel-dir $HOME/python3-wheels -r ${BASH_SOURCE%/*}/../common/shared/requirements.txt + +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" +SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels" diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/22-mqtt_broker.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/22-mqtt_broker.sh old mode 100644 new mode 100755 diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/80-docker.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/80-docker.sh new file mode 100755 index 00000000..4a6681f3 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/80-docker.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/linux/docker.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-version.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-version.sh new file mode 100644 index 00000000..b062800a --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-version.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +BASEDIR=$(dirname "$0") +$BASEDIR/../common/linux/ubuntu-version.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/yocto_ssh_configurations.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/yocto_ssh_configurations.sh new file mode 100755 index 00000000..e4d988fc --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/yocto_ssh_configurations.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2018 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## 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 http://www.qt.io/terms-conditions. For further +## information use the contact form at http://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 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +set -ex + +source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh" + +url="http://ci-files01-hki.intra.qt.io/input/semisecure/test_farm_id_rsa" +sha1="1b0d651661c33a654ac89ef3c97bbe06d6bf1ca1" +sshKey="$HOME/.ssh/test_farm_id_rsa" + +DownloadURL "$url" "$url" "$sha1" "$sshKey" +chmod 600 "$sshKey" + +echo "Configuring ssh config file for Yocto" +cat <> "$HOME/.ssh/config" +StrictHostKeyChecking=no +Host codereview.qt-project.org + Port 29418 + User qt-builder + IdentityFile "$sshKey" +EOT + -- cgit v1.2.3