Provisioning: Use SetEnvVar helper function in scripts

Currently when adding an environment variable in provisioning we have
to check if the system is Ubuntu and use .profile instead of .bashrc.
This check should be done in a function so we don't have to duplicate
it for every provisioning script separately.

Change-Id: I2fa128032123e17d20dfb39cd3668e22e4bb0d55
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
This commit is contained in:
Joni Jantti
2018-01-24 10:48:07 +02:00
committed by Liang Qi
parent 7681e742d7
commit 6d1190aaa0
20 changed files with 130 additions and 42 deletions

View File

@@ -40,6 +40,7 @@
source "${BASH_SOURCE%/*}/../unix/try_catch.sh"
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
source "${BASH_SOURCE%/*}/../unix/check_and_set_proxy.sh"
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
targetFolder="/opt/android"
sdkTargetFolder="$targetFolder/sdk"
@@ -95,10 +96,10 @@ try
echo "y" |"$sdkTargetFolder/tools/bin/sdkmanager" "platforms;$sdkApiLevel" "tools" "platform-tools" "build-tools;$sdkBuildToolsVersion" || throw $ExceptionSdkManager
fi
echo "export ANDROID_SDK_HOME=$sdkTargetFolder" >> ~/.bashrc
echo "export ANDROID_NDK_HOME=$targetFolder/android-ndk-$ndkVersion" >> ~/.bashrc
echo "export ANDROID_NDK_HOST=linux-x86_64" >> ~/.bashrc
echo "export ANDROID_API_VERSION=$sdkApiLevel" >> ~/.bashrc
SetEnvVar "ANDROID_SDK_HOME" "$sdkTargetFolder"
SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersion"
SetEnvVar "ANDROID_NDK_HOST" "linux-x86_64"
SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel"
echo "Android SDK tools = $toolsVersion" >> ~/versions.txt
echo "Android SDK Build Tools = $sdkBuildToolsVersion" >> ~/versions.txt

View File

@@ -39,6 +39,7 @@
# shellcheck source=InstallFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
version="3.6.2"
PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/cmake/cmake-3.6.2-Linux-x86_64.tar.gz"
@@ -49,9 +50,4 @@ appPrefix="cmake-$version-Linux-x86_64"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix"
echo "Adding $targetFolder/bin to PATH"
if uname -a |grep -q "Ubuntu"; then
echo "export PATH=$targetFolder/bin:\$PATH" >> ~/.profile
else
echo "export PATH=$targetFolder/bin:\$PATH" >> ~/.bashrc
fi
SetEnvVar "PATH" "$targetFolder/bin:\$PATH"

View File

@@ -35,7 +35,7 @@
# This script installs FBX SDK
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
#s script installs FBX SDK
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
set -e
tarballName="fbx20161_2_fbxsdk_linux.tar.gz"
@@ -56,7 +56,7 @@ sudo mkdir -p $targetFolder
rm -rf "$targetFile"
# Set env variables
echo "export FBXSDK=$targetFolder" >> ~/.profile
SetEnvVar "FBXSDK" "$targetFolder"
echo "FBX SDK = 2016.1.2" >> ~/versions.txt

View File

@@ -36,6 +36,7 @@
# This script installs INTEGRITY
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
version="11.4.4"
PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/integrity/ghs_$version.tar.gz"
@@ -46,10 +47,10 @@ appPrefix=""
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix"
echo "export INTEGRITY_BSP=platform-cortex-a9" >> ~/.bashrc
echo "export INTEGRITY_PATH=$targetFolder/comp_201654" >> ~/.bashrc
echo "export INTEGRITY_DIR=$targetFolder/int1144" >> ~/.bashrc
echo "export INTEGRITY_GL_INC_DIR=\$INTEGRITY_DIR/INTEGRITY-include/Vivante/sdk/inc" >> ~/.bashrc
echo "export INTEGRITY_GL_LIB_DIR=\$INTEGRITY_DIR/libs/Vivante" >> ~/.bashrc
SetEnvVar "INTEGRITY_BSP" "platform-cortex-a9"
SetEnvVar "INTEGRITY_PATH" "$targetFolder/comp_201654"
SetEnvVar "INTEGRITY_DIR" "$targetFolder/int1144"
SetEnvVar "INTEGRITY_GL_INC_DIR" "\$INTEGRITY_DIR/INTEGRITY-include/Vivante/sdk/inc"
SetEnvVar "INTEGRITY_GL_LIB_DIR" "\$INTEGRITY_DIR/libs/Vivante"
echo "INTEGRITY = $version" >> ~/versions.txt

View File

@@ -38,6 +38,7 @@
source "${BASH_SOURCE%/*}/../unix/try_catch.sh"
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
version="1.0.2g"
officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz"
@@ -64,7 +65,8 @@ try
pushd "$opensslHome"
perl Configure shared android || throw $ExceptionConfig
echo "export OPENSSL_ANDROID_HOME=$opensslHome" >> ~/.bashrc
SetEnvVar "OPENSSL_ANDROID_HOME" "$opensslHome"
echo "OpenSSL for Android = $version" >> ~/versions.txt
)
catch || {

View File

@@ -36,6 +36,9 @@
# This script installs QNX 7.
set -ex
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
targetFolder="/opt/"
sourceFile="http://ci-files01-hki.intra.qt.io/input/qnx/qnx700.tar.xz"
sha1="949a87c5f00d0756956cb4b1b3b213ecaeee9113"
@@ -44,7 +47,7 @@ targetFile="qnx700.tar.xz"
wget --tries=5 --waitretry=5 --output-document="$targetFile" "$sourceFile"
echo "$sha1 $targetFile" | sha1sum --check
if [ ! -d "$targetFolder" ]; then
mkdir -p $targetFolder
mkdir -p $targetFolder
fi
sudo tar -C $targetFolder -Jxf $targetFile
sudo chown -R qt:users "$targetFolder"/"$folderName"
@@ -57,5 +60,6 @@ fi
rm -rf $targetFile
# Set env variables
echo "export QNX_700=$targetFolder$folderName" >> ~/.bashrc
SetEnvVar "QNX_700" "$targetFolder$folderName"
echo "QNX SDP = 7.0.0" >> ~/versions.txt

View File

@@ -39,6 +39,8 @@
# shellcheck source=./InstallAppFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/InstallAppFromCompressedFileFromURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/osx_10.11_el_capitan/cmake-3.6.2-Darwin-x86_64.tar.gz"
AltUrl="https://cmake.org/files/v3.6/cmake-3.6.2-Darwin-x86_64.tar.gz"
@@ -47,5 +49,6 @@ appPrefix="cmake-3.6.2-Darwin-x86_64"
InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix"
echo "export PATH=/Applications/CMake.app/Contents/bin:\$PATH" >> ~/.bashrc
SetEnvVar "PATH" "/Applications/CMake.app/Contents/bin:\$PATH"
echo "CMake = 3.6.2" >> ~/versions.txt

View File

@@ -36,6 +36,8 @@
# shellcheck source=./../unix/try_catch.sh
source "${BASH_SOURCE%/*}/../unix/try_catch.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
fileName="fbx20161_2_fbxsdk_clang_mac.pkg.tgz"
targetFolder="/opt/fbx"
@@ -74,6 +76,7 @@ echo "Running installer for '$installer'"
sudo installer -pkg "$installer" -target "/"
# Set env variables
echo "export FBXSDK=/Applications/Autodesk/FBX\ SDK/2016.1.2/" >> ~/.bashrc
SetEnvVar "FBXSDK" "/Applications/Autodesk/FBX\ SDK/2016.1.2/"
echo "FBX SDK = 2016.1.2" >> ~/versions.txt

View File

@@ -37,6 +37,7 @@
# This script installs python3
source "${BASH_SOURCE%/*}/InstallPKGFromURL.sh"
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/python-3.6.1-macosx10.6.pkg"
AltUrl="https://www.python.org/ftp/python/3.6.1/python-3.6.1-macosx10.6.pkg"
@@ -47,6 +48,7 @@ InstallPKGFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$DestDir"
/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3 install virtualenv
echo "export PYTHON3_PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin" >> ~/.bashrc
echo "export PIP3_PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin" >> ~/.bashrc
SetEnvVar "PYTHON3_PATH" "/Library/Frameworks/Python.framework/Versions/3.6/bin"
SetEnvVar "PIP3_PATH" "/Library/Frameworks/Python.framework/Versions/3.6/bin"
echo "python3 = 3.6.1" >> ~/versions.txt

View File

@@ -0,0 +1,51 @@
#!/usr/bin/env bash
#############################################################################
##
## Copyright (C) 2017 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the test suite 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$
##
#############################################################################
# A helper script used for setting environment variables on Unix systems
set -ex
function SetEnvVar {
name=$1
path=$2
echo "Setting environment variable $name to $path."
if uname -a |grep -q "Ubuntu"; then
echo "export $name=$path" >> ~/.profile
else
echo "export $name=$path" >> ~/.bashrc
fi
}

View File

@@ -33,6 +33,9 @@
#############################################################################
set -ex
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
# build latest qemu to usermode
sudo apt-get -y install automake autoconf libtool
@@ -91,4 +94,4 @@ sed $QEMU_FONTCONFFILE -e "s:/usr/share/fonts:$QEMU_FONTCONFPATH/fonts:" -i
sed $QEMU_FONTCONFFILE -e "s:/usr/local/share/fonts:$QEMU_FONTCONFPATH/local_fonts:" -i
# Set QEMU font configuration variables
echo "export QEMU_SET_ENV=\"FONTCONFIG_FILE=$QEMU_FONTCONFFILE,FONTCONFIG_PATH=$QEMU_FONTCONFPATH\"" >> ~/.profile
SetEnvVar "QEMU_SET_ENV" "\"FONTCONFIG_FILE=$QEMU_FONTCONFFILE,FONTCONFIG_PATH=$QEMU_FONTCONFPATH\""

View File

@@ -38,6 +38,7 @@
set -ex
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
echo "Installing Yocto toolchain for 32-bit b2qt..."
@@ -76,10 +77,10 @@ chmod +x "$yoctoInstaller"
rm -rf "$yoctoInstaller"
if [ -e "$yoctoLocationARMv7/$sysrootARMv7" -a -e "$yoctoLocationARMv7/${crosscompileARMv7}g++" -a -e "$yoctoLocationARM64/$sysrootARM64" -a -e "$yoctoLocationARM64/${crosscompileARM64}g++" ]; then
echo "export QEMUARMV7_TOOLCHAIN_SYSROOT=$yoctoLocationARMv7/$sysrootARMv7" >> ~/.profile
echo "export QEMUARMV7_TOOLCHAIN_CROSS_COMPILE=$yoctoLocationARMv7/$crosscompileARMv7" >> ~/.profile
echo "export QEMUARM64_TOOLCHAIN_SYSROOT=$yoctoLocationARM64/$sysrootARM64" >> ~/.profile
echo "export QEMUARM64_TOOLCHAIN_CROSS_COMPILE=$yoctoLocationARM64/$crosscompileARM64" >> ~/.profile
SetEnvVar "QEMUARMV7_TOOLCHAIN_SYSROOT" "$yoctoLocationARMv7/$sysrootARMv7"
SetEnvVar "QEMUARMV7_TOOLCHAIN_CROSS_COMPILE" "$yoctoLocationARMv7/$crosscompileARMv7"
SetEnvVar "QEMUARM64_TOOLCHAIN_SYSROOT" "$yoctoLocationARM64/$sysrootARM64"
SetEnvVar "QEMUARM64_TOOLCHAIN_CROSS_COMPILE" "$yoctoLocationARM64/$crosscompileARM64"
else
echo "Error! Couldn't find installation paths for Yocto toolchain. Aborting provisioning." 1>&2
exit 1

View File

@@ -2,5 +2,8 @@
set -ex
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
# Enables the usage of temporary keychains for SSL autotests
echo "export QT_SSL_USE_TEMPORARY_KEYCHAIN=1" >> ~/.bashrc
SetEnvVar "QT_SSL_USE_TEMPORARY_KEYCHAIN" "1"

View File

@@ -41,6 +41,8 @@ set -ex
# shellcheck source=../common/macos/InstallAppFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../common/macos/InstallAppFromCompressedFileFromURL.sh"
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/macos_10.12_sierra/mysql-5.7.15-osx10.11-x86_64.tar.gz"
AltUrl="https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.15-osx10.11-x86_64.tar.gz"
@@ -52,5 +54,5 @@ sudo mkdir -p "/opt"
InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" "$targetDir"
echo "export MYSQLBINPATH=/opt/mysql57/bin" >> ~/.bashrc
SetEnvVar "MYSQLBINPATH" "/opt/mysql57/bin"
echo "MySQL = 5.7.15" >> ~/versions.txt

View File

@@ -41,6 +41,8 @@ set -ex
# shellcheck source=../common/macos/InstallAppFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../common/macos/InstallAppFromCompressedFileFromURL.sh"
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
psqlVersion="9.6.0"
@@ -51,5 +53,5 @@ appPrefix=""
InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix"
echo "export POSTGRESQLBINPATH=/Applications/Postgres.app/Contents/Versions/9.6/bin" >> ~/.bashrc
SetEnvVar "POSTGRESQLBINPATH" "/Applications/Postgres.app/Contents/Versions/9.6/bin"
echo "PostgreSQL = $psqlVersion" >> ~/versions.txt

View File

@@ -41,6 +41,8 @@ set -ex
# shellcheck source=../common/unix/try_catch.sh
source "${BASH_SOURCE%/*}/../common/unix/try_catch.sh"
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
targetFolder="/opt/android"
sdkTargetFolder="$targetFolder/sdk"
@@ -81,10 +83,10 @@ try
echo "Running SDK manager for platforms;$sdkApiLevel, tools, platform-tools and build-tools;$sdkBuildToolsVersion."
(echo "y"; echo "y") |"$sdkTargetFolder/tools/bin/sdkmanager" "platforms;$sdkApiLevel" "tools" "platform-tools" "build-tools;$sdkBuildToolsVersion" || throw $ExceptionSdkManager
echo "export ANDROID_SDK_HOME=$sdkTargetFolder" >> ~/.bashrc
echo "export ANDROID_NDK_HOME=$targetFolder/android-ndk-$ndkVersion" >> ~/.bashrc
echo "export ANDROID_NDK_HOST=darwin-x86_64" >> ~/.bashrc
echo "export ANDROID_API_VERSION=$sdkApiLevel" >> ~/.bashrc
SetEnvVar "ANDROID_SDK_HOME" "$sdkTargetFolder"
SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersion"
SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64"
SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel"
echo "Android SDK tools = $toolsVersion" >> ~/versions.txt
echo "Android SDK Build Tools = $sdkBuildToolsVersion" >> ~/versions.txt

View File

@@ -41,6 +41,8 @@ set -ex
source "${BASH_SOURCE%/*}/../common/unix/try_catch.sh"
# shellcheck source=../common/unix/InstallFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../common/unix/InstallFromCompressedFileFromURL.sh"
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
opensslVersion="1.0.2k"
opensslFile="openssl-$opensslVersion.tar.gz"
@@ -75,8 +77,8 @@ try
sudo mkdir -p "$path"
sudo ln -s /usr/local/openssl-$opensslVersion $opensslTargetLocation || throw $ExceptionLN
echo "export PATH=\"$opensslTargetLocation/bin:\$PATH\"" >> ~/.bashrc
echo "export MANPATH=\"$opensslTargetLocation/share/man:\$MANPATH\"" >> ~/.bashrc
SetEnvVar "PATH" "\"$opensslTargetLocation/bin:\$PATH\""
SetEnvVar "MANPATH" "\"$opensslTargetLocation/share/man:\$MANPATH\""
security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem || throw $ExceptionCertificate
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem || throw $ExceptionCertificate

View File

@@ -1,6 +1,10 @@
#!/usr/bin/env sh
#!/usr/bin/env bash
set -ex
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
# Enables the usage of temporary keychains for SSL autotests
echo "export QT_SSL_USE_TEMPORARY_KEYCHAIN=1" >> ~/.bashrc
SetEnvVar "QT_SSL_USE_TEMPORARY_KEYCHAIN" "1"

View File

@@ -41,6 +41,8 @@ set -ex
# shellcheck source=../common/macos/InstallAppFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../common/macos/InstallAppFromCompressedFileFromURL.sh"
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/osx_10.11_el_capitan/mysql-5.7.15-osx10.11-x86_64.tar.gz"
AltUrl="https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.15-osx10.11-x86_64.tar.gz"
@@ -52,6 +54,7 @@ sudo mkdir -p "/opt"
InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" "$targetDir"
echo "export MYSQLBINPATH=/opt/mysql57/bin" >> ~/.bashrc
SetEnvVar "MYSQLBINPATH" "/opt/mysql57/bin"
echo "MySQL = 5.7.15" >> ~/versions.txt

View File

@@ -41,6 +41,8 @@ set -ex
# shellcheck source=../common/macos/InstallAppFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../common/macos/InstallAppFromCompressedFileFromURL.sh"
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/osx_10.11_el_capitan/Postgres-9.6.0.zip"
AltUrl="https://github.com/PostgresApp/PostgresApp/releases/download/9.6.0/Postgres-9.6.0.zip"
@@ -49,6 +51,7 @@ appPrefix=""
InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix"
echo "export POSTGRESQLBINPATH=/Applications/Postgres.app/Contents/Versions/9.6/bin" >> ~/.bashrc
SetEnvVar "POSTGRESQLBINPATH" "/Applications/Postgres.app/Contents/Versions/9.6/bin"
echo "PostgreSQL = 9.6.0" >> ~/versions.txt