mirror of
git://code.qt.io/qt/qt5.git
synced 2026-04-20 03:46:44 +08:00
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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user