aboutsummaryrefslogtreecommitdiffstats
path: root/coin/provisioning/common
diff options
context:
space:
mode:
authorRyan Chu <ryan.chu@qt.io>2019-01-15 10:37:06 +0100
committerLiang Qi <liang.qi@qt.io>2019-02-02 12:23:07 +0000
commitb97e448ba47a5272424cdf8c779691013b967a00 (patch)
tree086bb3354dadcf5fd8df7dc210db3143deda6e74 /coin/provisioning/common
parent1830cca2bce0bc0c1d7a52a026757d7fb92d772e (diff)
Move and merge the provisioning scripts of docker to a shared folder
To reuse the provisioning scripts for all platforms, they are moved to a shared folder (coin/common/shared/testserver). The scripts of macOS and linux are combined and controlled by an input parameter (macos/linux). Change-Id: Ibf9a438d1825d01d707c2fc8fbcf2bc70a8b4902 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
Diffstat (limited to 'coin/provisioning/common')
-rwxr-xr-xcoin/provisioning/common/linux/docker.sh4
-rwxr-xr-xcoin/provisioning/common/linux/docker_testserver.sh62
-rwxr-xr-xcoin/provisioning/common/macos/docker.sh14
-rwxr-xr-xcoin/provisioning/common/shared/testserver/docker_testserver.sh (renamed from coin/provisioning/common/macos/docker_testserver.sh)30
-rw-r--r--coin/provisioning/common/shared/testserver/testserver_util.sh41
5 files changed, 30 insertions, 121 deletions
diff --git a/coin/provisioning/common/linux/docker.sh b/coin/provisioning/common/linux/docker.sh
index 1d9e8419..d5cf202c 100755
--- a/coin/provisioning/common/linux/docker.sh
+++ b/coin/provisioning/common/linux/docker.sh
@@ -2,7 +2,7 @@
#############################################################################
##
-## Copyright (C) 2018 The Qt Company Ltd.
+## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -52,4 +52,4 @@ sudo chmod +x /usr/local/bin/docker-compose
sudo apt-get install avahi-daemon -y
# Start testserver provisioning
-source "${BASH_SOURCE%/*}/docker_testserver.sh"
+sudo "$(readlink -f $(dirname ${BASH_SOURCE[0]}))/../shared/testserver/docker_testserver.sh"
diff --git a/coin/provisioning/common/linux/docker_testserver.sh b/coin/provisioning/common/linux/docker_testserver.sh
deleted file mode 100755
index 2d5d9611..00000000
--- a/coin/provisioning/common/linux/docker_testserver.sh
+++ /dev/null
@@ -1,62 +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
-
-case ${BASH_SOURCE[0]} in
- */linux/*) SERVER_PATH="${BASH_SOURCE[0]%/linux/*}/shared/testserver" ;;
- */*) SERVER_PATH="${BASH_SOURCE[0]%/*}/../shared/testserver" ;;
- *) SERVER_PATH="../shared/testserver" ;;
-esac
-
-# testserver shared scripts
-source "$SERVER_PATH/testserver_util.sh"
-
-# Using SHA-1 of each server context as the tag of docker images. A tag labels a
-# specific image version. It is used by docker compose file (docker-compose.yml)
-# to launch the corresponding docker containers. If one of the server contexts
-# (./apache2, ./danted, ...) gets changes, all the related compose files in
-# qtbase should be updated as well.
-
-source "$SERVER_PATH/settings.sh"
-
-for server in $testserver
-do
- context="$SERVER_PATH/$server"
- # Sort files by their SHA-1 and use the accumulated result as the TAG
- sudo docker build -t qt-test-server-$server:$(sha1tree $context) $context
-done
-
-sudo docker images
diff --git a/coin/provisioning/common/macos/docker.sh b/coin/provisioning/common/macos/docker.sh
index 899bfee6..086ef817 100755
--- a/coin/provisioning/common/macos/docker.sh
+++ b/coin/provisioning/common/macos/docker.sh
@@ -2,7 +2,7 @@
#############################################################################
##
-## Copyright (C) 2018 The Qt Company Ltd.
+## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -60,4 +60,14 @@ fi
sudo installer -pkg $target_file -target /
# Start testserver provisioning
-source "${BASH_SOURCE%/*}/docker_testserver.sh"
+case ${BASH_SOURCE[0]} in
+ */macos/*) SERVER_PATH="${BASH_SOURCE[0]%/macos/*}/shared/testserver" ;;
+ */*) SERVER_PATH="${BASH_SOURCE[0]%/*}/../shared/testserver" ;;
+ *) SERVER_PATH="../shared/testserver" ;;
+esac
+
+# Nested virtualization - Print CPU features to verify that CI has enabled VT-X/AMD-v support
+case $(sysctl machdep.cpu.features) in
+ *VMX*) "$SERVER_PATH/docker_testserver.sh" VMX ;;
+ *) echo "VMX not found error! Please make sure Coin has enabled VT-X/AMD-v." >&2; exit 1 ;;
+esac
diff --git a/coin/provisioning/common/macos/docker_testserver.sh b/coin/provisioning/common/shared/testserver/docker_testserver.sh
index 051386ea..2807b488 100755
--- a/coin/provisioning/common/macos/docker_testserver.sh
+++ b/coin/provisioning/common/shared/testserver/docker_testserver.sh
@@ -2,7 +2,7 @@
#############################################################################
##
-## Copyright (C) 2018 The Qt Company Ltd.
+## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -36,23 +36,25 @@
set -ex
case ${BASH_SOURCE[0]} in
- */macos/*) SERVER_PATH="${BASH_SOURCE[0]%/macos/*}/shared/testserver" ;;
- */*) SERVER_PATH="${BASH_SOURCE[0]%/*}/../shared/testserver" ;;
- *) SERVER_PATH="../shared/testserver" ;;
+ */*) SERVER_PATH="${BASH_SOURCE[0]%/*}" ;;
+ *) SERVER_PATH="." ;;
esac
-# testserver shared scripts
-source "$SERVER_PATH/testserver_util.sh"
-
-# Nested virtualization - Print CPU features to verify that CI has enabled VT-X/AMD-v support
-cpu_features=$(sysctl -a | grep machdep.cpu.features)
-case $cpu_features in
- *VMX*) ;;
- *) echo "VMX not found error! Please make sure Coin has enabled VT-X/AMD-v." >&2; exit 1 ;;
+# Create docker virtual machine (Boot2docker)
+case $1 in
+ VMX) source "$SERVER_PATH/docker_machine.sh" ;;
+ *) ;;
esac
-# Create docker virtual machine (Boot2docker)
-source "$SERVER_PATH/docker_machine.sh"
+# Sort files by their SHA-1, and then return the accumulated result
+sha1tree () {
+ # For example, macOS doesn't install sha1sum by default. In such case, it uses shasum instead.
+ [ -x "$(command -v sha1sum)" ] || SHASUM=shasum
+
+ find "$@" -type f -print0 | \
+ xargs -0 ${SHASUM-sha1sum} | cut -d ' ' -f 1 | \
+ sort | ${SHASUM-sha1sum} | cut -d ' ' -f 1
+}
# Using SHA-1 of each server context as the tag of docker images. A tag labels a
# specific image version. It is used by docker compose file (docker-compose.yml)
diff --git a/coin/provisioning/common/shared/testserver/testserver_util.sh b/coin/provisioning/common/shared/testserver/testserver_util.sh
deleted file mode 100644
index c42fb5e0..00000000
--- a/coin/provisioning/common/shared/testserver/testserver_util.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#############################################################################
-##
-## 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
-
-# Sort files by their SHA-1, and then return the accumulated result
-sha1tree () {
- find "$@" -type f -print0 | \
- xargs -0 shasum | cut -d ' ' -f 1 | \
- sort | shasum | cut -d ' ' -f 1
-}