From 879c8b91f37cb4ce9ddfcb930237f203645763e5 Mon Sep 17 00:00:00 2001 From: Elias Toivola Date: Wed, 5 Jul 2023 13:25:27 +0300 Subject: [PATCH] Provisioning: Exit when an emscripten install command fails MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If there is an error in emsdk scripts when running ".\emsdk install", the provisioning would still continue. This change will make the script exit and stop provisioning when the install command fails. Also remove the attempt to use Python 2 and make sure the installation finds Python 3 instead. Pick-to: 6.8 6.5 Task-number: QTQAINFRA-5453 Change-Id: If052adcd446537b0eeb6261e4a297e9aeb292c6e Reviewed-by: Tony Sarajärvi --- coin/provisioning/common/unix/emsdk.sh | 13 ++++++++----- coin/provisioning/common/windows/emsdk.ps1 | 18 +++++++++++++----- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/coin/provisioning/common/unix/emsdk.sh b/coin/provisioning/common/unix/emsdk.sh index b85105b5..00f6a745 100755 --- a/coin/provisioning/common/unix/emsdk.sh +++ b/coin/provisioning/common/unix/emsdk.sh @@ -11,7 +11,7 @@ source "${BASH_SOURCE%/*}/DownloadURL.sh" version="3.1.56" versionNode="v16.20.0" tarBallVersion="${version//./_}" -if uname -a |grep -q Darwin; then +if uname -a | grep -q Darwin; then tarBallPackage="emsdk_macos_${tarBallVersion}.tar.gz" sha="24c49db971da4fd7c68f6b71984c3d7775fdfb84" else @@ -22,7 +22,7 @@ cacheUrl="https://ci-files01-hki.ci.qt.io/input/emsdk/${tarBallPackage}" target="/tmp/${tarBallPackage}" mkdir -p /opt -cd /opt +cd /opt || exit echo "URL: $cacheUrl" if DownloadURL "$cacheUrl" "" "$sha" "$target"; then @@ -31,13 +31,16 @@ if DownloadURL "$cacheUrl" "" "$sha" "$target"; then else echo "Emsdk isn't cached. Cloning it" sudo git clone https://github.com/emscripten-core/emsdk.git - cd emsdk - sudo ./emsdk install "$version" + cd emsdk || exit + if ! sudo ./emsdk install "$version"; then + echo "Error: emsdk installation failed" + exit 1 + fi sudo ./emsdk activate "$version" fi # platform-specific toolchain and node binaries. urls obtained from "emsdk install" -if uname -a |grep -q Darwin; then +if uname -a | grep -q Darwin; then pathNodeExecutable="node-$versionNode-darwin-x64/bin/node" else pathNodeExecutable="node-$versionNode-linux-x64/bin/node" diff --git a/coin/provisioning/common/windows/emsdk.ps1 b/coin/provisioning/common/windows/emsdk.ps1 index b0870e8d..5dcdd99e 100644 --- a/coin/provisioning/common/windows/emsdk.ps1 +++ b/coin/provisioning/common/windows/emsdk.ps1 @@ -11,8 +11,9 @@ $temp = "$env:tmp" $cacheUrl = "https://ci-files01-hki.ci.qt.io/input/emsdk/emsdk_windows_${zipVersion}.zip" $sha = "ab376d218f1a66302c36770977948f74f0576a42" -# Make sure python is in the path -Prepend-Path "C:\Python27" +# Python used for '.\emsdk install' +$pythonPath = [System.Environment]::GetEnvironmentVariable("PYTHON3_PATH", "Machine") +Prepend-Path $pythonPath cd "C:\\Utils" $installLocationEmsdk = "C:\\Utils\\emsdk" @@ -24,11 +25,18 @@ try { cd $installLocationEmsdk .\emsdk activate $version } catch { - Write-Host "Can't find cached emsdk. Cloning it" + Write-Host "Can't find cached emsdk or another error occurred. Cloning it" + Write-Host "Error details: $_" + C:\PROGRA~1\Git\bin\git clone https://github.com/emscripten-core/emsdk.git cd $installLocationEmsdk - .\emsdk install $version - .\emsdk activate $version + + try { + .\emsdk install $version + .\emsdk activate $version + } catch { + throw "emsdk installation failed: $_" + } } $versionWinPython = $($Env:EMSDK_PYTHON -split ('python\\') -split ('_64bit'))[1]