mirror of
git://code.qt.io/qt/qt5.git
synced 2026-02-01 19:36:04 +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
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#############################################################################
|
||||
##
|
||||
## Copyright (C) 2018 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,122 +33,48 @@
|
||||
|
||||
. "$PSScriptRoot\helpers.ps1"
|
||||
|
||||
# This script will install squish package for Windows.
|
||||
# This script will pre-installed squish package for Windows.
|
||||
# Squish is need by Release Test Automation (RTA)
|
||||
# NOTE! Make sure 64bit versions are always installed before 32bit,
|
||||
# because they use same folder name before a rename
|
||||
|
||||
$version = "6.4.3"
|
||||
|
||||
# Qt branch without dot (*.*)
|
||||
$version = "6.6.1"
|
||||
$qtBranch = "512x"
|
||||
# So far Squish built with Qt5.12 works also with 5.13, but we have to be prepared that on some point
|
||||
# the compatibility breaks, and we may need to have separate Squish packages for different Qt versions.
|
||||
|
||||
$targetDir = "C:\Utils\squish"
|
||||
$squishUrl = "\\ci-files01-hki.intra.qt.io\provisioning\squish\coin"
|
||||
$squishBranchUrl = "$squishUrl\$qtBranch"
|
||||
$testSuite = "suite_test_squish"
|
||||
$testSuiteUrl = "$squishUrl\$testSuite.7z"
|
||||
$squishPackage = "C:\Utils\rta_squish"
|
||||
$squishUrl = "\\ci-files01-hki.intra.qt.io\provisioning\squish\jenkins_build\stable"
|
||||
$licenseUrl = "\\ci-files01-hki.intra.qt.io\provisioning\squish\coin"
|
||||
|
||||
# Squish license
|
||||
$licensePackage = ".squish-3-license"
|
||||
|
||||
Write-Host "Installing Squish license to home directory"
|
||||
Copy-Item $licenseUrl\$licensePackage ~\$licensePackage
|
||||
|
||||
if (Is64BitWinHost) {
|
||||
$arch = "x64"
|
||||
} else {
|
||||
$arch = "x86"
|
||||
}
|
||||
|
||||
$OSVersion = (get-itemproperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ProductName).ProductName
|
||||
|
||||
Function DownloadAndInstallSquish {
|
||||
Param (
|
||||
[string]$version,
|
||||
[string]$bit,
|
||||
[string]$squishPackage
|
||||
)
|
||||
# MinGW x86 available only with Qt5.11, to be updated when Squish is supporting 5.13
|
||||
if ("$bit" -eq "win32" -and $squishPackage.StartsWith("mingw")) {
|
||||
$qtBranch = "511x"
|
||||
}
|
||||
$SquishUrl = $squishBranchUrl + "\squish-" + $version + "-qt" + $qtBranch + "-" + $bit + "-" + $squishPackage + ".exe"
|
||||
$SquishInstaller = "$targetDir\$squishPackage.exe"
|
||||
$SquishParameters = "unattended=1 targetdir=$targetDir\$squishPackage"
|
||||
|
||||
Write-Host "Fetching from URL $squishUrl"
|
||||
Copy-Item "$SquishUrl" "$SquishInstaller"
|
||||
Write-Host "Installing Squish"
|
||||
Run-Executable "$SquishInstaller" "$SquishParameters"
|
||||
Remove-Item -Path $SquishInstaller
|
||||
if ("$bit" -eq "win64") {
|
||||
if ($squishPackage.StartsWith("mingw")) {
|
||||
$squishPackage64bit = "mingw_64"
|
||||
} else {
|
||||
$squishPackage64bit = "$squishPackage`_64"
|
||||
}
|
||||
Rename-Item $targetDir\$squishPackage $targetDir\$squishPackage64bit
|
||||
TestSquish $squishPackage64bit
|
||||
} else {
|
||||
if ($squishPackage.StartsWith("mingw")) {
|
||||
Rename-Item $targetDir\$squishPackage $targetDir\mingw
|
||||
TestSquish mingw
|
||||
} else {
|
||||
TestSquish $squishPackage
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Function DownloadSquishLicence {
|
||||
Param (
|
||||
[string]$squishUrl
|
||||
)
|
||||
|
||||
Write-Host "Installing Squish license to home directory"
|
||||
Copy-Item $squishUrl\$licensePackage ~\$licensePackage
|
||||
}
|
||||
|
||||
Function TestSquish {
|
||||
Param (
|
||||
[string]$squishPackage
|
||||
)
|
||||
|
||||
Write-Host "Verifying Squish Installation"
|
||||
if (cmd /c "$targetDir\$squishPackage\bin\squishrunner.exe --testsuite $targetDir\$testSuite" |Select-String -Pattern "Squish test run successfully") {
|
||||
Write-Host "Squish installation tested successfully!"
|
||||
} else {
|
||||
Write-Host "Squish test failed! $squishPackage wasn't installed correctly."
|
||||
[Environment]::Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "Creating $targetDir"
|
||||
New-Item -ErrorAction Ignore -ItemType directory -Path "$targetDir"
|
||||
|
||||
Write-Host "Download and install Test Suite for squish"
|
||||
Copy-Item $testSuiteUrl $targetDir/$testSuite.7z
|
||||
Extract-7Zip $targetDir/$testSuite.7z $targetDir
|
||||
|
||||
DownloadSquishLicence $squishUrl
|
||||
|
||||
if ($OSVersion -eq "Windows 10 Enterprise") {
|
||||
|
||||
$winVersion = "win10"
|
||||
if (Is64BitWinHost) {
|
||||
DownloadAndInstallSquish $version win64 "msvc14"
|
||||
DownloadAndInstallSquish $version win64 "msvc141"
|
||||
DownloadAndInstallSquish $version win64 "mingw_gcc73_posix_seh"
|
||||
$sha1 = "13cb5b6a71d915213fac4273c99c83406b03985f"
|
||||
} else {
|
||||
DownloadAndInstallSquish $version win32 "mingw_gcc53_posix_dwarf"
|
||||
$sha1 = "33484220762110b2fce1a1f9042f27358cb23929"
|
||||
}
|
||||
DownloadAndInstallSquish $version win32 "msvc141"
|
||||
|
||||
} elseif ($OSVersion -eq "Windows 8.1 Enterprise") {
|
||||
|
||||
if (Is64BitWinHost) {
|
||||
DownloadAndInstallSquish $version win64 "msvc14"
|
||||
}
|
||||
DownloadAndInstallSquish $version win32 "msvc141"
|
||||
|
||||
} elseif ($OSVersion -eq "Windows 7 Enterprise") {
|
||||
|
||||
if (Is64BitWinHost) {
|
||||
DownloadAndInstallSquish $version win64 "msvc14"
|
||||
} else {
|
||||
DownloadAndInstallSquish $version win32 "mingw_gcc53_posix_dwarf"
|
||||
}
|
||||
DownloadAndInstallSquish $version win32 "msvc141"
|
||||
$winVersion = "win7"
|
||||
$sha1 = "05d6255b090eace35cf1e899ea203e9182cccccd"
|
||||
}
|
||||
$squishArchive = "prebuild-squish-$version-$qtBranch-$winVersion-$arch.zip"
|
||||
|
||||
Copy-Item "$squishUrl\$squishArchive" "C:\Utils"
|
||||
Verify-Checksum "C:\Utils\$squishArchive" $sha1
|
||||
Extract-7Zip "C:\Utils\$squishArchive" "C:\Utils"
|
||||
Rename-Item "$squishPackage" "$targetDir"
|
||||
|
||||
Write-Host "Verifying Squish Installation for following targets:"
|
||||
get-childitem "$targetDir" -Filter squishrunner.exe -Recurse | % { $_.FullName }
|
||||
get-childitem "$targetDir" -Filter squishrunner.exe -Recurse | % { if (cmd /c $_.FullName --testsuite "$targetDir\suite_test_squish" |Select-String -Pattern "Squish test run successfully") { Write-Host "Squish tested successfully"} else { [Environment]::Exit(1) } }
|
||||
|
||||
Reference in New Issue
Block a user