From f6f8f085c8c74a42b53347b9399d4909d491e30c Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Sun, 10 May 2020 21:42:13 -0700 Subject: Try installing Ruby via chocolatey The s3 bucket install is proving to be very fragile. Signed-off-by: Tim Smith --- scripts/bk_tests/bk_win_functional.ps1 | 92 +++++----------------------------- 1 file changed, 12 insertions(+), 80 deletions(-) diff --git a/scripts/bk_tests/bk_win_functional.ps1 b/scripts/bk_tests/bk_win_functional.ps1 index 90abfe890f..976237f203 100644 --- a/scripts/bk_tests/bk_win_functional.ps1 +++ b/scripts/bk_tests/bk_win_functional.ps1 @@ -1,90 +1,22 @@ -# The filename of the Ruby installer -$RubyFilename = "rubyinstaller-devkit-2.6.5-1-x64.exe" - -# The sha256 of the Ruby installer (capitalized?) -$RubySHA256 = "BD2050496A149C7258ED4E2E44103756CA3A05C7328A939F0FDC97AE9616A96D" - -# Where on disk to download Ruby to -$RubyPath = "$env:temp\$RubyFilename" - -# Where to download Ruby from: -$RubyS3Path = "s3://public-cd-buildkite-cache/$RubyFilename" - -Function DownloadRuby -{ - $RandDigits = Get-Random - echo "Downloading Ruby + DevKit" - - aws s3 cp "$RubyS3Path" "$RubyPath.$RandDigits" | Out-Null # Out-Null is a hack to wait for the process to complete - - if ($LASTEXITCODE -ne 0) { - echo "aws s3 download failed: $LASTEXITCODE" - exit $LASTEXITCODE - } - - $FileHash = (Get-FileHash "$RubyPath.$RandDigits" -Algorithm SHA256).Hash - If ($FileHash -eq $RubySHA256) { - echo "Downloaded SHA256 matches: $FileHash" - } Else { - echo "Downloaded file hash $FileHash does not match desired $RubySHA256" - exit 1 - } - - # On a shared filesystem, sometimes a good file appears while we are downloading - If (Test-Path $RubyPath) { - $FileHash = (Get-FileHash "$RubyPath" -Algorithm SHA256).Hash - If ($FileHash -eq $RubySHA256) { - echo "A matching file appeared while downloading, using it." - Remove-Item "$RubyPath.$RandDigits" -Force - Return - } Else { - echo "Existing file does not match, bad hash: $FileHash" - Remove-Item $RubyPath -Force - } - } - - echo "Moving file installer into place" - Rename-Item -Path "$RubyPath.$RandDigits" -NewName $RubyFilename -} - -Function InstallRuby -{ - If (Test-Path $RubyPath) { - echo "$RubyPath already exists" - - $FileHash = (Get-FileHash "$RubyPath" -Algorithm SHA256).Hash - If ($FileHash -eq $RubySHA256) { - echo "Found matching Ruby + DevKit on disk" - } Else { - echo "SHA256 hash mismatch, re-downloading" - DownloadRuby - } - } Else { - echo "No Ruby found at $RubyPath, downloading" - DownloadRuby - } - - echo "Installing Ruby + DevKit" - Start-Process $RubyPath -ArgumentList '/verysilent /dir=C:\\ruby26' -Wait - - echo "Cleaning up installation" - Remove-Item $RubyPath -Force -ErrorAction SilentlyContinue -} - echo "--- system details" $Properties = 'Caption', 'CSName', 'Version', 'BuildType', 'OSArchitecture' Get-CimInstance Win32_OperatingSystem | Select-Object $Properties | Format-Table -AutoSize -# chocolatey functional tests fail so delete the chocolatey binary to avoid triggering them -Remove-Item -Path C:\ProgramData\chocolatey\bin\choco.exe -ErrorAction SilentlyContinue +echo "--- configure winrm" + +winrm quickconfig -q + +echo "--- installing ruby" -echo "--- install ruby + devkit" -$ErrorActionPreference = 'Stop' +choco install ruby -y +refreshenv +ruby -v +if (-not $?) { throw "Unable to install ruby" } -InstallRuby +echo "--- remove chocolatey to avoid those tests running :(" -# Set-Item -Path Env:Path -Value to include ruby26 -$Env:Path+=";C:\ruby26\bin" +# chocolatey functional tests fail so delete the chocolatey binary to avoid triggering them +Remove-Item -Path C:\ProgramData\chocolatey\bin\choco.exe -ErrorAction SilentlyContinue echo "--- configure winrm" -- cgit v1.2.1