aboutsummaryrefslogtreecommitdiffstats
path: root/coin
diff options
context:
space:
mode:
authorJohanna Äijälä <johanna.aijala@qt.io>2020-10-30 14:27:45 +0200
committerJohanna Äijälä <johanna.aijala@qt.io>2020-11-03 07:29:49 +0200
commit3693ea212cce345c5beb5b39ff4c4a7e50e08ef8 (patch)
treed370182c0f6c5180f8665aa3ee435402282e6f12 /coin
parent08a384605a5c3984f1c724eb12fa6127b9ee76f5 (diff)
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>
Diffstat (limited to 'coin')
-rwxr-xr-xcoin/provisioning/common/unix/squishInstall.sh176
-rw-r--r--coin/provisioning/common/windows/squishInstall.ps1130
2 files changed, 92 insertions, 214 deletions
diff --git a/coin/provisioning/common/unix/squishInstall.sh b/coin/provisioning/common/unix/squishInstall.sh
index b40c1922..0b2368e9 100755
--- a/coin/provisioning/common/unix/squishInstall.sh
+++ b/coin/provisioning/common/unix/squishInstall.sh
@@ -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"
-
-testSuite="suite_test_squish"
-testSuiteUrl="ci-files01-hki.intra.qt.io:/hdd/www/input/squish/coin/"
+mountFolder="/tmp/squish"
+sudo mkdir "$mountFolder"
-# 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
-
- # 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
+VerifyHash "$targetFileMount" "$sha1"
- function UnMount {
- echo "Unmounting $mountFolder"
- sudo diskutil unmount force "$mountFolder" || sudo umount -f "$mountFolder"
- }
+echo "Uncompress $compressedFolder"
+sudo tar -xzf "$targetFileMount" --directory "$installFolder"
- targetFileMount="$mountFolder"/"$targetFile"
+echo "Unmounting $mountFolder"
+sudo diskutil unmount force "$mountFolder" || sudo umount -f "$mountFolder"
- 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
+sudo mv "$installFolder/rta_squish_$version" "$squishFolder"
+
+if uname -a |grep -q "Ubuntu"; then
+ 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 "Changing ownerships"
- sudo chown -R qt:$usersGroup "$targetDirectory"
- sudo chown qt:$usersGroup "$HOME/.squish-3-license"
-}
+DownloadURL "$licenseUrl" "$licenseUrl" "$licenseSHA" "$HOME/.squish-3-license"
-echo "Set commands for environment variables in .bashrc"
+echo "Changing ownerships"
+sudo chown -R qt:$usersGroup "$squishFolder"
+sudo chown qt:$usersGroup "$HOME/.squish-3-license"
+echo "Set commands for environment variables in .bashrc"
if uname -a |grep -q "Ubuntu"; then
- echo "export SQUISH_PATH=$squishFolder/package" >> ~/.profile
- echo "export PATH=\$PATH:$squishFolder/squish-$version/bin" >> ~/.profile
+ echo "export SQUISH_PATH=$squishFolder/squish_for_qt" >> ~/.profile
+ echo "export PATH=\$PATH:$squishFolder/squish_for_qt/bin" >> ~/.profile
else
- echo "export SQUISH_PATH=$squishFolder/package" >> ~/.bashrc
- echo "export PATH=\$PATH:$squishFolder/squish-$version/bin" >> ~/.bashrc
+ echo "export SQUISH_PATH=$squishFolder/squish_for_qt" >> ~/.bashrc
+ echo "export PATH=\$PATH:$squishFolder/squish_for_qt/bin" >> ~/.bashrc
fi
-echo "Installing squish license to home directory.."
-MountAndInstall "$squishLicenseUrl" "$squishFolder" "$squishLicenseFile"
-
-echo "Installing squish $version.."
-MountAndInstall "$squishUrl" "$squishFolder" "$squishFile"
-
-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 "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 test failed! Package wasn't installed correctly."
+ echo "Squish for Qt test failed! Package wasn't installed correctly."
exit 1
fi
+
diff --git a/coin/provisioning/common/windows/squishInstall.ps1 b/coin/provisioning/common/windows/squishInstall.ps1
index de04d242..2b676379 100644
--- a/coin/provisioning/common/windows/squishInstall.ps1
+++ b/coin/provisioning/common/windows/squishInstall.ps1
@@ -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"
-$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 "Installing Squish license to home directory"
+Copy-Item $licenseUrl\$licensePackage ~\$licensePackage
- 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)
- }
+if (Is64BitWinHost) {
+ $arch = "x64"
+} else {
+ $arch = "x86"
}
-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
+$OSVersion = (get-itemproperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ProductName).ProductName
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"
- }
- DownloadAndInstallSquish $version win32 "msvc141"
-
-} elseif ($OSVersion -eq "Windows 8.1 Enterprise") {
-
- if (Is64BitWinHost) {
- DownloadAndInstallSquish $version win64 "msvc14"
+ $sha1 = "33484220762110b2fce1a1f9042f27358cb23929"
}
- 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) } }