Provisioning: update Squish installation to 6.6.1

Update Squish installation to Qt5.12 based Squish 6.6.1.
Also update scripts to the new style, where pre-installed
Squish archives are used. The old style did the Squish
installation from a scratch.

Change-Id: I298ecee5e66d48c9e02d2cd4bc8d01311df65261
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
This commit is contained in:
Johanna Äijälä
2020-10-30 14:27:45 +02:00
parent 08a384605a
commit 3693ea212c
2 changed files with 96 additions and 218 deletions

View File

@@ -2,7 +2,7 @@
#############################################################################
##
## Copyright (C) 2017 The Qt Company Ltd.
## Copyright (C) 2020 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -33,141 +33,93 @@
##
#############################################################################
# shellcheck source=./DownloadURL.sh
source "${BASH_SOURCE%/*}/DownloadURL.sh"
set -ex
# This script will install squish package for Linux and Mac.
# This script will fetch and extract pre-buildt squish package for Linux and Mac.
# Squish is need by Release Test Automation (RTA)
version="6.4.3"
# Branch version without dot
version="6.6.1"
qtBranch="512x"
squishFolder="/opt/squish"
squishUrl="ci-files01-hki.intra.qt.io:/hdd/www/input/squish/coin/$qtBranch/"
squishFile="squish-$version-qt$qtBranch-linux64.run"
installFolder="/opt"
squishFolder="$installFolder/squish"
preBuildCacheUrl="ci-files01-hki.intra.qt.io:/hdd/www/input/squish/jenkins_build/stable"
licenseUrl="http://ci-files01-hki.intra.qt.io/input/squish/coin/$qtBranch/.squish-3-license"
licenseSHA="e000d2f95b30b82f405b9dcbeb233cd43710a41a"
if uname -a |grep -q Darwin; then
squishFile="squish-$version-qt$qtBranch-macx86_64.dmg"
compressedFolder="prebuild-squish-$version-$qtBranch-macx86_64.tar.gz"
sha1="18d683c8702ec47528e36f8e352bc64b07e7996a"
else
compressedFolder="prebuild-squish-$version-$qtBranch-linux64.tar.gz"
sha1="9cb84b7c8d920ced056ce94ce75b0879c29fba22"
fi
squishLicenseUrl="ci-files01-hki.intra.qt.io:/hdd/www/input/squish/coin/"
squishLicenseFile=".squish-3-license.tar.gz"
mountFolder="/tmp/squish"
sudo mkdir "$mountFolder"
testSuite="suite_test_squish"
testSuiteUrl="ci-files01-hki.intra.qt.io:/hdd/www/input/squish/coin/"
# These checks can be removed when Vanilla OS for all linux and Mac are in
if [ -d "$squishFolder" ]; then
echo "Move old squish to /tmp"
sudo mv "$squishFolder" "/tmp/squish_$(date)"
# Check which platform
if uname -a |grep -q Darwin; then
usersGroup="staff"
squishLicenseDir="/Users/qt"
elif uname -a |grep -q "el7"; then
usersGroup="qt"
squishLicenseDir="/root"
elif uname -a |grep -q "Ubuntu"; then
usersGroup="users"
squishLicenseDir="/home/qt"
else
usersGroup="users"
squishLicenseDir="/root"
fi
if [ -f "/etc/profile.d/squish_env.sh" ]; then
echo "Remove /etc/profile.d/squish_env.sh"
sudo rm -f "/etc/profile.d/squish_env.sh"
export SQUISH_LICENSEKEY_DIR=$HOME
targetFileMount="$mountFolder"/"$compressedFolder"
echo "Mounting $preBuildCacheUrl to $mountFolder"
sudo mount "$preBuildCacheUrl" "$mountFolder"
echo "Create $installFolder if needed"
if [ ! -d "$installFolder" ]; then
sudo mkdir "$installFolder"
fi
function MountAndInstall {
url=$1
targetDirectory=$2
targetFile=$3
VerifyHash "$targetFileMount" "$sha1"
# Check which platform
if uname -a |grep -q Darwin; then
usersGroup="staff"
mountFolder="/Volumes"
squishLicenseDir="/Users/qt"
elif uname -a |grep -q "el7"; then
usersGroup="qt"
mountFolder="/tmp"
squishLicenseDir="/root"
elif uname -a |grep -q "Ubuntu"; then
usersGroup="users"
mountFolder="/tmp"
squishLicenseDir="/home/qt"
else
usersGroup="users"
mountFolder="/tmp"
squishLicenseDir="/root"
fi
echo "Uncompress $compressedFolder"
sudo tar -xzf "$targetFileMount" --directory "$installFolder"
function UnMount {
echo "Unmounting $mountFolder"
sudo diskutil unmount force "$mountFolder" || sudo umount -f "$mountFolder"
}
echo "Unmounting $mountFolder"
sudo diskutil unmount force "$mountFolder" || sudo umount -f "$mountFolder"
targetFileMount="$mountFolder"/"$targetFile"
echo "Mounting $url to $mountFolder"
sudo mount "$url" "$mountFolder"
echo "Create $targetDirectory if needed"
if [ ! -d "/opt" ]; then
sudo mkdir "/opt"
fi
if [ ! -d "$targetDirectory" ]; then
sudo mkdir "$targetDirectory"
fi
echo "Uncompress $targetFile"
if [[ $targetFile == *.tar.gz ]]; then
if [[ $targetFile == .squish-3-license.* ]]; then
target="$squishLicenseDir"
# Squish license need to be exists also in users home directory, because squish check it before it starts running tests
sudo tar -xzf "$targetFileMount" --directory "$HOME"
else
target="$targetDirectory"
fi
sudo tar -xzf "$targetFileMount" --directory "$target"
UnMount
elif [[ $targetFile == *.dmg ]]; then
echo "'dmg-file', no need to uncompress"
sudo cp $targetFileMount /tmp
UnMount
sudo hdiutil attach "/tmp/$targetFile"
sudo /Volumes/froglogic\ Squish/Install\ Squish.app/Contents/MacOS/Squish unattended=1 targetdir="$targetDirectory/package" qtpath="$targetDirectory" > /dev/null 2>&1
mountFolder="/Volumes/froglogic Squish"
UnMount
elif [[ $targetFile == *.run ]]; then
echo "'run-file', no need to uncompress"
sudo cp $targetFileMount $targetDirectory
UnMount
sudo chmod +x $targetDirectory/$targetFile
sudo $targetDirectory/$targetFile unattended=1 targetdir="$targetDirectory/package" qtpath="$targetDirectory" > /dev/null 2>&1
sudo rm -fr "$targetDirectory/$targetFile"
if uname -a |grep -q "Ubuntu"; then
sudo mkdir /usr/lib/tcl8.6
sudo cp "$targetDirectory/package/tcl/lib/tcl8.6/init.tcl" /usr/lib/tcl8.6/
fi
else
exit 1
fi
echo "Changing ownerships"
sudo chown -R qt:$usersGroup "$targetDirectory"
sudo chown qt:$usersGroup "$HOME/.squish-3-license"
}
echo "Set commands for environment variables in .bashrc"
sudo mv "$installFolder/rta_squish_$version" "$squishFolder"
if uname -a |grep -q "Ubuntu"; then
echo "export SQUISH_PATH=$squishFolder/package" >> ~/.profile
echo "export PATH=\$PATH:$squishFolder/squish-$version/bin" >> ~/.profile
else
echo "export SQUISH_PATH=$squishFolder/package" >> ~/.bashrc
echo "export PATH=\$PATH:$squishFolder/squish-$version/bin" >> ~/.bashrc
if [ ! -e "/usr/lib/tcl8.6" ]; then
sudo mkdir /usr/lib/tcl8.6
sudo cp "$squishFolder/squish_for_qt/tcl/lib/tcl8.6/init.tcl" /usr/lib/tcl8.6/
fi
fi
echo "Installing squish license to home directory.."
MountAndInstall "$squishLicenseUrl" "$squishFolder" "$squishLicenseFile"
DownloadURL "$licenseUrl" "$licenseUrl" "$licenseSHA" "$HOME/.squish-3-license"
echo "Installing squish $version.."
MountAndInstall "$squishUrl" "$squishFolder" "$squishFile"
echo "Changing ownerships"
sudo chown -R qt:$usersGroup "$squishFolder"
sudo chown qt:$usersGroup "$HOME/.squish-3-license"
echo "Installing provisioning scripts for squish"
MountAndInstall "$testSuiteUrl" "$squishFolder" "$testSuite.tar.gz"
echo "Verifying Squish Installation"
if "$squishFolder/package/bin/squishrunner" --testsuite "$squishFolder/$testSuite" | grep "Squish test run successfully" ; then
echo "Squish installation tested successfully"
echo "Set commands for environment variables in .bashrc"
if uname -a |grep -q "Ubuntu"; then
echo "export SQUISH_PATH=$squishFolder/squish_for_qt" >> ~/.profile
echo "export PATH=\$PATH:$squishFolder/squish_for_qt/bin" >> ~/.profile
else
echo "Squish test failed! Package wasn't installed correctly."
echo "export SQUISH_PATH=$squishFolder/squish_for_qt" >> ~/.bashrc
echo "export PATH=\$PATH:$squishFolder/squish_for_qt/bin" >> ~/.bashrc
fi
echo "Verifying Squish"
if "$squishFolder/squish_for_qt/bin/squishrunner" --testsuite "$squishFolder/suite_test_squish" | grep "Squish test run successfully" ; then
echo "Squish for Qt installation tested successfully"
else
echo "Squish for Qt test failed! Package wasn't installed correctly."
exit 1
fi