From badd5d104599049ab3532e2458995e16980ec1d6 Mon Sep 17 00:00:00 2001 From: Alejandro Pauly Date: Mon, 16 Dec 2019 12:05:35 -0500 Subject: [PATCH 01/54] Add secret variables to sensitive-variables array. --- images/linux/ubuntu1604.json | 1 + images/linux/ubuntu1804.json | 1 + images/win/Windows2016-Azure.json | 1 + 3 files changed, 3 insertions(+) diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index a1e9d27fa..ca7923a39 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -22,6 +22,7 @@ "capture_name_prefix": "packer", "image_version": "dev" }, + "sensitive-variables": ["client_secret"], "builders": [ { "type": "azure-arm", diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 2c10a6822..fa5e66f0b 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -22,6 +22,7 @@ "capture_name_prefix": "packer", "image_version": "dev" }, + "sensitive-variables": ["client_secret"], "builders": [ { "type": "azure-arm", diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index c51dcdfe5..fe7131798 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -26,6 +26,7 @@ "capture_name_prefix": "packer", "image_version": "dev" }, + "sensitive-variables": ["install_password", "ssh_password", "client_secret"], "builders": [ { "name": "vhd", From 37527bf54a23319896d51ccad371a5fc4a42986a Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Thu, 19 Dec 2019 13:49:39 +0400 Subject: [PATCH 02/54] Chrome Installation has been rewriten for using the installer from Chrome web site. Total refactoring (adding the error handling and elimination of 'copy-past' --- .../win/scripts/Installers/Install-Chrome.ps1 | 142 ++++++++++++++++-- .../Installers/Install-SeleniumWebDrivers.ps1 | 2 + 2 files changed, 128 insertions(+), 16 deletions(-) diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1 index 15a2e1e28..737d07234 100644 --- a/images/win/scripts/Installers/Install-Chrome.ps1 +++ b/images/win/scripts/Installers/Install-Chrome.ps1 @@ -2,25 +2,135 @@ ## File: Install-Chrome.ps1 ## Desc: Install Google Chrome ################################################################################ +function Stop-SvcWithErrHandling +{ + param ( + [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName + ) -Import-Module -Name ImageHelpers -Force + Begin { + Write-Debug "Function [Stop-SvcWithErrHnadlig] is started"; + } + Process { + $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue + if(-not $Service) { + Write-Warning "[!] Service [$ServiceName] is not found"; + } + else { + Write-Debug "Try to stop service [$ServiceName]"; + try { + Stop-Service -Name $ServiceName -Force; + $Service.WaitForStatus("Stopped", "00:01:00"); + Write-Debug "Service [$ServiceName] has been stoppet successfuly"; + } + catch { + Write-Error "[!] Failed to stop service [$ServiceName] with error:" + $_ | Out-String | Write-Error; + } + } + } + End { + Write-Debug "Function [Stop-SvcWithErrHnadlig] is stopped"; + } +} -$temp_install_dir = 'C:\Windows\Installer' -New-Item -Path $temp_install_dir -ItemType Directory -Force +function Set-SvcWithErrHandling +{ + param ( + [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName, + [Parameter(Mandatory)] [hashtable] $Arguments + ) + Begin { + Write-Debug "Function [Set-SvcWithErrHnadlig] is started"; + } + Process { + $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue + if(-not $Service) { + Write-Warning "[!] Service [$ServiceName] is not found"; + } + try { + Set-Service $ServiceName @Arguments; + } + catch { + Write-Error "[!] Failed to set service [$ServiceName] arguments with error:" + $_ | Out-String | Write-Error; + } + } + End { + Write-Debug "Function [Stop-SvcWithErrHnadlig] is stopped"; + } +} -Install-MSI -MsiUrl "https://seleniumwebdrivers.blob.core.windows.net/knownchromeversion/googlechromestandaloneenterprise64.msi" -MsiName "googlechromestandaloneenterprise64.msi" +function New-ItemWithErrHandling { + param ( + [Parameter(Mandatory)] [hashtable] $Arguments + ) + Write-Debug "Creation of [$($Arguments.Name)] item"; + try { + New-ItemProperty @Arguments; + } + catch { + Write-Warning "[!] Failed to create [$($Arguments.Name)] registry parameter"; + } +} -New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe" +$TempPath = $env:TEMP; +$ChromeInstallerFile = "chrome_installer.exe"; +$ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/chrome_installer.exe"; +$IntallationError = $false; -Stop-Service -Name gupdate -Force -Set-Service -Name gupdate -StartupType "Disabled" -Stop-Service -Name gupdatem -Force -Set-Service -Name gupdatem -StartupType "Disabled" +try { + Write-Debug "Getting the Chrome installer: [$TempPath\$ChromeInstallerFile]"; + Invoke-WebRequest -Uri $ChromeInstallerUri -OutFile "$TempPath\$ChromeInstallerFile"; + + Write-Debug "Run the Chrome installer." + Start-Process -FilePath "$TempPath\$ChromeInstallerFile" -ArgumentList "/silent /install" -Wait; + Write-Debug "Chrome installation complette"; +} +catch { + Write-Error "[!] Failed to install Google Chrome: [$($_.Exception.Message)]"; + $IntallationError = $true; +} +finally{ + Write-Debug "Removing the Chrome installer file." + Remove-Item "$TempPath\$ChromeInstallerFile" -Force; +} + +if($IntallationError) { + exit; +} +Write-Debug "Adding the firewall rule for Google update blocking"; +New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe"; + +('gupdate','gupdatem') | Stop-SvcWithErrHandling; +('gupdate','gupdatem') | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"}; + +$regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update"; +$regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome"; +($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object { + Write-Debug "Creation of [$_] registry key"; + try { + New-Item -Path $_ -Force; + } + catch { + Write-Warning "[!] Failed to create [$_] registry key"; + } +} + +$regGoogleUpdateParameters = @( + @{ Name = "AutoUpdateCheckPeriodMinutes"; Value = 00000000}, + @{ Name = "UpdateDefault"; Value = 00000000 }, + @{ Name = "DisableAutoUpdateChecksCheckboxValuet"; Value = 00000000 }, + @{ Name = "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}"; Value = 00000000 } +) + +$regGoogleUpdateParameters | ForEach-Object { + $Arguments = $_; + $Arguments.Add("Path", $regGoogleUpdatePath); + $Arguments.Add("Force", $true); + New-ItemWithErrHandling -Arguments $Arguments +} + +$Arguments = @{ Path = $regGoogleUpdateChrome; Name = "AutoUpdateCheckPeriodMinutes"; Value = 00000000; Force = $true }; +New-ItemWithErrHandling -Arguments $Arguments; -New-Item -Path "HKLM:\SOFTWARE\Policies\Google\Update" -Force -New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "AutoUpdateCheckPeriodMinutes" -Value 00000000 -Force -New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "UpdateDefault" -Value 00000000 -Force -New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "DisableAutoUpdateChecksCheckboxValue" -Value 00000001 -Force -New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}" -Value 00000000 -Force -New-Item -Path "HKLM:\SOFTWARE\Policies\Google\Chrome" -Force -New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Chrome" -Name "DefaultBrowserSettingEnabled" -Value 00000000 -Force diff --git a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 index 3c08977a5..0b25d97c2 100644 --- a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 +++ b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 @@ -2,6 +2,8 @@ ## File: Install-SeleniumWebDrivers.ps1 ## Desc: Install Selenium Web Drivers ################################################################################ +$ChromePath = + Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/SeleniumWebDrivers.zip" -OutFile SeleniumWebDrivers.zip From 89f3857d4ba00f0974221770e2fd4db832ff6c2b Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Thu, 19 Dec 2019 16:17:13 +0400 Subject: [PATCH 03/54] Rewriten Chrome driver Installation logic to use Chrome version --- .../Installers/Install-SeleniumWebDrivers.ps1 | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 index 0b25d97c2..45e60d01e 100644 --- a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 +++ b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 @@ -2,18 +2,45 @@ ## File: Install-SeleniumWebDrivers.ps1 ## Desc: Install Selenium Web Drivers ################################################################################ -$ChromePath = +$DestinationPath = "C:\"; +Write-Debug "Destination path: [$DestinationPath]"; +Write-Debug "Selenium drivers download and install..."; +Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/SeleniumWebDrivers.zip" -OutFile SeleniumWebDrivers.zip; +Expand-Archive -Path SeleniumWebDrivers.zip -DestinationPath $DestinationPath -Force; +Remove-Item SeleniumWebDrivers.zip; +$ChromeDriverPath = "$DestinationPath\SeleniumWebDrivers\ChromeDriver"; +Write-Debug "Chrome driver path: [$ChromeDriverPath]"; +Remove-Item -Path "$ChromeDriverPath\*" -Force; -Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/SeleniumWebDrivers.zip" -OutFile SeleniumWebDrivers.zip +$ChromePath = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe').'(default)'; +[version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion; +Write-Debug "Chrome version: [$ChromeVersion]"; -Expand-Archive -Path SeleniumWebDrivers.zip -DestinationPath "C:\" -Force +$ChromeDriverVersionUri = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$($ChromeVersion.Major).$($ChromeVersion.Minor).$($ChromeVersion.Build)"; +Write-Debug "Chrome driver version Uri [$ChromeDriverVersionUri]"; +Write-Debug "Getting the Chrome driver version..."; +$ChromeDriverVersion = Invoke-WebRequest -Uri $ChromeDriverVersionUri; +Write-Debug "Current Chrome driver version: [$ChromeDriverVersion]"; -Remove-Item SeleniumWebDrivers.zip +$ChromeDriverZipDownloadUri = "https://chromedriver.storage.googleapis.com/$($ChromeDriverVersion.ToString())/chromedriver_win32.zip"; +Write-Debug "Chrome driver zip file download Uri: [$ChromeDriverZipDownloadUri]"; -setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M -setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M -setx ChromeWebDriver "C:\SeleniumWebDrivers\ChromeDriver" /M +$DestFile= "$ChromeDriverPath\chromedriver_win32.zip"; +$ChromeDriverVersion.Content | Out-File -FilePath "$ChromeDriverPath\versioninfo.txt" -Force; -exit 0 +Write-Debug "Chrome driver download...."; +Invoke-WebRequest -Uri $ChromeDriverZipDownloadUri -OutFile $DestFile; + +Write-Debug "Chrome driver install...."; +Expand-Archive -Path "$ChromeDriverPath\chromedriver_win32.zip" -DestinationPath $ChromeDriverPath -Force; +Remove-Item -Path "$ChromeDriverPath\chromedriver_win32.zip" -Force; + +Write-Debug "Setting the environment variables"; + +setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M; +setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M; +setx ChromeWebDriver "C:\SeleniumWebDrivers\ChromeDriver" /M; + +exit 0; From 537e9da92924cf17e3aec1171b9b407c1171ce0e Mon Sep 17 00:00:00 2001 From: Ivan Nosar Date: Thu, 19 Dec 2019 16:19:58 +0300 Subject: [PATCH 04/54] Install Selenium (draft) --- images/win/Windows2016-Azure.json | 6 ++++++ images/win/Windows2019-Azure.json | 6 ++++++ .../scripts/Installers/Install-Selenium.ps1 | 21 +++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 images/win/scripts/Installers/Install-Selenium.ps1 diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index c51dcdfe5..a0ceb902c 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -336,6 +336,12 @@ "{{ template_dir }}/scripts/Installers/Install-Firefox.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Selenium.ps1" + ] + }, { "type": "powershell", "scripts":[ diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 6875b7f07..2424320ae 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -306,6 +306,12 @@ "{{ template_dir }}/scripts/Installers/Install-Firefox.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Selenium.ps1" + ] + }, { "type": "powershell", "scripts":[ diff --git a/images/win/scripts/Installers/Install-Selenium.ps1 b/images/win/scripts/Installers/Install-Selenium.ps1 new file mode 100644 index 000000000..6dcb63ecc --- /dev/null +++ b/images/win/scripts/Installers/Install-Selenium.ps1 @@ -0,0 +1,21 @@ +################################################################################ +## File: Install-Selenium.ps1 +## Desc: Install Selenium Server standalone +################################################################################ + +# Acquire latest Selenium release number from GitHub API +$latestReleaseUrl = "https://api.github.com/repos/SeleniumHQ/selenium/releases/latest" +$latestReleaseInfo = Invoke-RestMethod -Uri $latestReleaseUrl +$seleniumVersionString = $latestReleaseInfo.name.Split(" ")[1] +$seleniumVersion = [version]::Parse($seleniumVersionString) + +# Download Selenium +Write-Host "Downloading selenium-server-standalone v$seleniumVersion..." + +$seleniumReleaseUrl = "https://selenium-release.storage.googleapis.com/$($seleniumVersion.ToString(2))/selenium-server-standalone-$($seleniumVersion.ToString(3)).jar" +$seleniumBinPath = "C:\selenium\selenium-server-standalone.jar" +Invoke-WebRequest -UseBasicParsing -Uri $seleniumReleaseUrl -OutFile $seleniumBinPath + +setx "CLASSPATH" "$($seleniumBinPath):$($env:CLASSPATH)" /M + +exit 0 From a2b624fefc4a2b4b0ab046808b67159ba883d72a Mon Sep 17 00:00:00 2001 From: Ivan Nosar Date: Thu, 19 Dec 2019 16:23:57 +0300 Subject: [PATCH 05/54] Add mkdir --- images/win/scripts/Installers/Install-Selenium.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/images/win/scripts/Installers/Install-Selenium.ps1 b/images/win/scripts/Installers/Install-Selenium.ps1 index 6dcb63ecc..c0a8d371f 100644 --- a/images/win/scripts/Installers/Install-Selenium.ps1 +++ b/images/win/scripts/Installers/Install-Selenium.ps1 @@ -13,6 +13,7 @@ $seleniumVersion = [version]::Parse($seleniumVersionString) Write-Host "Downloading selenium-server-standalone v$seleniumVersion..." $seleniumReleaseUrl = "https://selenium-release.storage.googleapis.com/$($seleniumVersion.ToString(2))/selenium-server-standalone-$($seleniumVersion.ToString(3)).jar" +New-Item -ItemType directory -Path "C:\selenium\" $seleniumBinPath = "C:\selenium\selenium-server-standalone.jar" Invoke-WebRequest -UseBasicParsing -Uri $seleniumReleaseUrl -OutFile $seleniumBinPath From ccd22c49b8cba4a6b8806ee236632fb55dcc6229 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Thu, 19 Dec 2019 17:29:56 +0400 Subject: [PATCH 06/54] Postreview changes for using Install-Exe and bugfixing --- .../win/scripts/Installers/Install-Chrome.ps1 | 27 +++---------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1 index 737d07234..970e56d11 100644 --- a/images/win/scripts/Installers/Install-Chrome.ps1 +++ b/images/win/scripts/Installers/Install-Chrome.ps1 @@ -74,31 +74,12 @@ function New-ItemWithErrHandling { } } -$TempPath = $env:TEMP; +Import-Module -Name ImageHelpers -Force; + $ChromeInstallerFile = "chrome_installer.exe"; $ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/chrome_installer.exe"; -$IntallationError = $false; +Install-Exe -Url $ChromeInstallerUri -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install") -try { - Write-Debug "Getting the Chrome installer: [$TempPath\$ChromeInstallerFile]"; - Invoke-WebRequest -Uri $ChromeInstallerUri -OutFile "$TempPath\$ChromeInstallerFile"; - - Write-Debug "Run the Chrome installer." - Start-Process -FilePath "$TempPath\$ChromeInstallerFile" -ArgumentList "/silent /install" -Wait; - Write-Debug "Chrome installation complette"; -} -catch { - Write-Error "[!] Failed to install Google Chrome: [$($_.Exception.Message)]"; - $IntallationError = $true; -} -finally{ - Write-Debug "Removing the Chrome installer file." - Remove-Item "$TempPath\$ChromeInstallerFile" -Force; -} - -if($IntallationError) { - exit; -} Write-Debug "Adding the firewall rule for Google update blocking"; New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe"; @@ -131,6 +112,6 @@ $regGoogleUpdateParameters | ForEach-Object { New-ItemWithErrHandling -Arguments $Arguments } -$Arguments = @{ Path = $regGoogleUpdateChrome; Name = "AutoUpdateCheckPeriodMinutes"; Value = 00000000; Force = $true }; +$Arguments = @{ Path = $regGoogleUpdateChrome; Name = "DefaultBrowserSettingEnabled"; Value = 00000000; Force = $true }; New-ItemWithErrHandling -Arguments $Arguments; From 34fa1cbdbcd6ab70a88d29ee45f21072a7a83f0e Mon Sep 17 00:00:00 2001 From: Ivan Nosar Date: Thu, 19 Dec 2019 17:27:56 +0300 Subject: [PATCH 07/54] Finalized installing Selenium --- .../scripts/Installers/Install-Selenium.ps1 | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/images/win/scripts/Installers/Install-Selenium.ps1 b/images/win/scripts/Installers/Install-Selenium.ps1 index c0a8d371f..819fe1607 100644 --- a/images/win/scripts/Installers/Install-Selenium.ps1 +++ b/images/win/scripts/Installers/Install-Selenium.ps1 @@ -5,8 +5,15 @@ # Acquire latest Selenium release number from GitHub API $latestReleaseUrl = "https://api.github.com/repos/SeleniumHQ/selenium/releases/latest" -$latestReleaseInfo = Invoke-RestMethod -Uri $latestReleaseUrl +try { + $latestReleaseInfo = Invoke-RestMethod -Uri $latestReleaseUrl +} catch { + Write-Error $_ + exit 1 +} +Write-Debug $latestReleaseInfo $seleniumVersionString = $latestReleaseInfo.name.Split(" ")[1] +Write-Debug $seleniumVersionString $seleniumVersion = [version]::Parse($seleniumVersionString) # Download Selenium @@ -15,8 +22,14 @@ Write-Host "Downloading selenium-server-standalone v$seleniumVersion..." $seleniumReleaseUrl = "https://selenium-release.storage.googleapis.com/$($seleniumVersion.ToString(2))/selenium-server-standalone-$($seleniumVersion.ToString(3)).jar" New-Item -ItemType directory -Path "C:\selenium\" $seleniumBinPath = "C:\selenium\selenium-server-standalone.jar" -Invoke-WebRequest -UseBasicParsing -Uri $seleniumReleaseUrl -OutFile $seleniumBinPath +try { + Invoke-WebRequest -UseBasicParsing -Uri $seleniumReleaseUrl -OutFile $seleniumBinPath +} catch { + Write-Error $_ + exit 1 +} -setx "CLASSPATH" "$($seleniumBinPath):$($env:CLASSPATH)" /M +Write-Host "Add selenium to CLASSPATH..." +setx "CLASSPATH" "$($seleniumBinPath);$($env:CLASSPATH)" /M exit 0 From 166982b4c42d2cdb615c2c450b885b67ad4dab9c Mon Sep 17 00:00:00 2001 From: Ivan Nosar Date: Fri, 20 Dec 2019 13:05:06 +0300 Subject: [PATCH 08/54] Add debug info about classpath value --- images/win/scripts/Installers/Install-Selenium.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/images/win/scripts/Installers/Install-Selenium.ps1 b/images/win/scripts/Installers/Install-Selenium.ps1 index 819fe1607..9818f4142 100644 --- a/images/win/scripts/Installers/Install-Selenium.ps1 +++ b/images/win/scripts/Installers/Install-Selenium.ps1 @@ -31,5 +31,6 @@ try { Write-Host "Add selenium to CLASSPATH..." setx "CLASSPATH" "$($seleniumBinPath);$($env:CLASSPATH)" /M +Write-Host "CLASSPATH: $($seleniumBinPath);$($env:CLASSPATH)" exit 0 From 347d8dd3b6a22fbe84c1687250528ddc720d0ddd Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Fri, 20 Dec 2019 14:36:00 +0400 Subject: [PATCH 09/54] Post-review code modification --- .../win/scripts/Installers/Install-Chrome.ps1 | 71 ++++++------------- .../Installers/Install-SeleniumWebDrivers.ps1 | 36 ++++++---- 2 files changed, 44 insertions(+), 63 deletions(-) diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1 index 970e56d11..1e4239b10 100644 --- a/images/win/scripts/Installers/Install-Chrome.ps1 +++ b/images/win/scripts/Installers/Install-Chrome.ps1 @@ -8,20 +8,18 @@ function Stop-SvcWithErrHandling [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName ) - Begin { - Write-Debug "Function [Stop-SvcWithErrHnadlig] is started"; - } Process { $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue - if(-not $Service) { - Write-Warning "[!] Service [$ServiceName] is not found"; + if (-not $Service) { + Write-Error "[!] Service [$ServiceName] is not found"; + exit 1; } else { - Write-Debug "Try to stop service [$ServiceName]"; + Write-Host "Try to stop service [$ServiceName]"; try { Stop-Service -Name $ServiceName -Force; $Service.WaitForStatus("Stopped", "00:01:00"); - Write-Debug "Service [$ServiceName] has been stoppet successfuly"; + Write-Host "Service [$ServiceName] has been stopped successfuly"; } catch { Write-Error "[!] Failed to stop service [$ServiceName] with error:" @@ -29,9 +27,6 @@ function Stop-SvcWithErrHandling } } } - End { - Write-Debug "Function [Stop-SvcWithErrHnadlig] is stopped"; - } } function Set-SvcWithErrHandling @@ -40,12 +35,10 @@ function Set-SvcWithErrHandling [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName, [Parameter(Mandatory)] [hashtable] $Arguments ) - Begin { - Write-Debug "Function [Set-SvcWithErrHnadlig] is started"; - } + Process { $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue - if(-not $Service) { + if (-not $Service) { Write-Warning "[!] Service [$ServiceName] is not found"; } try { @@ -56,62 +49,42 @@ function Set-SvcWithErrHandling $_ | Out-String | Write-Error; } } - End { - Write-Debug "Function [Stop-SvcWithErrHnadlig] is stopped"; - } -} - -function New-ItemWithErrHandling { - param ( - [Parameter(Mandatory)] [hashtable] $Arguments - ) - Write-Debug "Creation of [$($Arguments.Name)] item"; - try { - New-ItemProperty @Arguments; - } - catch { - Write-Warning "[!] Failed to create [$($Arguments.Name)] registry parameter"; - } } Import-Module -Name ImageHelpers -Force; $ChromeInstallerFile = "chrome_installer.exe"; -$ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/chrome_installer.exe"; +$ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"; Install-Exe -Url $ChromeInstallerUri -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install") -Write-Debug "Adding the firewall rule for Google update blocking"; +Write-Host "Adding the firewall rule for Google update blocking"; New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe"; -('gupdate','gupdatem') | Stop-SvcWithErrHandling; -('gupdate','gupdatem') | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"}; +$GoogleSvcs = ('gupdate','gupdatem'); +$GoogleSvcs | Stop-SvcWithErrHandling; +$GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"}; $regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update"; $regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome"; ($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object { - Write-Debug "Creation of [$_] registry key"; - try { - New-Item -Path $_ -Force; - } - catch { - Write-Warning "[!] Failed to create [$_] registry key"; - } + New-Item -Path $_ -Force; } -$regGoogleUpdateParameters = @( +$regGoogleParameters = @( @{ Name = "AutoUpdateCheckPeriodMinutes"; Value = 00000000}, @{ Name = "UpdateDefault"; Value = 00000000 }, - @{ Name = "DisableAutoUpdateChecksCheckboxValuet"; Value = 00000000 }, - @{ Name = "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}"; Value = 00000000 } + @{ Name = "DisableAutoUpdateChecksCheckboxValue"; Value = 00000001 }, + @{ Name = "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}"; Value = 00000000 }, + @{ Path = $regGoogleUpdateChrome; Name = "DefaultBrowserSettingEnabled"; Value = 00000000 } ) -$regGoogleUpdateParameters | ForEach-Object { +$regGoogleParameters | ForEach-Object { $Arguments = $_; - $Arguments.Add("Path", $regGoogleUpdatePath); + if (-not ($Arguments.Path)) { + $Arguments.Add("Path", $regGoogleUpdatePath); + } $Arguments.Add("Force", $true); - New-ItemWithErrHandling -Arguments $Arguments + New-ItemProperty @Arguments; } -$Arguments = @{ Path = $regGoogleUpdateChrome; Name = "DefaultBrowserSettingEnabled"; Value = 00000000; Force = $true }; -New-ItemWithErrHandling -Arguments $Arguments; diff --git a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 index 45e60d01e..93d9d1ade 100644 --- a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 +++ b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 @@ -3,40 +3,48 @@ ## Desc: Install Selenium Web Drivers ################################################################################ $DestinationPath = "C:\"; -Write-Debug "Destination path: [$DestinationPath]"; -Write-Debug "Selenium drivers download and install..."; -Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/SeleniumWebDrivers.zip" -OutFile SeleniumWebDrivers.zip; -Expand-Archive -Path SeleniumWebDrivers.zip -DestinationPath $DestinationPath -Force; -Remove-Item SeleniumWebDrivers.zip; +$DriversZipFile = "SeleniumWebDrivers.zip" +Write-Host "Destination path: [$DestinationPath]"; +Write-Host "Selenium drivers download and install..."; +try { + Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/${DriversZipFile}" -OutFile $DriversZipFile; +} +catch { + Write-Error "[!] Failed to download $DriverZipFile"; + exit 1; +} + +Expand-Archive -Path $DriversZipFile -DestinationPath $DestinationPath -Force; +Remove-Item $DriversZipFile; $ChromeDriverPath = "$DestinationPath\SeleniumWebDrivers\ChromeDriver"; -Write-Debug "Chrome driver path: [$ChromeDriverPath]"; +Write-Host "Chrome driver path: [$ChromeDriverPath]"; Remove-Item -Path "$ChromeDriverPath\*" -Force; $ChromePath = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe').'(default)'; [version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion; -Write-Debug "Chrome version: [$ChromeVersion]"; +Write-Host "Chrome version: [$ChromeVersion]"; $ChromeDriverVersionUri = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$($ChromeVersion.Major).$($ChromeVersion.Minor).$($ChromeVersion.Build)"; -Write-Debug "Chrome driver version Uri [$ChromeDriverVersionUri]"; -Write-Debug "Getting the Chrome driver version..."; +Write-Host "Chrome driver version Uri [$ChromeDriverVersionUri]"; +Write-Host "Getting the Chrome driver version..."; $ChromeDriverVersion = Invoke-WebRequest -Uri $ChromeDriverVersionUri; -Write-Debug "Current Chrome driver version: [$ChromeDriverVersion]"; +Write-Host "Current Chrome driver version: [$ChromeDriverVersion]"; $ChromeDriverZipDownloadUri = "https://chromedriver.storage.googleapis.com/$($ChromeDriverVersion.ToString())/chromedriver_win32.zip"; -Write-Debug "Chrome driver zip file download Uri: [$ChromeDriverZipDownloadUri]"; +Write-Host "Chrome driver zip file download Uri: [$ChromeDriverZipDownloadUri]"; $DestFile= "$ChromeDriverPath\chromedriver_win32.zip"; $ChromeDriverVersion.Content | Out-File -FilePath "$ChromeDriverPath\versioninfo.txt" -Force; -Write-Debug "Chrome driver download...."; +Write-Host "Chrome driver download...."; Invoke-WebRequest -Uri $ChromeDriverZipDownloadUri -OutFile $DestFile; -Write-Debug "Chrome driver install...."; +Write-Host "Chrome driver install...."; Expand-Archive -Path "$ChromeDriverPath\chromedriver_win32.zip" -DestinationPath $ChromeDriverPath -Force; Remove-Item -Path "$ChromeDriverPath\chromedriver_win32.zip" -Force; -Write-Debug "Setting the environment variables"; +Write-Host "Setting the environment variables"; setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M; setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M; From b5bfd51bdf852a1d3765f117887a7984d683a261 Mon Sep 17 00:00:00 2001 From: Ivan Nosar Date: Fri, 20 Dec 2019 15:33:40 +0300 Subject: [PATCH 10/54] Rename `Windows2016-Azure` to `vs2017-Server2016-Azure` --- .../win/{Windows2016-Azure.json => vs2017-Server2016-Azure.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename images/win/{Windows2016-Azure.json => vs2017-Server2016-Azure.json} (100%) diff --git a/images/win/Windows2016-Azure.json b/images/win/vs2017-Server2016-Azure.json similarity index 100% rename from images/win/Windows2016-Azure.json rename to images/win/vs2017-Server2016-Azure.json From fef47980696fd0fa4f0d013c18618544d27c4e38 Mon Sep 17 00:00:00 2001 From: Rammus Xu Date: Mon, 23 Dec 2019 18:11:55 +0800 Subject: [PATCH 11/54] Remove duplicate install curl on linux 18.04 --- images/linux/scripts/installers/1804/basic.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index fdb2ec572..616f77de7 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -115,9 +115,6 @@ apt-get install -y --no-install-recommends xorriso echo "Install zsync" apt-get install -y --no-install-recommends zsync -echo "Install curl" -apt-get install -y --no-install-recommends curl - # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" for cmd in curl file ftp jq netcat ssh rsync shellcheck sudo telnet time unzip wget zip; do From 7ad7e32149cedfcba23346157e52db73ef1d5883 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Mon, 23 Dec 2019 17:41:24 +0400 Subject: [PATCH 12/54] Functions [Stop-SvcWithErrHandling] and [Set-SvcWithErrHandling] have been moved to ImageHelpers.psm1 --- .../scripts/ImageHelpers/ImageHelpers.psm1 | 2 + .../scripts/ImageHelpers/InstallHelpers.ps1 | 79 +++++++++++++++++++ .../win/scripts/Installers/Install-Chrome.ps1 | 52 +----------- 3 files changed, 83 insertions(+), 50 deletions(-) diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 index 12df84e7a..6e091e7e7 100644 --- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 +++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 @@ -16,4 +16,6 @@ Export-ModuleMember -Function @( 'Install-EXE' 'Add-ContentToMarkdown' 'Add-SoftwareDetailsToMarkdown' + 'Stop-SvcWithErrHandling' + 'Set-SvcWithErrHandling' ) diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index 12bb373fc..788e60043 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -81,3 +81,82 @@ function Install-EXE return -1 } } + +function Stop-SvcWithErrHandling +<# +.DESCRIPTION +Function for stopping the Windows Service with error handling + +.AUTHOR +Andrey Mishechkin v-andmis@microsoft.com + +.PARAMETER -ServiceName +The name of stopping service + +.PARAMETER -StopOnError +Switch for stopping the script and exit from PowerShell if one service is absent +#> +{ + param ( + [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName, + [Parameter()] [switch] $StopOnError + ) + + Process { + $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue + if (-not $Service) { + Write-Warning "[!] Service [$ServiceName] is not found"; + if($StopOnError) { + exit 1; + } + } + else { + Write-Host "Try to stop service [$ServiceName]"; + try { + Stop-Service -Name $ServiceName -Force; + $Service.WaitForStatus("Stopped", "00:01:00"); + Write-Host "Service [$ServiceName] has been stopped successfuly"; + } + catch { + Write-Error "[!] Failed to stop service [$ServiceName] with error:" + $_ | Out-String | Write-Error; + } + } + } +} + +function Set-SvcWithErrHandling +<# +.DESCRIPTION +Function for setting the Windows Service parameter with error handling + +.AUTHOR +Andrey Mishechkin v-andmis@microsoft.com + +.PARAMETER -ServiceName +The name of stopping service + +.PARAMETER -Arguments +Hashtable for service arguments +#> +{ + + param ( + [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName, + [Parameter(Mandatory)] [hashtable] $Arguments + ) + + Process { + $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue + if (-not $Service) { + Write-Warning "[!] Service [$ServiceName] is not found"; + } + try { + Set-Service $ServiceName @Arguments; + } + catch { + Write-Error "[!] Failed to set service [$ServiceName] arguments with error:" + $_ | Out-String | Write-Error; + } + } +} diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1 index 1e4239b10..c730ac040 100644 --- a/images/win/scripts/Installers/Install-Chrome.ps1 +++ b/images/win/scripts/Installers/Install-Chrome.ps1 @@ -2,56 +2,8 @@ ## File: Install-Chrome.ps1 ## Desc: Install Google Chrome ################################################################################ -function Stop-SvcWithErrHandling -{ - param ( - [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName - ) - Process { - $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue - if (-not $Service) { - Write-Error "[!] Service [$ServiceName] is not found"; - exit 1; - } - else { - Write-Host "Try to stop service [$ServiceName]"; - try { - Stop-Service -Name $ServiceName -Force; - $Service.WaitForStatus("Stopped", "00:01:00"); - Write-Host "Service [$ServiceName] has been stopped successfuly"; - } - catch { - Write-Error "[!] Failed to stop service [$ServiceName] with error:" - $_ | Out-String | Write-Error; - } - } - } -} - -function Set-SvcWithErrHandling -{ - param ( - [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName, - [Parameter(Mandatory)] [hashtable] $Arguments - ) - - Process { - $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue - if (-not $Service) { - Write-Warning "[!] Service [$ServiceName] is not found"; - } - try { - Set-Service $ServiceName @Arguments; - } - catch { - Write-Error "[!] Failed to set service [$ServiceName] arguments with error:" - $_ | Out-String | Write-Error; - } - } -} - -Import-Module -Name ImageHelpers -Force; +Import-Module -Name "D:\GitHub\Akvelon\Forks\virtual-environments\images\win\scripts\ImageHelpers\ImageHelpers.psm1" -Force; $ChromeInstallerFile = "chrome_installer.exe"; $ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"; @@ -61,7 +13,7 @@ Write-Host "Adding the firewall rule for Google update blocking"; New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe"; $GoogleSvcs = ('gupdate','gupdatem'); -$GoogleSvcs | Stop-SvcWithErrHandling; +$GoogleSvcs | Stop-SvcWithErrHandling -StopOnError; $GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"}; $regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update"; From 80932d59cf1526a31fcf965832f5f92fc7e3851d Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Mon, 23 Dec 2019 18:46:01 +0400 Subject: [PATCH 13/54] Small modification - space after If --- images/win/scripts/ImageHelpers/InstallHelpers.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index 788e60043..56fac941e 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -106,7 +106,7 @@ Switch for stopping the script and exit from PowerShell if one service is absent $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue if (-not $Service) { Write-Warning "[!] Service [$ServiceName] is not found"; - if($StopOnError) { + if ($StopOnError) { exit 1; } } From 1afc2bffb48c3ae3e3508b0d9186d0c983dc57f9 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Mon, 23 Dec 2019 18:53:28 +0400 Subject: [PATCH 14/54] Path to ImageHelper has been fixed --- images/win/scripts/Installers/Install-Chrome.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1 index c730ac040..aac913e71 100644 --- a/images/win/scripts/Installers/Install-Chrome.ps1 +++ b/images/win/scripts/Installers/Install-Chrome.ps1 @@ -3,7 +3,7 @@ ## Desc: Install Google Chrome ################################################################################ -Import-Module -Name "D:\GitHub\Akvelon\Forks\virtual-environments\images\win\scripts\ImageHelpers\ImageHelpers.psm1" -Force; +Import-Module -Name ImageHelpers -Force; $ChromeInstallerFile = "chrome_installer.exe"; $ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"; From 72c8000241d2ba8598e64c7fa96428e1bfa8f31a Mon Sep 17 00:00:00 2001 From: Andrey Mishechkin Date: Tue, 24 Dec 2019 12:50:10 +0400 Subject: [PATCH 15/54] Windows2019-Azure.json -> vs2019-Server2019-Azure.json --- .../win/{Windows2019-Azure.json => vs2019-Server2019-Azure.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename images/win/{Windows2019-Azure.json => vs2019-Server2019-Azure.json} (100%) diff --git a/images/win/Windows2019-Azure.json b/images/win/vs2019-Server2019-Azure.json similarity index 100% rename from images/win/Windows2019-Azure.json rename to images/win/vs2019-Server2019-Azure.json From 263fd30c2754e016d54b18a43dda0a715379884d Mon Sep 17 00:00:00 2001 From: Andrey Mishechkin Date: Wed, 25 Dec 2019 22:17:56 +0400 Subject: [PATCH 16/54] [C:\SeleniumWebDrivers\ChromeDriver] has been added to [Path] env variable --- .../{vs2017-Server2016-Azure.json => Windows2016-Azure.json} | 0 .../{vs2019-Server2019-Azure.json => Windows2019-Azure.json} | 0 images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 | 5 +++++ 3 files changed, 5 insertions(+) rename images/win/{vs2017-Server2016-Azure.json => Windows2016-Azure.json} (100%) rename images/win/{vs2019-Server2019-Azure.json => Windows2019-Azure.json} (100%) diff --git a/images/win/vs2017-Server2016-Azure.json b/images/win/Windows2016-Azure.json similarity index 100% rename from images/win/vs2017-Server2016-Azure.json rename to images/win/Windows2016-Azure.json diff --git a/images/win/vs2019-Server2019-Azure.json b/images/win/Windows2019-Azure.json similarity index 100% rename from images/win/vs2019-Server2019-Azure.json rename to images/win/Windows2019-Azure.json diff --git a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 index 93d9d1ade..390e04111 100644 --- a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 +++ b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 @@ -50,5 +50,10 @@ setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M; setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M; setx ChromeWebDriver "C:\SeleniumWebDrivers\ChromeDriver" /M; +$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\'; +$PathValue = Get-ItemPropertyValue -Path $reg -Name 'Path'; +$PathValue += ";C:\SeleniumWebDrivers\ChromeDriver"; +Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue; + exit 0; From ce965c849cce4192d3f3438be449f47cfb38bc81 Mon Sep 17 00:00:00 2001 From: Andrey Mishechkin Date: Wed, 25 Dec 2019 22:38:26 +0400 Subject: [PATCH 17/54] Bug in $PathValue has been fixed --- images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 index 390e04111..0c7e70671 100644 --- a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 +++ b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 @@ -51,8 +51,8 @@ setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M; setx ChromeWebDriver "C:\SeleniumWebDrivers\ChromeDriver" /M; $regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\'; -$PathValue = Get-ItemPropertyValue -Path $reg -Name 'Path'; -$PathValue += ";C:\SeleniumWebDrivers\ChromeDriver"; +$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path'; +$PathValue += ";C:\SeleniumWebDrivers\ChromeDriver\"; Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue; exit 0; From 8c7390a9605ed49690bc0854ee8cc5cbdb655a63 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Thu, 26 Dec 2019 21:08:07 +0100 Subject: [PATCH 18/54] Don't bloat the PATH when installing git Especially the mingw folder conflicts with other mingw installs. I don't think installing git should put a compiler on the PATH, especially since the Windows virtual environment by default already has a separate chocolatey mingw installed (at least according to the documentation). I'm not sure why the \bin and \usr\bin paths are put on the PATH manually since that should already be done by chocolatey so I removed those as well. Any pointers on how I can actually test these changes would be appreciated. --- images/win/scripts/Installers/Install-Git.ps1 | 3 --- 1 file changed, 3 deletions(-) diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1 index f8d2a2e7c..65f9f67a0 100644 --- a/images/win/scripts/Installers/Install-Git.ps1 +++ b/images/win/scripts/Installers/Install-Git.ps1 @@ -12,7 +12,4 @@ choco install git -y --package-parameters="/GitAndUnixToolsOnPath /WindowsTermin # Disable GCM machine-wide [Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine) -Add-MachinePathItem "C:\Program Files\Git\mingw64\bin" -Add-MachinePathItem "C:\Program Files\Git\usr\bin" -Add-MachinePathItem "C:\Program Files\Git\bin" exit 0 From 4c30ace0cceabc2f5277e1dbcd88d9cbf9e1449d Mon Sep 17 00:00:00 2001 From: Maksim Petrov Date: Mon, 30 Dec 2019 11:40:10 +0300 Subject: [PATCH 19/54] Toolcache: Add NPM Toolcache support for Windows/Linux --- .../installers/1804/hosted-tool-cache.sh | 54 ------------- images/linux/scripts/installers/boost.sh | 7 -- .../{1604 => }/hosted-tool-cache.sh | 48 ++++++------ .../scripts/installers/test-toolcache.sh | 75 +++++++++++++++---- images/linux/toolcache-1604.json | 14 ++++ images/linux/toolcache-1804.json | 14 ++++ images/linux/ubuntu1604.json | 14 +++- images/linux/ubuntu1804.json | 14 +++- images/win/Windows2016-Azure.json | 40 ++++++---- images/win/Windows2019-Azure.json | 40 ++++++---- .../scripts/Installers/Download-ToolCache.ps1 | 71 ++++++++++-------- .../win/scripts/Installers/Install-Boost.ps1 | 27 +------ .../scripts/Installers/Validate-ToolCache.ps1 | 72 +++++++++++++----- images/win/toolcache.json | 17 +++++ 14 files changed, 300 insertions(+), 207 deletions(-) delete mode 100644 images/linux/scripts/installers/1804/hosted-tool-cache.sh rename images/linux/scripts/installers/{1604 => }/hosted-tool-cache.sh (51%) create mode 100644 images/linux/toolcache-1604.json create mode 100644 images/linux/toolcache-1804.json create mode 100644 images/win/toolcache.json diff --git a/images/linux/scripts/installers/1804/hosted-tool-cache.sh b/images/linux/scripts/installers/1804/hosted-tool-cache.sh deleted file mode 100644 index 10180a240..000000000 --- a/images/linux/scripts/installers/1804/hosted-tool-cache.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -################################################################################ -## File: hosted-tool-cache.sh -## Desc: Downloads and installs hosted tools cache -################################################################################ - -# Source the helpers for use with the script -source $HELPER_SCRIPTS/document.sh - -# Fail out if any setups fail -set -e - -# Download hosted tool cache -AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache -echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment -azcopy --recursive \ - --source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/ubuntu-1804 \ - --destination $AGENT_TOOLSDIRECTORY - -# Install tools from hosted tool cache -original_directory=$PWD -setups=$(find $AGENT_TOOLSDIRECTORY -name setup.sh) -for setup in $setups; do - chmod +x $setup; - cd $(dirname $setup); - ./$(basename $setup); - cd $original_directory; -done; - -DocumentInstalledItem "Python:" -pythons=$(ls $AGENT_TOOLSDIRECTORY/Python) -for python in $pythons; do - DocumentInstalledItemIndent "Python $python" -done; - -# PyPy is also configured using the setup-python action -pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy) -for pypy in $pypys; do - DocumentInstalledItemIndent "PyPy $pypy" - # Add symlinks for pypy2 and pypy3 to usr/local/bin, there should only be 2 versions of PyPy in the tools cache that is downloaded - if [ ${pypy:0:1} -eq "3" ] ; then - # add pypy 3.X to PATH - ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy3 /usr/local/bin/pypy3 - else - # add pypy 2.X to PATH - ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy /usr/local/bin/pypy - fi -done; - -DocumentInstalledItem "Ruby:" -rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby) -for ruby in $rubys; do - DocumentInstalledItemIndent "Ruby $ruby" -done; \ No newline at end of file diff --git a/images/linux/scripts/installers/boost.sh b/images/linux/scripts/installers/boost.sh index 3b7d6b043..673b1f61e 100644 --- a/images/linux/scripts/installers/boost.sh +++ b/images/linux/scripts/installers/boost.sh @@ -7,7 +7,6 @@ # Source the helpers for use with the script source $HELPER_SCRIPTS/document.sh -BOOST_ZIP_PATH=/opt/hostedtoolcache/Boost BOOST_LIB=/usr/local/share/boost # Install Boost @@ -15,9 +14,6 @@ for BOOST_VERSION in ${BOOST_VERSIONS//,/ } do BOOST_SYMLINK_VER=`echo "${BOOST_VERSION//[.]/_}"` BOOST_ROOT="BOOST_ROOT_$BOOST_SYMLINK_VER" - BOOST_ZIP="boost_`echo $BOOST_VERSION`_gcc.zip" - - unzip $BOOST_ZIP_PATH/$BOOST_ZIP -d $BOOST_LIB echo "$BOOST_ROOT=$BOOST_LIB/$BOOST_VERSION" | tee -a /etc/environment if [[ $BOOST_VERSION == $BOOST_DEFAULT ]]; then @@ -26,6 +22,3 @@ do DocumentInstalledItem "Boost C++ Libraries $BOOST_VERSION" done - -# Deleting archives with Boost Libraries -rm -rf $BOOST_ZIP_PATH diff --git a/images/linux/scripts/installers/1604/hosted-tool-cache.sh b/images/linux/scripts/installers/hosted-tool-cache.sh similarity index 51% rename from images/linux/scripts/installers/1604/hosted-tool-cache.sh rename to images/linux/scripts/installers/hosted-tool-cache.sh index c68f9747e..66ab532ea 100644 --- a/images/linux/scripts/installers/1604/hosted-tool-cache.sh +++ b/images/linux/scripts/installers/hosted-tool-cache.sh @@ -10,21 +10,23 @@ source $HELPER_SCRIPTS/document.sh # Fail out if any setups fail set -e -# Download hosted tool cache AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache +mkdir $AGENT_TOOLSDIRECTORY echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment -azcopy --recursive \ - --source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/linux \ - --destination $AGENT_TOOLSDIRECTORY -# Install tools from hosted tool cache -original_directory=$PWD -setups=$(find $AGENT_TOOLSDIRECTORY -name setup.sh) -for setup in $setups; do - chmod +x $setup; - cd $(dirname $setup); - ./$(basename $setup); - cd $original_directory; +chmod -R 777 $AGENT_TOOLSDIRECTORY + +echo "Installing npm-toolcache..." +TOOLSET_PATH="$INSTALLER_SCRIPT_FOLDER/toolcache.json" + +PACKAGE_LIST=($(jq -r 'keys | .[]' $TOOLSET_PATH)) + +for PACKAGE_NAME in ${PACKAGE_LIST[@]}; do + PACKAGE_VERSIONS=($(jq -r ".[\"$PACKAGE_NAME\"] | .[]" $TOOLSET_PATH)) + for PACKAGE_VERSION in ${PACKAGE_VERSIONS[@]}; do + echo "Install ${PACKAGE_NAME}@${PACKAGE_VERSION}" + npm install ${PACKAGE_NAME}@${PACKAGE_VERSION} --registry=${TOOLCACHE_REGISTRY} + done; done; DocumentInstalledItem "Python:" @@ -33,22 +35,14 @@ for python in $pythons; do DocumentInstalledItemIndent "Python $python" done; -# PyPy is also configured using the setup-python action -pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy) -for pypy in $pypys; do - DocumentInstalledItemIndent "PyPy $pypy" - # Add symlinks for pypy2 and pypy3 to usr/local/bin, there should only be 2 versions of PyPy in the tools cache that is downloaded - if [ ${pypy:0:1} -eq "3" ] ; then - # add pypy 3.X to PATH - ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy3 /usr/local/bin/pypy3 - else - # add pypy 2.X to PATH - ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy /usr/local/bin/pypy - fi -done; - DocumentInstalledItem "Ruby:" rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby) for ruby in $rubys; do DocumentInstalledItemIndent "Ruby $ruby" -done; \ No newline at end of file +done; + +DocumentInstalledItem "PyPy:" +pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy) +for pypy in $pypys; do + DocumentInstalledItemIndent "PyPy $pypy" +done; diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh index af2dd359f..785218b3e 100644 --- a/images/linux/scripts/installers/test-toolcache.sh +++ b/images/linux/scripts/installers/test-toolcache.sh @@ -9,6 +9,22 @@ # Fail out if any tests fail set -e +# defune array of key aliases +key_alias_array=() +bash --version +# define dicionary for key_alias and its values +declare -A toolcache_key_value +PACKAGE_LIST=($(jq -r 'keys | .[]' "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) +for PACKAGE_NAME in ${PACKAGE_LIST[@]}; do + + # get key alias + key_alias=$(echo $PACKAGE_NAME | cut -f2 -d-) + echo $key_alias + + # set dictionary + toolcache_key_value+=(["$key_alias"]="$PACKAGE_NAME") +done; + AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache # Python test @@ -18,19 +34,19 @@ if [ -d "$AGENT_TOOLSDIRECTORY/Python" ]; then echo "Python versions folders: ${python_dirs[@]}" echo "------------------------------------------" if [ -n "$python_dirs" ]; then - for version_dir in "${python_dirs[@]}" + PACKAGE_VERSIONS=($(jq -r ".[\"${toolcache_key_value[python]}\"] | .[]" "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) + for python_version in ${PACKAGE_VERSIONS[@]} do + version_dir=$(find . -name "$python_version.*" -print -quit) echo "Test $AGENT_TOOLSDIRECTORY/Python/$version_dir:" - expected_ver=$(echo $version_dir | egrep -o '[0-9]+\.[0-9]+') actual_ver=$($AGENT_TOOLSDIRECTORY/Python/$version_dir/x64/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+') - - if [ "$expected_ver" = "$actual_ver" ]; then + if [ "$actual_ver" = "$python_version" ]; then echo "Passed!" else - echo "Expected: $expected_ver; Actual: $actual_ver" + echo "Expected: $python_version; Actual: $actual_ver" exit 1 fi - done + done; else echo "$AGENT_TOOLSDIRECTORY/Python does not include any folders" exit 1 @@ -47,19 +63,19 @@ if [ -d "$AGENT_TOOLSDIRECTORY/Ruby" ]; then echo "Ruby versions folders: ${ruby_dirs[@]}" echo "--------------------------------------" if [ -n "$ruby_dirs" ]; then - for version_dir in "${ruby_dirs[@]}" + PACKAGE_VERSIONS=($(jq -r ".[\"${toolcache_key_value[ruby]}\"] | .[]" "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) + for ruby_version in ${PACKAGE_VERSIONS[@]} do + version_dir=$(find . -name "$ruby_version.*" -print -quit) echo "Test $AGENT_TOOLSDIRECTORY/Ruby/$version_dir:" - expected_ver=$(echo $version_dir | egrep -o '[0-9]+\.[0-9]+') actual_ver=$($AGENT_TOOLSDIRECTORY/Ruby/$version_dir/x64/bin/ruby -e "puts RUBY_VERSION" | egrep -o '[0-9]+\.[0-9]+') - - if [ "$expected_ver" = "$actual_ver" ]; then - echo "Passed!" + if [ "$actual_ver" = "$ruby_version" ]; then + echo "Passed!" else - echo "Expected: $expected_ver; Actual: $actual_ver" - exit 1 + echo "Expected: $ruby_version; Actual: $actual_ver" + exit 1 fi - done + done; else echo "$AGENT_TOOLSDIRECTORY/Ruby does not include any folders" exit 1 @@ -68,3 +84,34 @@ else echo "$AGENT_TOOLSDIRECTORY/Ruby does not exist" exit 1 fi + +# PyPy tests +if [ -d "$AGENT_TOOLSDIRECTORY/PyPy" ]; then + cd $AGENT_TOOLSDIRECTORY/PyPy + pypy_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||")) + echo "PyPy versions folders: ${pypy_dirs[@]}" + echo "------------------------------------------" + if [ -n "$pypy_dirs" ]; then + PACKAGE_VERSIONS=($(jq -r ".[\"${toolcache_key_value[pypy]}\"] | .[]" "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) + for pypy_version in ${PACKAGE_VERSIONS[@]} + do + version_dir=$(find . -name "$pypy_version.*" -print -quit) + pypy_path=$(find . -regex "$version_dir/x64/bin/pypy[0-9]*" -print -quit) + echo $pypy_path + actual_ver=$($pypy_path -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+' | cut -d '.' -f 1) + echo "actual_ver = $actual_ver : pypy_version = $pypy_version" + if [ "$actual_ver" = "$pypy_version" ]; then + echo "Passed!" + else + echo "Expected: $pypy_version; Actual: $actual_ver" + exit 1 + fi + done; + else + echo "$AGENT_TOOLSDIRECTORY/PyPy does not include any folders" + exit 1 + fi +else + echo "$AGENT_TOOLSDIRECTORY/PyPy does not exist" + exit 1 +fi \ No newline at end of file diff --git a/images/linux/toolcache-1604.json b/images/linux/toolcache-1604.json new file mode 100644 index 000000000..2674d57af --- /dev/null +++ b/images/linux/toolcache-1604.json @@ -0,0 +1,14 @@ +{ + "toolcache-python-ubuntu-1604-x64": [ + "2.7", "3.5", "3.6", "3.7", "3.8" + ], + "toolcache-ruby-ubuntu-1604-x64": [ + "2.4", "2.5", "2.6" + ], + "toolcache-pypy-ubuntu-1604-x64": [ + "2", "3" + ], + "toolcache-boost-ubuntu-1604-x64": [ + "1.69" + ] +} \ No newline at end of file diff --git a/images/linux/toolcache-1804.json b/images/linux/toolcache-1804.json new file mode 100644 index 000000000..ca75563cd --- /dev/null +++ b/images/linux/toolcache-1804.json @@ -0,0 +1,14 @@ +{ + "toolcache-python-ubuntu-1804-x64": [ + "2.7", "3.5", "3.6", "3.7", "3.8" + ], + "toolcache-ruby-ubuntu-1804-x64": [ + "2.4", "2.5", "2.6" + ], + "toolcache-pypy-ubuntu-1804-x64": [ + "2", "3" + ], + "toolcache-boost-ubuntu-1804-x64": [ + "1.69" + ] +} \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index a1e9d27fa..650f3daec 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -20,7 +20,8 @@ "helper_script_folder": "/imagegeneration/helpers", "vm_size": "Standard_DS2_v2", "capture_name_prefix": "packer", - "image_version": "dev" + "image_version": "dev", + "toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/" }, "builders": [ { @@ -167,19 +168,26 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "file", + "source": "{{template_dir}}/toolcache-1604.json", + "destination": "{{user `installer_script_folder`}}/toolcache.json" + }, { "type": "shell", "scripts":[ "{{template_dir}}/scripts/installers/1604/android.sh", "{{template_dir}}/scripts/installers/1604/azpowershell.sh", "{{template_dir}}/scripts/helpers/containercache.sh", - "{{template_dir}}/scripts/installers/1604/hosted-tool-cache.sh", + "{{template_dir}}/scripts/installers/hosted-tool-cache.sh", "{{template_dir}}/scripts/installers/python.sh", "{{template_dir}}/scripts/installers/test-toolcache.sh" ], "environment_vars": [ "METADATA_FILE={{user `metadata_file`}}", - "HELPER_SCRIPTS={{user `helper_script_folder`}}" + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "TOOLCACHE_REGISTRY={{user `toolcache_registry`}}", + "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 2c10a6822..5c59b4833 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -20,7 +20,8 @@ "helper_script_folder": "/imagegeneration/helpers", "vm_size": "Standard_DS2_v2", "capture_name_prefix": "packer", - "image_version": "dev" + "image_version": "dev", + "toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/" }, "builders": [ { @@ -170,19 +171,26 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "file", + "source": "{{template_dir}}/toolcache-1804.json", + "destination": "{{user `installer_script_folder`}}/toolcache.json" + }, { "type": "shell", "scripts":[ "{{template_dir}}/scripts/installers/1804/android.sh", "{{template_dir}}/scripts/installers/1804/azpowershell.sh", "{{template_dir}}/scripts/helpers/containercache.sh", - "{{template_dir}}/scripts/installers/1804/hosted-tool-cache.sh", + "{{template_dir}}/scripts/installers/hosted-tool-cache.sh", "{{template_dir}}/scripts/installers/python.sh", "{{template_dir}}/scripts/installers/test-toolcache.sh" ], "environment_vars": [ "METADATA_FILE={{user `metadata_file`}}", - "HELPER_SCRIPTS={{user `helper_script_folder`}}" + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "TOOLCACHE_REGISTRY={{user `toolcache_registry`}}", + "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index c51dcdfe5..8c93fad94 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -16,6 +16,7 @@ "private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}", "vm_size": "Standard_DS4_v2", + "root_folder": "C:", "image_folder": "C:\\image", "commit_file": "C:\\image\\commit.txt", "metadata_file": "C:\\image\\metadata.txt", @@ -24,7 +25,8 @@ "install_user": "installer", "install_password": null, "capture_name_prefix": "packer", - "image_version": "dev" + "image_version": "dev", + "toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/" }, "builders": [ { @@ -268,6 +270,27 @@ }, { "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1" + ] + }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-7zip.ps1" + ] + }, + { + "type": "file", + "source": "{{template_dir}}/toolcache.json", + "destination": "{{user `root_folder`}}/toolcache.json" + }, + { + "type": "powershell", + "environment_vars":[ + "TOOLCACHE_REGISTRY={{ user `toolcache_registry` }}", + "ROOT_FOLDER={{user `root_folder`}}" + ], "scripts":[ "{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1" ] @@ -362,12 +385,6 @@ "{{ template_dir }}/scripts/Installers/Validate-WinAppDriver.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -450,12 +467,6 @@ "{{ template_dir }}/scripts/Installers/Install-AzureCosmosDbEmulator.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-7zip.ps1" - ] - }, { "type": "powershell", "environment_vars": [ @@ -562,6 +573,9 @@ }, { "type": "powershell", + "environment_vars":[ + "ROOT_FOLDER={{user `root_folder`}}" + ], "scripts":[ "{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1" ] diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 6875b7f07..5251a965b 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -16,6 +16,7 @@ "private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}", "vm_size": "Standard_DS4_v2", + "root_folder": "C:", "image_folder": "C:\\image", "commit_file": "C:\\image\\commit.txt", "metadata_file": "C:\\image\\metadata.txt", @@ -24,7 +25,8 @@ "install_user": "installer", "install_password": null, "capture_name_prefix": "packer", - "image_version": "dev" + "image_version": "dev", + "toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/" }, "sensitive-variables": ["install_password", "ssh_password", "client_secret"], "builders": [ @@ -238,6 +240,27 @@ }, { "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1" + ] + }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-7zip.ps1" + ] + }, + { + "type": "file", + "source": "{{template_dir}}/toolcache.json", + "destination": "{{user `root_folder`}}/toolcache.json" + }, + { + "type": "powershell", + "environment_vars":[ + "TOOLCACHE_REGISTRY={{ user `toolcache_registry` }}", + "ROOT_FOLDER={{user `root_folder`}}" + ], "scripts":[ "{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1" ] @@ -332,12 +355,6 @@ "{{ template_dir }}/scripts/Installers/Validate-WinAppDriver.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -420,12 +437,6 @@ "{{ template_dir }}/scripts/Installers/Install-AzureCosmosDbEmulator.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-7zip.ps1" - ] - }, { "type": "powershell", "environment_vars": [ @@ -532,6 +543,9 @@ }, { "type": "powershell", + "environment_vars":[ + "ROOT_FOLDER={{user `root_folder`}}" + ], "scripts":[ "{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1" ] diff --git a/images/win/scripts/Installers/Download-ToolCache.ps1 b/images/win/scripts/Installers/Download-ToolCache.ps1 index b7a49a285..967046d09 100644 --- a/images/win/scripts/Installers/Download-ToolCache.ps1 +++ b/images/win/scripts/Installers/Download-ToolCache.ps1 @@ -1,51 +1,62 @@ ################################################################################ ## File: Download-ToolCache.ps1 +## Team: CI-Build ## Desc: Download tool cache ################################################################################ -Function InstallTool -{ - Param - ( - [System.Object]$ExecutablePath +Function Install-NpmPackage { + [CmdletBinding()] + param( + [Parameter(Mandatory=$true)] + [System.String] + $Name, + [Parameter(Mandatory=$true)] + [System.String] + $NpmRegistry ) - Write-Host $ExecutablePath.DirectoryName - Set-Location -Path $ExecutablePath.DirectoryName - Get-Location | Write-Host - if (Test-Path 'tool.zip') - { + Write-Host "Installing npm '$Name' package from '$NpmRegistry'" + + npm install $Name --registry=$NpmRegistry +} + +Function InstallTool { + [CmdletBinding()] + param( + [System.IO.FileInfo]$ExecutablePath + ) + + Set-Location -Path $ExecutablePath.DirectoryName -PassThru | Write-Host + if (Test-Path 'tool.zip') { Expand-Archive 'tool.zip' -DestinationPath '.' } cmd.exe /c 'install_to_tools_cache.bat' } -$SourceUrl = "https://vstsagenttools.blob.core.windows.net/tools" - +# HostedToolCache Path $Dest = "C:/" - $Path = "hostedtoolcache/windows" - -$env:Path = "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy;" + $env:Path - -Write-Host "Started AzCopy from $SourceUrl to $Dest" - -AzCopy /Source:$SourceUrl /Dest:$Dest /S /V /Pattern:$Path - $ToolsDirectory = $Dest + $Path -$current = Get-Location -Set-Location -Path $ToolsDirectory - -Get-ChildItem -Recurse -Depth 4 -Filter install_to_tools_cache.bat | ForEach-Object { - #In order to work correctly Python 3.4 x86 must be installed after x64, this is achieved by current toolcache catalog structure - InstallTool($_) -} - -Set-Location -Path $current - +# Define AGENT_TOOLSDIRECTORY environment variable +$env:AGENT_TOOLSDIRECTORY = $ToolsDirectory setx AGENT_TOOLSDIRECTORY $ToolsDirectory /M +# Install tools form NPM + +$ToolVersionsFileContent = Get-Content -Path "$env:ROOT_FOLDER/toolcache.json" -Raw +$ToolVersions = ConvertFrom-Json -InputObject $ToolVersionsFileContent + +$ToolVersions.PSObject.Properties | ForEach-Object { + $PackageName = $_.Name + $PackageVersions = $_.Value + $NpmPackages = $PackageVersions | ForEach-Object { "$PackageName@$_" } + foreach($NpmPackage in $NpmPackages) { + Install-NpmPackage -Name $NpmPackage -NpmRegistry $env:TOOLCACHE_REGISTRY + } +} + #junction point from the previous Python2 directory to the toolcache Python2 +Write-Host "Create symlink to Python2" $python2Dir = (Get-Item -Path ($ToolsDirectory + '/Python/2.7*/x64')).FullName cmd.exe /c mklink /d "C:\Python27amd64" "$python2Dir" diff --git a/images/win/scripts/Installers/Install-Boost.ps1 b/images/win/scripts/Installers/Install-Boost.ps1 index a076a47af..281363336 100644 --- a/images/win/scripts/Installers/Install-Boost.ps1 +++ b/images/win/scripts/Installers/Install-Boost.ps1 @@ -1,28 +1,16 @@ ################################################################################ -## File: Install-Boost.ps1 +## File: Set-BoostRoot.ps1 +## Team: CI-Build ## Desc: Install boost using tool cache ################################################################################ -$ToolCache = 'C:\hostedtoolcache\windows\boost' $BoostDirectory = Join-Path -Path $env:ProgramFiles -ChildPath "Boost" -$BoostVersionsToInstall = $env:BOOST_VERSIONS.split(',') +$BoostVersions = $env:BOOST_VERSIONS.split(',') $BoostDefault = $env:BOOST_DEFAULT -foreach($BoostVersion in $BoostVersionsToInstall) +foreach($BoostVersion in $BoostVersions) { - $ZipName = Join-Path -Path $ToolCache -ChildPath "boost_${BoostVersion}_msvc-14.1.zip" - - if (-Not (Test-Path $ZipName)) - { - Write-Host "$ZipName not found" - exit 1 - } - - Write-Host "Expanding $ZipName" - $BoostInstallationDir = Join-Path -Path $BoostDirectory -ChildPath $BoostVersion - # Expand-Archive slower for 70% than 7z - & "$env:ProgramFiles\7-Zip\7z.exe" x $ZipName -o"$BoostDirectory" -y $EnvBoostPath = "BOOST_ROOT_{0}" -f ($BoostVersion.Replace('.', '_')) setx $EnvBoostPath $BoostInstallationDir /M | Out-Null @@ -36,10 +24,3 @@ foreach($BoostVersion in $BoostVersionsToInstall) setx BOOST_ROOT $BoostInstallationDir /M | Out-Null } } - -# Removing boost cache folder -Write-Host "Removing boost cache folder" -if (Test-Path $ToolCache) -{ - Remove-Item -Path $ToolCache -Force -Recurse -} diff --git a/images/win/scripts/Installers/Validate-ToolCache.ps1 b/images/win/scripts/Installers/Validate-ToolCache.ps1 index 832cf13c3..df61f6f6c 100644 --- a/images/win/scripts/Installers/Validate-ToolCache.ps1 +++ b/images/win/scripts/Installers/Validate-ToolCache.ps1 @@ -12,6 +12,21 @@ function GetChildFolders { return Get-ChildItem -Path $Path -Directory -Name } +function Get-ToolcachePackages { + $toolcachePath = Join-Path $env:ROOT_FOLDER "toolcache.json" + return Get-Content -Raw $toolcachePath | ConvertFrom-Json +} + +$packages = (Get-ToolcachePackages).PSObject.Properties | ForEach-Object { + $packageNameParts = $_.Name.Split("-") + $toolName = $packageNameParts[1] + return [PSCustomObject] @{ + ToolName = $packageNameParts[1] + Versions = $_.Value + Arch = $packageNameParts[3] + } +} + function ToolcacheTest { param ( [Parameter(Mandatory = $True)] @@ -22,36 +37,53 @@ function ToolcacheTest { if (Test-Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName") { $description = "" - [array]$versions = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName" - if ($versions.count -gt 0){ - foreach ($version in $versions) + [array]$instaledVersions = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName" + if ($instaledVersions.count -gt 0){ + $softwarePackages = $packages | Where-Object { $_.ToolName -eq $SoftwareName } + foreach($softwarePackage in $softwarePackages) { - $architectures = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version" - - Write-Host "$SoftwareName version - $version : $([system.String]::Join(",", $architectures))" - - foreach ($arch in $architectures) + foreach ($version in $softwarePackage.Versions) { - $path = "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version\$arch" - foreach ($test in $ExecTests) - { - if (Test-Path "$path\$test") - { - Write-Host "$SoftwareName($test) $version($arch) is successfully installed:" - Write-Host (& "$path\$test" --version) + $foundVersion = $instaledVersions | where { $_.StartsWith($version) } + + if ($foundVersion -ne $null){ + + $architectures = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$foundVersion" + + $softwareArch = $softwarePackage.Arch + + if ($architectures -Contains $softwareArch) { + $path = "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$foundVersion\$softwareArch" + foreach ($test in $ExecTests) + { + if (Test-Path "$path\$test") + { + Write-Host "$SoftwareName($test) $foundVersion($softwareArch) is successfully installed:" + Write-Host (& "$path\$test" --version) + } + else + { + Write-Host "$SoftwareName($test) $foundVersion ($softwareArch) is not installed" + exit 1 + } + } + $description += "_Version:_ $foundVersion ($softwareArch)
" } else { - Write-Host "$SoftwareName($test) $version ($arch) is not installed" + Write-Host "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$foundVersion does not include required architecture" exit 1 } } - - $description += "_Version:_ $version ($arch)
" + else + { + Write-Host "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version.* was not found" + exit 1 + } } - } - Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $description + Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $description + } } else { diff --git a/images/win/toolcache.json b/images/win/toolcache.json new file mode 100644 index 000000000..69434da3a --- /dev/null +++ b/images/win/toolcache.json @@ -0,0 +1,17 @@ +{ + "toolcache-python-windows-x64": [ + "2.7", "3.5", "3.6", "3.7", "3.8" + ], + "toolcache-python-windows-x86": [ + "2.7", "3.5", "3.6", "3.7", "3.8" + ], + "toolcache-ruby-windows-x64": [ + "2.4", "2.5", "2.6" + ], + "toolcache-pypy-windows-x86": [ + "2", "3" + ], + "toolcache-boost-windows-x64": [ + "1.69" + ] +} \ No newline at end of file From 6aa21f425e3682f83779027b52af37b0d12524e6 Mon Sep 17 00:00:00 2001 From: Maksim Petrov Date: Mon, 30 Dec 2019 14:44:06 +0300 Subject: [PATCH 20/54] Toolcache: remove InstallTool function from Download-ToolCache.ps1 --- .../win/scripts/Installers/Download-ToolCache.ps1 | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/images/win/scripts/Installers/Download-ToolCache.ps1 b/images/win/scripts/Installers/Download-ToolCache.ps1 index 967046d09..eef9f7d96 100644 --- a/images/win/scripts/Installers/Download-ToolCache.ps1 +++ b/images/win/scripts/Installers/Download-ToolCache.ps1 @@ -20,19 +20,6 @@ Function Install-NpmPackage { npm install $Name --registry=$NpmRegistry } -Function InstallTool { - [CmdletBinding()] - param( - [System.IO.FileInfo]$ExecutablePath - ) - - Set-Location -Path $ExecutablePath.DirectoryName -PassThru | Write-Host - if (Test-Path 'tool.zip') { - Expand-Archive 'tool.zip' -DestinationPath '.' - } - cmd.exe /c 'install_to_tools_cache.bat' -} - # HostedToolCache Path $Dest = "C:/" $Path = "hostedtoolcache/windows" From d1ed5029b5e3fb2ba27662dd1751b5968155e86b Mon Sep 17 00:00:00 2001 From: Maksim Petrov Date: Mon, 30 Dec 2019 14:51:09 +0300 Subject: [PATCH 21/54] Toolcache: fix typos in windows toolcache provisioners --- images/win/scripts/Installers/Download-ToolCache.ps1 | 3 +-- images/win/scripts/Installers/Validate-ToolCache.ps1 | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/images/win/scripts/Installers/Download-ToolCache.ps1 b/images/win/scripts/Installers/Download-ToolCache.ps1 index eef9f7d96..b031a827e 100644 --- a/images/win/scripts/Installers/Download-ToolCache.ps1 +++ b/images/win/scripts/Installers/Download-ToolCache.ps1 @@ -29,8 +29,7 @@ $ToolsDirectory = $Dest + $Path $env:AGENT_TOOLSDIRECTORY = $ToolsDirectory setx AGENT_TOOLSDIRECTORY $ToolsDirectory /M -# Install tools form NPM - +# Install HostedToolCache tools via NPM $ToolVersionsFileContent = Get-Content -Path "$env:ROOT_FOLDER/toolcache.json" -Raw $ToolVersions = ConvertFrom-Json -InputObject $ToolVersionsFileContent diff --git a/images/win/scripts/Installers/Validate-ToolCache.ps1 b/images/win/scripts/Installers/Validate-ToolCache.ps1 index df61f6f6c..cde063511 100644 --- a/images/win/scripts/Installers/Validate-ToolCache.ps1 +++ b/images/win/scripts/Installers/Validate-ToolCache.ps1 @@ -37,14 +37,14 @@ function ToolcacheTest { if (Test-Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName") { $description = "" - [array]$instaledVersions = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName" - if ($instaledVersions.count -gt 0){ + [array]$installedVersions = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName" + if ($installedVersions.count -gt 0){ $softwarePackages = $packages | Where-Object { $_.ToolName -eq $SoftwareName } foreach($softwarePackage in $softwarePackages) { foreach ($version in $softwarePackage.Versions) { - $foundVersion = $instaledVersions | where { $_.StartsWith($version) } + $foundVersion = $installedVersions | where { $_.StartsWith($version) } if ($foundVersion -ne $null){ From 1f4d54a801c6bef7a418b8efc66122450ea4896a Mon Sep 17 00:00:00 2001 From: Maksim Petrov Date: Mon, 30 Dec 2019 15:59:47 +0300 Subject: [PATCH 22/54] Toolcache: fix typo in comment for test-toolcache.sh --- images/linux/scripts/installers/test-toolcache.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh index 785218b3e..203a5afe3 100644 --- a/images/linux/scripts/installers/test-toolcache.sh +++ b/images/linux/scripts/installers/test-toolcache.sh @@ -9,7 +9,7 @@ # Fail out if any tests fail set -e -# defune array of key aliases +# define array of key aliases key_alias_array=() bash --version # define dicionary for key_alias and its values From d98bb53cf6015cd6581cc13e83dbfed480f06c53 Mon Sep 17 00:00:00 2001 From: Maksim Petrov Date: Mon, 6 Jan 2020 14:53:39 +0300 Subject: [PATCH 23/54] Toolcache: fix typo in test-toolcache comment --- images/linux/scripts/installers/test-toolcache.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh index 203a5afe3..0a64882a2 100644 --- a/images/linux/scripts/installers/test-toolcache.sh +++ b/images/linux/scripts/installers/test-toolcache.sh @@ -12,7 +12,7 @@ set -e # define array of key aliases key_alias_array=() bash --version -# define dicionary for key_alias and its values +# define dictionary for key_alias and its values declare -A toolcache_key_value PACKAGE_LIST=($(jq -r 'keys | .[]' "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) for PACKAGE_NAME in ${PACKAGE_LIST[@]}; do From f72d0ae63c38dc05043b7be0e61943ccb21015be Mon Sep 17 00:00:00 2001 From: Andrey Mishechkin Date: Tue, 7 Jan 2020 16:04:14 +0400 Subject: [PATCH 24/54] Hardcoded 'C:\' has been replaced to '$($env:SystemDrive)\' --- images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 index 0c7e70671..1ea4fa84d 100644 --- a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 +++ b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 @@ -2,7 +2,7 @@ ## File: Install-SeleniumWebDrivers.ps1 ## Desc: Install Selenium Web Drivers ################################################################################ -$DestinationPath = "C:\"; +$DestinationPath = "$($env:SystemDrive)\"; $DriversZipFile = "SeleniumWebDrivers.zip" Write-Host "Destination path: [$DestinationPath]"; Write-Host "Selenium drivers download and install..."; From 63451abf55f3d1a6972677e4d45ab7cfc6531f34 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev Date: Wed, 8 Jan 2020 15:08:55 +0300 Subject: [PATCH 25/54] software updates week2 --- images/macos/macos-10.15-Readme.md | 81 ++++++++++++++---------------- 1 file changed, 39 insertions(+), 42 deletions(-) diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md index ae1301244..08577d0b8 100644 --- a/images/macos/macos-10.15-Readme.md +++ b/images/macos/macos-10.15-Readme.md @@ -1,14 +1,14 @@ --- title: GitHub Hosted Github Mojave 10.15 VM Image Updates description: Software used on build machines -date: Week 51 +date: Week 2 --- -#### Xcode 11.1 set by default +#### Xcode 11.2.1 set by default ## Operating System -- OS X 10.15.1 (19B88) **Catalina** +- OS X 10.15.2 (19C57) **Catalina** ## Installed Software @@ -19,29 +19,29 @@ date: Week 51 - Java 11 : OpenJDK Runtime Environment Zulu11.35+15-CA (build 11.0.5+10-LTS) - Java 12 : OpenJDK Runtime Environment Zulu12.3+11-CA (build 12.0.2+3) - Java 13 : OpenJDK Runtime Environment Zulu13.28+11-CA (build 13.0.1+10-MTS) -- Node.js v12.13.1 +- Node.js v12.14.0 - NVM 0.33.11 - NVM - Installed node versions: v6.17.1 * - v8.16.2 * - v10.17.0 * - v12.13.1 * - v13.3.0 * + v8.17.0 * + v10.18.0 * + v12.14.0 * + v13.5.0 * - PowerShell 6.2.3 - Python 2.7.17 -- Python 3.7.5 +- Python 3.7.6 - Ruby -2.6.5p114 - .NET SDK 2.0.0 3.0.100 3.0.101 -- Go 1.13.4 +- Go 1.13.5 ### Package Management -- Bundler 2.0.2 +- Bundler 2.1.3 - Carthage 0.34.0 - CocoaPods 1.8.4 -- Homebrew 2.2.0 -- NPM 6.12.1 -- Yarn 1.19.2 +- Homebrew 2.2.2 +- NPM 6.13.4 +- Yarn 1.21.1 - NuGet 5.3.1.6268 - pip 19.3.1 - Miniconda 4.7.12 @@ -54,17 +54,18 @@ date: Week 51 ### Utilities - curl 7.67.0 (x86_64-apple-darwin19.0.0) libcurl/7.67.0 SecureTransport zlib/1.2.11 -- Git 2.24.0 -- Git LFS: git-lfs/2.8.0 (GitHub; darwin amd64; go 1.12.7) +- Git 2.24.1 +- Git LFS: git-lfs/2.9.2 (GitHub; darwin amd64; go 1.13.5) - GNU Wget 1.20.3 - Subversion (SVN) 1.13.0 -- GNU parallel 20191122 +- GNU parallel 20191222 ### Tools -- fastlane 2.137.0 -- App Center CLI 2.3.2 -- Azure-Cli 2.0.77 +- fastlane 2.139.0 +- App Center CLI 2.3.3 +- Azure-Cli 2.0.78 +- CMake 3.16.2 ### Pre-cached tools @@ -81,11 +82,15 @@ date: Week 51 - 2.5.5 - 2.6.3 +### Browsers +- Google Chrome 79.0.3945.88 +- ChromeDriver 79.0.3945.36 + ### Xcode | Version | Build | Path | |------------------------|---------|----------------------------------| -| 11.3_beta | 11C24b | /Applications/Xcode_11.3_beta.app| +| 11.3 | 11C29 | /Applications/Xcode_11.3.app | | 11.2.1 | 11B53 | /Applications/Xcode_11.2.1.app | | 11.2 | 11B52 | /Applications/Xcode_11.2.app | | 11.1 | 11A1027 | /Applications/Xcode_11.1.app | @@ -97,29 +102,29 @@ date: Week 51 - Nomad CLI 3.0.6 - Nomad CLI IPA 0.14.3 - xcpretty 0.3.0 -- xctool 0.3.6 +- xctool 0.3.7 - xcversion 2.6.3 ### Installed SDKs | SDK | SDK name |Xcode Version | |---------------------------|-------------|--------------| -| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1 | +| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3 | | iOS 13.0 | iphoneos13.0 | 11.0 | | iOS 13.1 | iphoneos13.1 | 11.1 | -| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1 | +| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3 | | iOS Simulator 13.0 | iphonesimulator13.0 | 11.0 | | iOS Simulator 13.1 | iphonesimulator13.1 | 11.1 | -| iOS Simulator 13.2 | iphonesimulator13.2 | 11.2, 11.2.1 | +| iOS Simulator 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3 | | tvOS 13.0 | appletvos13.0 | 11.0, 11.1 | | tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1 | | tvOS Simulator 13.0 | appletvsimulator13.0 | 11.0, 11.1 | -| tvOS Simulator 13.2 | appletvsimulator13.2 | 11.2, 11.2.1 | +| tvOS Simulator 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3 | | watchOS 6.0 | watchos6.0 | 11.0, 11.1 | -| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1 | +| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3 | | watchOS Simulator 6.0 | watchsimulator6.0 | 11.0, 11.1 | -| watchOS Simulator 6.1 | watchsimulator6.1 | 11.2, 11.2.1 | -| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1 | +| watchOS Simulator 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3 | +| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3 | ### Installed Simulators @@ -129,23 +134,15 @@ date: Week 51 |---------|---------------------------------|------------| | iOS 13.0 (17A577a) | 11 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | | iOS 13.1 (17A844) | 11.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | -| iOS 13.2 (17B102) | 11.2, 11.2.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad (7th generation)
iPad Pro
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | -| tvOS 11.4 (15L576)
tvOS 12.0 (16J5283n)
tvOS 12.1 (16J602)
tvOS 12.2 (16L225)
tvOS 12.4 (16M567)
tvOS 13.0 (17J559)
tvOS 13.2 (17K90) | 11.0, 11.1
11.2, 11.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | -| watchOS 6.0 (17R566)

watchOS 6.1 (17S80) | 11.0
11.1
11.2, 11.2.1 | Apple Watch Series 4 40mm
Apple Watch Series 4 44mm
Apple Watch Series 5 40mm
Apple Watch Series 5 44mm | +| iOS 13.2 (17B102)
iOS 13.3 (17C45) | 11.2, 11.2.1
11.3 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad (7th generation)
iPad Pro
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | +| tvOS 13.0 (17J559)
tvOS 13.2 (17K90)
tvOS 13.3 (17K446) | 11.2, 11.2.1
11.3 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| watchOS 6.0 (17R566)

watchOS 6.1 (17S80)
watchOS 6.1.1 (17S445) | 11.0
11.1
11.2, 11.2.1
11.3 | Apple Watch Series 4 40mm
Apple Watch Series 4 44mm
Apple Watch Series 5 40mm
Apple Watch Series 5 44mm | ### Device Pairs | Watch | Phone | |-----------------------------|-------------------| -| Apple Watch - 38mm | iPhone 6s | -| Apple Watch - 42mm | iPhone 6s Plus | -| Apple Watch Series 2 - 38mm | iPhone 7 | -| Apple Watch Series 2 - 42mm | iPhone 7 Plus | -| Apple Watch Series 3 - 38mm | iPhone 8 | -| Apple Watch Series 3 - 42mm | iPhone 8 Plus | -| Apple Watch Series 4 - 40mm | iPhone XS | -| Apple Watch Series 4 - 44mm | iPhone XS Max | | Apple Watch Series 5 - 40mm | iPhone 11 Pro | | Apple Watch Series 5 - 44mm | iPhone 11 Pro Max | @@ -210,7 +207,7 @@ date: Week 51 | lldb | 2.3.3614996 | | ndk-bundle | 18.1.5063045 | | ProGuard | 5.3.3 | -| Android Emulator | 29.2.11 | +| Android Emulator | 29.3.2 | ### Google APIs @@ -234,7 +231,7 @@ date: Week 51 ### Visual Studio for Mac -- 8.3.10.2 +- 8.3.11.1 ### Mono From fe71d1aafb7974060d720a0b50324d530d650969 Mon Sep 17 00:00:00 2001 From: Alejandro Pauly Date: Wed, 8 Jan 2020 07:36:30 -0500 Subject: [PATCH 26/54] Fix current readmes in master. --- images/linux/Ubuntu1604-README.md | 4 ++-- images/linux/Ubuntu1804-README.md | 4 ++-- images/win/Windows2016-Readme.md | 6 ++---- images/win/Windows2019-Readme.md | 6 ++---- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md index ae108c85b..d8bdd79c2 100644 --- a/images/linux/Ubuntu1604-README.md +++ b/images/linux/Ubuntu1604-README.md @@ -1,5 +1,5 @@ -# Hosted Ubuntu 1604 Image (Ubuntu 16.04.6 LTS) -The following software is installed on machines in the Hosted Ubuntu 1604 (20191202.1) pool +# Ubuntu 16.04.6 LTS +The following software is installed on machines with the 20191202.1 update. *** - 7-Zip 9.20 - Ansible (ansible 2.9.1) diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md index fb3065162..783c5a59d 100644 --- a/images/linux/Ubuntu1804-README.md +++ b/images/linux/Ubuntu1804-README.md @@ -1,5 +1,5 @@ -# Hosted Ubuntu 1804 Image (Ubuntu 18.04.3 LTS) -The following software is installed on machines in the Hosted Ubuntu 1804 (v20191202.1) pool +# Ubuntu 18.04.3 LTS +The following software is installed on machines with the 20191202.1 update. *** - 7-Zip 16.02 - Ansible (ansible 2.9.1) diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md index c550b5238..1e6a51df1 100644 --- a/images/win/Windows2016-Readme.md +++ b/images/win/Windows2016-Readme.md @@ -1,6 +1,6 @@ -# Hosted Windows2016 image +# Windows Server 2016 -The following software is installed on machines in the Azure Pipelines **Hosted Windows2016** (v20191009.1) pool. +The following software is installed on machines with the 20191009.1 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -519,8 +519,6 @@ _Environment:_ * Bower 1.8.8
* Yarn 1.19.1
-> Note: You can install and use another version of Node.js on Microsoft-hosted agent pools using the [Node tool installer](https://docs.microsoft.com/vsts/pipelines/tasks/tool/node-js) task. - ## npm _Version:_ 6.9.0
diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index aa6f5a417..3808b2bcc 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -1,6 +1,6 @@ -# Hosted Windows 2019 +# Windows Server 2019 -The following software is installed on machines in the **Hosted Windows 2019** (v20191009.1) pool. +The following software is installed on machines with the 20191009.1 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -486,8 +486,6 @@ _Environment:_ * Bower 1.8.8
* Yarn 1.19.1
-> Note: You can install and use another version of Node.js on Microsoft-hosted agent pools using the [Node tool installer](https://docs.microsoft.com/vsts/pipelines/tasks/tool/node-js) task. - ## npm _Version:_ 6.9.0
From dd28dfa5857d31a9de12786f70723faaf94c7c4e Mon Sep 17 00:00:00 2001 From: Alejandro Pauly Date: Wed, 8 Jan 2020 07:56:32 -0500 Subject: [PATCH 27/54] Fix scripts to avoid using hosted term which is ambiguous in this context. --- helpers/GenerateResourcesAndImage.ps1 | 2 +- images/linux/config/ubuntu1604.conf | 4 ++-- images/linux/config/ubuntu1804.conf | 4 ++-- images/linux/scripts/installers/1604/preparemetadata.sh | 4 ++-- images/linux/scripts/installers/1804/preparemetadata.sh | 4 ++-- images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 | 4 ++-- images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/helpers/GenerateResourcesAndImage.ps1 b/helpers/GenerateResourcesAndImage.ps1 index 6d328171b..bc0e649fb 100644 --- a/helpers/GenerateResourcesAndImage.ps1 +++ b/helpers/GenerateResourcesAndImage.ps1 @@ -62,7 +62,7 @@ Function GenerateResourcesAndImage { Delete the resource group if it exists without user confirmation. .EXAMPLE - GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\azure-pipelines-image-generation" -ImageType Ubuntu1604 -AzureLocation "East US" + GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\virtual-environments" -ImageType Ubuntu1604 -AzureLocation "East US" #> param ( [Parameter(Mandatory = $True)] diff --git a/images/linux/config/ubuntu1604.conf b/images/linux/config/ubuntu1604.conf index e9fbaed22..d2ac14231 100644 --- a/images/linux/config/ubuntu1604.conf +++ b/images/linux/config/ubuntu1604.conf @@ -1,2 +1,2 @@ -# Name of the hosted pool this image will support -POOL_NAME="Hosted Ubuntu 1604" +# Name of the pool supported by this image +POOL_NAME="Ubuntu 1604" diff --git a/images/linux/config/ubuntu1804.conf b/images/linux/config/ubuntu1804.conf index 375a9382b..bca2da8a0 100644 --- a/images/linux/config/ubuntu1804.conf +++ b/images/linux/config/ubuntu1804.conf @@ -1,2 +1,2 @@ -# Name of the hosted pool this image will support -POOL_NAME="Hosted Ubuntu 1804" +# Name of pool supported by this image +POOL_NAME="Ubuntu 1804" diff --git a/images/linux/scripts/installers/1604/preparemetadata.sh b/images/linux/scripts/installers/1604/preparemetadata.sh index 5b4c177e9..45cfcabfa 100644 --- a/images/linux/scripts/installers/1604/preparemetadata.sh +++ b/images/linux/scripts/installers/1604/preparemetadata.sh @@ -7,6 +7,6 @@ source $HELPER_SCRIPTS/document.sh -AddTitle "Hosted Ubuntu 1604 Image ($(lsb_release -ds))" -WriteItem "The following software is installed on machines in the Hosted Ubuntu 1604 ($IMAGE_VERSION) pool" +AddTitle "$(lsb_release -ds)" +WriteItem "The following software is installed on machines with the $IMAGE_VERSION update." WriteItem "***" diff --git a/images/linux/scripts/installers/1804/preparemetadata.sh b/images/linux/scripts/installers/1804/preparemetadata.sh index 61988142c..45cfcabfa 100644 --- a/images/linux/scripts/installers/1804/preparemetadata.sh +++ b/images/linux/scripts/installers/1804/preparemetadata.sh @@ -7,6 +7,6 @@ source $HELPER_SCRIPTS/document.sh -AddTitle "Hosted Ubuntu 1804 Image ($(lsb_release -ds))" -WriteItem "The following software is installed on machines in the Hosted Ubuntu 1804 (v$IMAGE_VERSION) pool" +AddTitle "$(lsb_release -ds)" +WriteItem "The following software is installed on machines with the $IMAGE_VERSION update." WriteItem "***" diff --git a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 index 335719005..e22d9da8d 100644 --- a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 @@ -119,9 +119,9 @@ wmic logicaldisk get size,freespace,caption # Adding description of the software to Markdown $Content = @" -# Azure Pipelines Hosted VS2017 image +# Windows Server 2016 -The following software is installed on machines in the Azure Pipelines **Hosted VS2017** (v$env:ImageVersion) pool. +The following software is installed on machines with the $env:ImageVersion update. Components marked with **\*** have been upgraded since the previous version of the image. diff --git a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 index 83087f706..09567e71a 100644 --- a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 @@ -118,9 +118,9 @@ wmic logicaldisk get size,freespace,caption # Adding description of the software to Markdown $Content = @" -# Azure Pipelines Hosted Windows 2019 with VS2019 image +# Windows Server 2019 -The following software is installed on machines in the Azure Pipelines **Hosted Windows 2019 with VS2019** (v$env:ImageVersion) pool. +The following software is installed on machines with the $env:ImageVersion update. Components marked with **\*** have been upgraded since the previous version of the image. From 0125c844cb7a23dae4015e6c10e3d85460e44c4f Mon Sep 17 00:00:00 2001 From: Alejandro Pauly Date: Wed, 8 Jan 2020 13:48:31 -0500 Subject: [PATCH 28/54] Revert "Update badges to point to README's in master for now" This reverts commit 3ac3a7dd44921a04a724b3996120c7b03c1b1daa. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0cb97a2bc..619392bbb 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ check out the [GitHub Actions Community Forum](https://github.community/t5/GitHu ## OS's offered We currently offer Linux, macOS, and Windows virtual environments: -[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu18&badge=1)](https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu1804-README.md) -[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu16&badge=1)](https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu1604-README.md) -[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019-vs2019&badge=1)](https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md) +[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu18&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu18&redirect=1) +[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu16&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu16&redirect=1) +[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019-vs2019&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019-vs2019&redirect=1) - **Linux**. We offer Ubuntu 16.04 and Ubuntu 18.04. We do not plan to offer other Linux distributions. If you want to build using other distributions with the hosted virtual environments, we suggest you use Docker. Alternatively, you can host your own VMs and make use of self-hosted runners. - **macOS**. We offer macOS Catalina 10.15. From 067cd1fdf8a30dd8d143b64a2ab194a588f96300 Mon Sep 17 00:00:00 2001 From: Bishal Prasad Date: Thu, 9 Jan 2020 11:30:08 +0530 Subject: [PATCH 29/54] Explicitly adding back 2.2 eol channel as this will cause sudden break for customers --- images/win/scripts/Installers/Install-DotnetSDK.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-DotnetSDK.ps1 b/images/win/scripts/Installers/Install-DotnetSDK.ps1 index 7bd2573da..f7c9a9e23 100644 --- a/images/win/scripts/Installers/Install-DotnetSDK.ps1 +++ b/images/win/scripts/Installers/Install-DotnetSDK.ps1 @@ -54,7 +54,8 @@ function InstallAllValidSdks() # Consider all channels except preview/eol channels. # Sort the channels in ascending order - $dotnetChannels = $dotnetChannels.'releases-index' | Where-Object { !$_."support-phase".Equals('preview') -and !$_."support-phase".Equals('eol') } | Sort-Object { [Version] $_."channel-version" } + # HACK: Explicitly adding eol channel 2.2 for a grace period as this channel is wierdly marked as eol with no higher 2.x channel + $dotnetChannels = $dotnetChannels.'releases-index' | Where-Object { (!$_."support-phase".Equals('preview') -and !$_."support-phase".Equals('eol')) -or ($_."channel-version" -eq "2.2") } | Sort-Object { [Version] $_."channel-version" } # Download installation script. Invoke-WebRequest -Uri 'https://dot.net/v1/dotnet-install.ps1' -UseBasicParsing -OutFile 'dotnet-install.ps1' From 9c67ed5210479082c9228c9ba8c523caef35986b Mon Sep 17 00:00:00 2001 From: Maksim Petrov <47208721+vmapetr@users.noreply.github.com> Date: Thu, 9 Jan 2020 15:27:54 +0300 Subject: [PATCH 30/54] Toolcache: Rework linux toolcache tests, add Ruby 2.7.0 support (#5) * Toolcache: rework linux toolcache tests * Toolcache: add Ruby 2.7 for windows/linux --- .../scripts/installers/test-toolcache.sh | 153 +++++++----------- images/linux/toolcache-1604.json | 2 +- images/linux/toolcache-1804.json | 2 +- images/win/toolcache.json | 2 +- 4 files changed, 59 insertions(+), 100 deletions(-) diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh index 0a64882a2..c54118e19 100644 --- a/images/linux/scripts/installers/test-toolcache.sh +++ b/images/linux/scripts/installers/test-toolcache.sh @@ -6,112 +6,71 @@ # Must be procecessed after tool cache setup(hosted-tool-cache.sh). +Test_Hostedtoolcache_Tool() { + TOOL_NAME=$1 + TOOL_BIN_PATH=$2 + TOOL_COMMAND=$3 + + if [ -d "$AGENT_TOOLSDIRECTORY/$TOOL_NAME" ]; then + cd $AGENT_TOOLSDIRECTORY/$TOOL_NAME + + tool_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||")) + + echo "--------------------------------------------" + echo "$TOOL_NAME versions folders: ${tool_dirs[@]}" + echo "--------------------------------------------" + + if [ -n "$tool_dirs" ]; then + tool_key=$(echo $TOOL_NAME | tr "[:upper:]" "[:lower:]") + package_versions=($(jq -r ".[\"${TOOLCACHE_KEY_VALUE[$tool_key]}\"] | .[]" "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) + + for tool_version in ${package_versions[@]} + do + version_dir=$(find . -name "$tool_version.*" -print -quit) + + echo "Test $AGENT_TOOLSDIRECTORY/$TOOL_NAME/$version_dir:" + + version_bin_path=$(find . -regex "$version_dir/$TOOL_BIN_PATH" -print -quit) + actual_version=$(eval $AGENT_TOOLSDIRECTORY/$TOOL_NAME/$version_bin_path $TOOL_COMMAND) + + if [ "$actual_version" = "$tool_version" ]; then + echo "Passed!" + else + echo "Expected: $tool_version; Actual: $actual_version" + + exit 1 + fi + done; + else + echo "$AGENT_TOOLSDIRECTORY/$tool_version does not include any folders" + + exit 1 + fi + else + echo "$AGENT_TOOLSDIRECTORY/$tool_version does not exist" + + exit 1 + fi +} + # Fail out if any tests fail set -e -# define array of key aliases -key_alias_array=() -bash --version # define dictionary for key_alias and its values -declare -A toolcache_key_value -PACKAGE_LIST=($(jq -r 'keys | .[]' "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) -for PACKAGE_NAME in ${PACKAGE_LIST[@]}; do +declare -A TOOLCACHE_KEY_VALUE +package_list=($(jq -r 'keys | .[]' "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) + +for package_name in ${package_list[@]}; do # get key alias - key_alias=$(echo $PACKAGE_NAME | cut -f2 -d-) - echo $key_alias + key_alias=$(echo $package_name | cut -f2 -d-) # set dictionary - toolcache_key_value+=(["$key_alias"]="$PACKAGE_NAME") + TOOLCACHE_KEY_VALUE+=(["$key_alias"]="$package_name") done; AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache -# Python test -if [ -d "$AGENT_TOOLSDIRECTORY/Python" ]; then - cd $AGENT_TOOLSDIRECTORY/Python - python_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||")) - echo "Python versions folders: ${python_dirs[@]}" - echo "------------------------------------------" - if [ -n "$python_dirs" ]; then - PACKAGE_VERSIONS=($(jq -r ".[\"${toolcache_key_value[python]}\"] | .[]" "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) - for python_version in ${PACKAGE_VERSIONS[@]} - do - version_dir=$(find . -name "$python_version.*" -print -quit) - echo "Test $AGENT_TOOLSDIRECTORY/Python/$version_dir:" - actual_ver=$($AGENT_TOOLSDIRECTORY/Python/$version_dir/x64/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+') - if [ "$actual_ver" = "$python_version" ]; then - echo "Passed!" - else - echo "Expected: $python_version; Actual: $actual_ver" - exit 1 - fi - done; - else - echo "$AGENT_TOOLSDIRECTORY/Python does not include any folders" - exit 1 - fi -else - echo "$AGENT_TOOLSDIRECTORY/Python does not exist" - exit 1 -fi - -# Ruby test -if [ -d "$AGENT_TOOLSDIRECTORY/Ruby" ]; then - cd $AGENT_TOOLSDIRECTORY/Ruby - ruby_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||")) - echo "Ruby versions folders: ${ruby_dirs[@]}" - echo "--------------------------------------" - if [ -n "$ruby_dirs" ]; then - PACKAGE_VERSIONS=($(jq -r ".[\"${toolcache_key_value[ruby]}\"] | .[]" "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) - for ruby_version in ${PACKAGE_VERSIONS[@]} - do - version_dir=$(find . -name "$ruby_version.*" -print -quit) - echo "Test $AGENT_TOOLSDIRECTORY/Ruby/$version_dir:" - actual_ver=$($AGENT_TOOLSDIRECTORY/Ruby/$version_dir/x64/bin/ruby -e "puts RUBY_VERSION" | egrep -o '[0-9]+\.[0-9]+') - if [ "$actual_ver" = "$ruby_version" ]; then - echo "Passed!" - else - echo "Expected: $ruby_version; Actual: $actual_ver" - exit 1 - fi - done; - else - echo "$AGENT_TOOLSDIRECTORY/Ruby does not include any folders" - exit 1 - fi -else - echo "$AGENT_TOOLSDIRECTORY/Ruby does not exist" - exit 1 -fi - -# PyPy tests -if [ -d "$AGENT_TOOLSDIRECTORY/PyPy" ]; then - cd $AGENT_TOOLSDIRECTORY/PyPy - pypy_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||")) - echo "PyPy versions folders: ${pypy_dirs[@]}" - echo "------------------------------------------" - if [ -n "$pypy_dirs" ]; then - PACKAGE_VERSIONS=($(jq -r ".[\"${toolcache_key_value[pypy]}\"] | .[]" "$INSTALLER_SCRIPT_FOLDER/toolcache.json")) - for pypy_version in ${PACKAGE_VERSIONS[@]} - do - version_dir=$(find . -name "$pypy_version.*" -print -quit) - pypy_path=$(find . -regex "$version_dir/x64/bin/pypy[0-9]*" -print -quit) - echo $pypy_path - actual_ver=$($pypy_path -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+' | cut -d '.' -f 1) - echo "actual_ver = $actual_ver : pypy_version = $pypy_version" - if [ "$actual_ver" = "$pypy_version" ]; then - echo "Passed!" - else - echo "Expected: $pypy_version; Actual: $actual_ver" - exit 1 - fi - done; - else - echo "$AGENT_TOOLSDIRECTORY/PyPy does not include any folders" - exit 1 - fi -else - echo "$AGENT_TOOLSDIRECTORY/PyPy does not exist" - exit 1 -fi \ No newline at end of file +Test_Hostedtoolcache_Tool "Python" "x64/python" "-c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+'" +Test_Hostedtoolcache_Tool "Ruby" "x64/bin/ruby" "-e 'puts RUBY_VERSION' | egrep -o '[0-9]+\.[0-9]+'" +Test_Hostedtoolcache_Tool "PyPy" "x64/bin/pypy[0-9]*" "-c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+' | cut -d '.' -f 1" diff --git a/images/linux/toolcache-1604.json b/images/linux/toolcache-1604.json index 2674d57af..ea7f73c24 100644 --- a/images/linux/toolcache-1604.json +++ b/images/linux/toolcache-1604.json @@ -3,7 +3,7 @@ "2.7", "3.5", "3.6", "3.7", "3.8" ], "toolcache-ruby-ubuntu-1604-x64": [ - "2.4", "2.5", "2.6" + "2.4", "2.5", "2.6", "2.7" ], "toolcache-pypy-ubuntu-1604-x64": [ "2", "3" diff --git a/images/linux/toolcache-1804.json b/images/linux/toolcache-1804.json index ca75563cd..b076eaf2c 100644 --- a/images/linux/toolcache-1804.json +++ b/images/linux/toolcache-1804.json @@ -3,7 +3,7 @@ "2.7", "3.5", "3.6", "3.7", "3.8" ], "toolcache-ruby-ubuntu-1804-x64": [ - "2.4", "2.5", "2.6" + "2.4", "2.5", "2.6", "2.7" ], "toolcache-pypy-ubuntu-1804-x64": [ "2", "3" diff --git a/images/win/toolcache.json b/images/win/toolcache.json index 69434da3a..32aae3d50 100644 --- a/images/win/toolcache.json +++ b/images/win/toolcache.json @@ -6,7 +6,7 @@ "2.7", "3.5", "3.6", "3.7", "3.8" ], "toolcache-ruby-windows-x64": [ - "2.4", "2.5", "2.6" + "2.4", "2.5", "2.6", "2.7" ], "toolcache-pypy-windows-x86": [ "2", "3" From 44087ea2ef1ccf13201019b2d4dffb149700542a Mon Sep 17 00:00:00 2001 From: Kayla Ngan Date: Thu, 9 Jan 2020 14:14:03 -0500 Subject: [PATCH 31/54] Update issue-triager.yml If the auto-triager fails, add a "needs triage" label --- .github/workflows/issue-triager.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/issue-triager.yml b/.github/workflows/issue-triager.yml index 36a29c302..d28b1080c 100644 --- a/.github/workflows/issue-triager.yml +++ b/.github/workflows/issue-triager.yml @@ -13,11 +13,24 @@ jobs: steps: - uses: actions/checkout@v1 + - uses: damccorm/tag-ur-it@master with: repo-token: "${{ secrets.GITHUB_TOKEN }}" configuration-path: "./triage-rules.yml" + - if: failure() + uses: actions/github-script@0.4.0 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + github.issues.addLabels({ + issue_number: context.issue, + owner: context.owner, + repo: context.repo, + labels: ['needs triage'] + }) + - name: Set Node.js 10.x uses: actions/setup-node@master with: From 182b69511e80ebaa8dd73aede8eafde99e67cfa9 Mon Sep 17 00:00:00 2001 From: Kayla Ngan Date: Thu, 9 Jan 2020 14:59:34 -0500 Subject: [PATCH 32/54] Update bug-report.md --- .github/ISSUE_TEMPLATE/bug-report.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index c1b9c14ec..e645485e5 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -10,9 +10,11 @@ assignees: '' **Describe the bug** A clear and concise description of what the bug is, and why you consider it to be a bug. -**Area for Triage**: +**Area for Triage**: + -**Question, Bug, or Feature?**: +**Question, Bug, or Feature?**: + **Virtual environments affected** - [ ] macOS 10.15 From 013b336f36404f4d7f4710d4375730ff6708e806 Mon Sep 17 00:00:00 2001 From: Kayla Ngan Date: Thu, 9 Jan 2020 14:59:55 -0500 Subject: [PATCH 33/54] Update tool-request.md --- .github/ISSUE_TEMPLATE/tool-request.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/tool-request.md b/.github/ISSUE_TEMPLATE/tool-request.md index 615e9bfcf..33bf44540 100644 --- a/.github/ISSUE_TEMPLATE/tool-request.md +++ b/.github/ISSUE_TEMPLATE/tool-request.md @@ -16,9 +16,11 @@ assignees: '' - Brief description of tool: - URL for tool's homepage: -**Area for Triage**: +**Area for Triage**: + -**Question, Bug, or Feature?**: +**Question, Bug, or Feature?**: + **Virtual environments affected** - [ ] macOS 10.15 From f77805d25501262098ae116abe4f0ec13443aa86 Mon Sep 17 00:00:00 2001 From: Kayla Ngan Date: Thu, 9 Jan 2020 16:00:43 -0500 Subject: [PATCH 34/54] Update triage-rules.yml --- triage-rules.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/triage-rules.yml b/triage-rules.yml index c0fba5ee8..1273ffe12 100644 --- a/triage-rules.yml +++ b/triage-rules.yml @@ -115,7 +115,7 @@ rules: - valueFor: '**Area for Triage**' contains: 'Ruby' addLabels: ['Area: Ruby'] - assign: ['madhurig'] + assign: ['zachariahcox'] # Area: Rust - valueFor: '**Area for Triage**' @@ -189,4 +189,4 @@ tags: - noneIn: ['bug', 'enhancement', 'question'] addLabels: ['needs triage'] - noneMatch: '\s*Area:\s*([^]*)' - addLabels: ['needs triage'] \ No newline at end of file + addLabels: ['needs triage'] From 808ce5a527bd08d90bbe43e81a4d0a79fbefa490 Mon Sep 17 00:00:00 2001 From: Alejandro Pauly Date: Thu, 9 Jan 2020 16:18:41 -0500 Subject: [PATCH 35/54] Use better names now understood by underlying function. --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 619392bbb..5381f2c80 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This repository contains the code that we use to create the GitHub Actions [virtual environments](https://help.github.com/en/articles/software-in-virtual-environments-for-github-actions). Please use the issue templates to submit requests and bug reports related to the installed software. -If you need help with how to set up your workflow file or use a specific tool, +If you need help with how to set up your workflow file or use a specific tool, check out the [GitHub Actions Community Forum](https://github.community/t5/GitHub-Actions/bd-p/actions). ## OS's offered @@ -10,9 +10,10 @@ We currently offer Linux, macOS, and Windows virtual environments: [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu18&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu18&redirect=1) [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu16&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu16&redirect=1) -[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019-vs2019&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019-vs2019&redirect=1) +[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&redirect=1) +[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&redirect=1) -- **Linux**. We offer Ubuntu 16.04 and Ubuntu 18.04. We do not plan to offer other Linux distributions. If you want to build using other distributions with the hosted virtual environments, we suggest you use Docker. Alternatively, you can host your own VMs and make use of self-hosted runners. +- **Linux**. We offer Ubuntu 16.04 and Ubuntu 18.04. We do not plan to offer other Linux distributions. If you want to build using other distributions with the hosted virtual environments, we suggest you use Docker. Alternatively, you can host your own VMs and make use of self-hosted runners. - **macOS**. We offer macOS Catalina 10.15. - **Windows**. We offer Windows Server 2016 and Windows Server 2019. From 1298aba447924b38bb0811225251d8da369a755f Mon Sep 17 00:00:00 2001 From: Alejandro Pauly Date: Thu, 9 Jan 2020 16:47:21 -0500 Subject: [PATCH 36/54] Fix case in ubuntu names for readme since it matters. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5381f2c80..647416e83 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,8 @@ check out the [GitHub Actions Community Forum](https://github.community/t5/GitHu ## OS's offered We currently offer Linux, macOS, and Windows virtual environments: -[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu18&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu18&redirect=1) -[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu16&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=Ubuntu16&redirect=1) +[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&redirect=1) +[![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu16&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu16&redirect=1) [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&redirect=1) [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&redirect=1) From 2039a2f9732f1df8811f1f3705e6eeb05239ec6c Mon Sep 17 00:00:00 2001 From: AndreyMaslennikov Date: Fri, 10 Jan 2020 10:47:44 +0300 Subject: [PATCH 37/54] Remove selenium from the CLASSPATH env variable --- images/linux/scripts/installers/google-chrome.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh index 7eedd1656..6be67fb98 100644 --- a/images/linux/scripts/installers/google-chrome.sh +++ b/images/linux/scripts/installers/google-chrome.sh @@ -61,7 +61,7 @@ SELENIUM_VERSION_MAJOR_MINOR=$(echo $SELENIUM_VERSION | cut -d '.' -f 1,2) # Download selenium standalone server echo "Downloading selenium-server-standalone v$SELENIUM_VERSION..." -SELENIUM_JAR_NAME=selenium-server-standalone-$SELENIUM_VERSION.jar +SELENIUM_JAR_NAME="selenium-server-standalone-$SELENIUM_VERSION.jar" wget https://selenium-release.storage.googleapis.com/$SELENIUM_VERSION_MAJOR_MINOR/$SELENIUM_JAR_NAME echo "Testing to make sure that script performed as expected, and basic scenarios work" @@ -70,8 +70,9 @@ if [ ! -f "$SELENIUM_JAR_NAME" ]; then exit 1 fi -mv "selenium-server-standalone-$SELENIUM_VERSION.jar" "/usr/share/java/selenium-server-standalone.jar" -echo "CLASSPATH=/usr/share/java/selenium-server-standalone.jar:.:$CLASSPATH" | tee -a /etc/environment +SELENIUM_JAR_PATH="/usr/share/java/selenium-server-standalone.jar" +mv $SELENIUM_JAR_NAME $SELENIUM_JAR_PATH +echo "SELENIUM_JAR_PATH=$SELENIUM_JAR_PATH" | tee -a /etc/environment echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "Selenium server standalone" From 0e0b1c1c289f694af987dad62e285fda075f9b83 Mon Sep 17 00:00:00 2001 From: AndreyMaslennikov Date: Fri, 10 Jan 2020 11:02:52 +0300 Subject: [PATCH 38/54] Update documentation --- images/linux/scripts/installers/google-chrome.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh index 6be67fb98..9d6128f81 100644 --- a/images/linux/scripts/installers/google-chrome.sh +++ b/images/linux/scripts/installers/google-chrome.sh @@ -75,4 +75,4 @@ mv $SELENIUM_JAR_NAME $SELENIUM_JAR_PATH echo "SELENIUM_JAR_PATH=$SELENIUM_JAR_PATH" | tee -a /etc/environment echo "Lastly, documenting what we added to the metadata file" -DocumentInstalledItem "Selenium server standalone" +DocumentInstalledItem "Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)" From ef3bb5ced7167296c398228f8cb192c2b86d1cdb Mon Sep 17 00:00:00 2001 From: AndreyMaslennikov Date: Fri, 10 Jan 2020 11:26:40 +0300 Subject: [PATCH 39/54] Remove selenium from the CLASSPATH on Windows image --- images/win/scripts/Installers/Install-Selenium.ps1 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/images/win/scripts/Installers/Install-Selenium.ps1 b/images/win/scripts/Installers/Install-Selenium.ps1 index 9818f4142..ac38c3010 100644 --- a/images/win/scripts/Installers/Install-Selenium.ps1 +++ b/images/win/scripts/Installers/Install-Selenium.ps1 @@ -29,8 +29,7 @@ try { exit 1 } -Write-Host "Add selenium to CLASSPATH..." -setx "CLASSPATH" "$($seleniumBinPath);$($env:CLASSPATH)" /M -Write-Host "CLASSPATH: $($seleniumBinPath);$($env:CLASSPATH)" +Write-Host "Add selenium jar to the environment variables..." +setx "SELENIUM_JAR_PATH" "$($seleniumBinPath)" /M exit 0 From 078d0714a3cde809a2954ee59e8c870a5aebda83 Mon Sep 17 00:00:00 2001 From: Maksim Petrov Date: Fri, 10 Jan 2020 16:31:22 +0300 Subject: [PATCH 40/54] Toolcache: Small improvement in linux toolcache tests --- images/linux/scripts/installers/test-toolcache.sh | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh index c54118e19..2601db4b4 100644 --- a/images/linux/scripts/installers/test-toolcache.sh +++ b/images/linux/scripts/installers/test-toolcache.sh @@ -8,8 +8,7 @@ Test_Hostedtoolcache_Tool() { TOOL_NAME=$1 - TOOL_BIN_PATH=$2 - TOOL_COMMAND=$3 + TOOL_EXEC_TEST=$2 if [ -d "$AGENT_TOOLSDIRECTORY/$TOOL_NAME" ]; then cd $AGENT_TOOLSDIRECTORY/$TOOL_NAME @@ -30,8 +29,7 @@ Test_Hostedtoolcache_Tool() { echo "Test $AGENT_TOOLSDIRECTORY/$TOOL_NAME/$version_dir:" - version_bin_path=$(find . -regex "$version_dir/$TOOL_BIN_PATH" -print -quit) - actual_version=$(eval $AGENT_TOOLSDIRECTORY/$TOOL_NAME/$version_bin_path $TOOL_COMMAND) + actual_version=$(eval $AGENT_TOOLSDIRECTORY/$TOOL_NAME/$version_dir/$TOOL_EXEC_TEST) if [ "$actual_version" = "$tool_version" ]; then echo "Passed!" @@ -71,6 +69,6 @@ done; AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache -Test_Hostedtoolcache_Tool "Python" "x64/python" "-c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+'" -Test_Hostedtoolcache_Tool "Ruby" "x64/bin/ruby" "-e 'puts RUBY_VERSION' | egrep -o '[0-9]+\.[0-9]+'" -Test_Hostedtoolcache_Tool "PyPy" "x64/bin/pypy[0-9]*" "-c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+' | cut -d '.' -f 1" +Test_Hostedtoolcache_Tool "Python" "x64/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+'" +Test_Hostedtoolcache_Tool "Ruby" "x64/bin/ruby -e 'puts RUBY_VERSION' | egrep -o '[0-9]+\.[0-9]+'" +Test_Hostedtoolcache_Tool "PyPy" "x64/bin/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+' | cut -d '.' -f 1" From 565ef97434a5e9e800a2d8d294558ae7ba446b27 Mon Sep 17 00:00:00 2001 From: francisfuzz <15894826+francisfuzz@users.noreply.github.com> Date: Fri, 10 Jan 2020 07:23:37 -0800 Subject: [PATCH 41/54] LICENSE: update year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 331b241b3..b50625eb6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 GitHub +Copyright (c) 2020 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 6485b5b6e41321d86b3cf759ac9afe4bd8447018 Mon Sep 17 00:00:00 2001 From: Kayla Ngan Date: Fri, 10 Jan 2020 13:36:04 -0500 Subject: [PATCH 42/54] Update triage-rules.yml Change assignment from Alyona to Sergey --- triage-rules.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/triage-rules.yml b/triage-rules.yml index 1273ffe12..dcdb5d285 100644 --- a/triage-rules.yml +++ b/triage-rules.yml @@ -25,7 +25,7 @@ rules: - valueFor: '**Area for Triage**' contains: 'Apple' addLabels: ['Area: Apple'] - assign: ['AlenaSviridenko'] + assign: ['sergey-akhalkov'] # Area: Artifacts - valueFor: '**Area for Triage**' @@ -121,7 +121,7 @@ rules: - valueFor: '**Area for Triage**' contains: 'Rust' addLabels: ['Area: Rust'] - assign: ['AlenaSviridenko'] + assign: ['sergey-akhalkov'] # Area: Scala - valueFor: '**Area for Triage**' @@ -157,7 +157,7 @@ rules: - valueFor: '**Area for Triage**' contains: 'Xamarin' addLabels: ['Area: Xamarin'] - assign: ['AlenaSviridenko'] + assign: ['sergey-akhalkov'] # Types - valueFor: '**Question, Bug, or Feature?**' From 6125971c7168280350ab918749b38873e2e51b4b Mon Sep 17 00:00:00 2001 From: Alejandro Pauly Date: Sun, 12 Jan 2020 19:24:04 -0500 Subject: [PATCH 43/54] Move installation of curl in ubuntu18 to last since before it was removed from there it was working. --- images/linux/scripts/installers/1804/basic.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 616f77de7..1a556a4b8 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -10,9 +10,6 @@ source $HELPER_SCRIPTS/apt.sh set -e -echo "Install curl" -apt-get install -y --no-install-recommends curl - echo "Install dnsutils" apt-get install -y --no-install-recommends dnsutils @@ -115,6 +112,9 @@ apt-get install -y --no-install-recommends xorriso echo "Install zsync" apt-get install -y --no-install-recommends zsync +echo "Install curl" +apt-get install -y --no-install-recommends curl + # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" for cmd in curl file ftp jq netcat ssh rsync shellcheck sudo telnet time unzip wget zip; do From 9c78c9ea28408b0c0db4526fe525be2ec78655e9 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Mon, 13 Jan 2020 14:21:56 +0300 Subject: [PATCH 44/54] fix tilde markdown --- images/linux/Ubuntu1604-README.md | 2 +- images/linux/Ubuntu1804-README.md | 2 +- images/linux/scripts/installers/clang.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md index d8bdd79c2..65385ec15 100644 --- a/images/linux/Ubuntu1604-README.md +++ b/images/linux/Ubuntu1604-README.md @@ -31,7 +31,7 @@ The following software is installed on machines with the 20191202.1 update. - tzdata - AWS CLI (aws-cli/1.16.293 Python/2.7.12 Linux/4.15.0-1063-azure botocore/1.13.29) - build-essential -- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042730.123 (branches/release_60)) +- Clang 6.0 (clang version 6.0.1-svn334776-1\~exp1\~20190309042730.123 (branches/release_60)) - CMake (cmake version 3.12.4) - Docker Compose (docker-compose version 1.22.0, build f46880fe) - Docker (Docker version 3.0.8, build 2355349d) diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md index 783c5a59d..b9446357f 100644 --- a/images/linux/Ubuntu1804-README.md +++ b/images/linux/Ubuntu1804-README.md @@ -31,7 +31,7 @@ The following software is installed on machines with the 20191202.1 update. - tzdata - AWS CLI (aws-cli/1.16.293 Python/2.7.15+ Linux/5.0.0-1025-azure botocore/1.13.29) - build-essential -- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042703.125 (branches/release_60)) +- Clang 6.0 (clang version 6.0.1-svn334776-1\~exp1\~20190309042703.125 (branches/release_60)) - CMake (cmake version 3.12.4) - Docker Compose (docker-compose version 1.22.0, build f46880fe) - Docker (Docker version 3.0.8, build 2355349d) diff --git a/images/linux/scripts/installers/clang.sh b/images/linux/scripts/installers/clang.sh index 6d34c9216..b8e5fa402 100644 --- a/images/linux/scripts/installers/clang.sh +++ b/images/linux/scripts/installers/clang.sh @@ -28,4 +28,4 @@ done # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" -DocumentInstalledItem "Clang 6.0 ($(clang-6.0 --version | head -n 1))" +DocumentInstalledItem "Clang 6.0 ($(clang-6.0 --version | head -n 1 | sed 's/~/\\~/g'))" From 2c37b60941011767418a359221810883009eb74d Mon Sep 17 00:00:00 2001 From: MaksimZhukov Date: Tue, 14 Jan 2020 13:13:55 +0300 Subject: [PATCH 45/54] Add ChromeWebDriver env variable --- images/linux/scripts/installers/google-chrome.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh index 9d6128f81..c37209b01 100644 --- a/images/linux/scripts/installers/google-chrome.sh +++ b/images/linux/scripts/installers/google-chrome.sh @@ -41,6 +41,7 @@ rm chromedriver_linux64.zip CHROMEDRIVER_BIN="/usr/bin/chromedriver" mv "chromedriver" $CHROMEDRIVER_BIN +echo "ChromeWebDriver=$CHROMEDRIVER_BIN" | tee -a /etc/environment chown root:root $CHROMEDRIVER_BIN chmod +x $CHROMEDRIVER_BIN From 4c5d54d3dd111c7608b310d782b27c3d7aa4a45e Mon Sep 17 00:00:00 2001 From: MaksimZhukov Date: Tue, 14 Jan 2020 13:25:54 +0300 Subject: [PATCH 46/54] Move setting of variable --- images/linux/scripts/installers/google-chrome.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh index c37209b01..4918317b4 100644 --- a/images/linux/scripts/installers/google-chrome.sh +++ b/images/linux/scripts/installers/google-chrome.sh @@ -41,9 +41,9 @@ rm chromedriver_linux64.zip CHROMEDRIVER_BIN="/usr/bin/chromedriver" mv "chromedriver" $CHROMEDRIVER_BIN -echo "ChromeWebDriver=$CHROMEDRIVER_BIN" | tee -a /etc/environment chown root:root $CHROMEDRIVER_BIN chmod +x $CHROMEDRIVER_BIN +echo "ChromeWebDriver=$CHROMEDRIVER_BIN" | tee -a /etc/environment # Run tests to determine that the chromedriver installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" From 50b1638ecbf2ebd7d90d30b7fb2cba595f6b50e1 Mon Sep 17 00:00:00 2001 From: MaksimZhukov Date: Tue, 14 Jan 2020 15:18:45 +0300 Subject: [PATCH 47/54] Change the variable to uppercase --- images/linux/scripts/installers/google-chrome.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh index 4918317b4..939ce31b8 100644 --- a/images/linux/scripts/installers/google-chrome.sh +++ b/images/linux/scripts/installers/google-chrome.sh @@ -43,7 +43,7 @@ CHROMEDRIVER_BIN="/usr/bin/chromedriver" mv "chromedriver" $CHROMEDRIVER_BIN chown root:root $CHROMEDRIVER_BIN chmod +x $CHROMEDRIVER_BIN -echo "ChromeWebDriver=$CHROMEDRIVER_BIN" | tee -a /etc/environment +echo "CHROMEWEBDRIVER=$CHROMEDRIVER_BIN" | tee -a /etc/environment # Run tests to determine that the chromedriver installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" From cb9444bea2dacf450bc856f24cbc205aa8b6ed88 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Tue, 14 Jan 2020 16:50:42 +0300 Subject: [PATCH 48/54] update cmake-3.15.4 --- images/linux/scripts/installers/cmake.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/cmake.sh b/images/linux/scripts/installers/cmake.sh index 32e98af7b..1f684a4a4 100644 --- a/images/linux/scripts/installers/cmake.sh +++ b/images/linux/scripts/installers/cmake.sh @@ -12,7 +12,7 @@ echo "Checking to see if the installer script has already been run" if command -v cmake; then echo "Example variable already set to $EXAMPLE_VAR" else - curl -sL https://cmake.org/files/v3.12/cmake-3.12.4-Linux-x86_64.sh -o cmakeinstall.sh \ + curl -sL https://cmake.org/files/v3.15/cmake-3.15.4-Linux-x86_64.sh -o cmakeinstall.sh \ && chmod +x cmakeinstall.sh \ && ./cmakeinstall.sh --prefix=/usr/local --exclude-subdir \ && rm cmakeinstall.sh From f5460b3ddd5d2f4ad0ec3983056f135bbe70ed53 Mon Sep 17 00:00:00 2001 From: MaksimZhukov Date: Tue, 14 Jan 2020 18:35:00 +0300 Subject: [PATCH 49/54] Update google-chrome script --- images/linux/scripts/installers/google-chrome.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh index 939ce31b8..20396e2a2 100644 --- a/images/linux/scripts/installers/google-chrome.sh +++ b/images/linux/scripts/installers/google-chrome.sh @@ -53,7 +53,7 @@ if ! command -v chromedriver; then fi echo "Lastly, documenting what we added to the metadata file" -DocumentInstalledItem "Chromedriver ($(chromedriver --version))" +DocumentInstalledItem "Chromedriver ($(chromedriver --version)); Chrome Driver is available via CHROMEWEBDRIVER environment variable" # Determine latest selenium standalone server version SELENIUM_LATEST_VERSION_URL=https://api.github.com/repos/SeleniumHQ/selenium/releases/latest From 59e3a17c95a16742afc4a52c7b5eb8de8499d7e4 Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Wed, 15 Jan 2020 16:08:47 +0000 Subject: [PATCH 50/54] Updating readme file for AzP.20200102.win19.1 version 20200102 --- images/win/Windows2019-Readme.md | 935 ++++++++++++++++--------------- 1 file changed, 473 insertions(+), 462 deletions(-) diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index 3808b2bcc..1874e03d3 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -1,47 +1,46 @@ -# Windows Server 2019 +# Azure Pipelines Hosted Windows 2019 with VS2019 image + +The following software is installed on machines in the Azure Pipelines **Hosted Windows 2019 with VS2019** (v20200102.1) pool. + +Components marked with **\*** have been upgraded since the previous version of the image. -The following software is installed on machines with the 20191009.1 update. - -Components marked with **\*** have been upgraded since the previous version of the image. - - -## Chocolatey - -_Version:_ 0.10.15
-_Environment:_ + +## Chocolatey + +_Version:_ 0.10.15
+_Environment:_ * PATH: contains location for choco.exe - -## Docker - -_Version:_ 19.03.3
-_Environment:_ + +## Docker + +_Version:_ 19.03.5
+_Environment:_ * PATH: contains location of docker.exe - -## Docker-compose - -_Version:_ 1.24.0
-_Environment:_ + +## Docker-compose + +_Version:_ 1.25.0
+_Environment:_ * PATH: contains location of docker-compose.exe - -## Powershell Core - -_Version:_ 6.2.3 -
- -## Docker images - + +## Powershell Core + +_Version:_ 6.2.3
+ +## Docker images + The following container images have been cached: -* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 (Digest: sha256:e0f80fbc8bb2f39bd0eaba78b314444863ca3efec3f0e40a1b63aa501a36ef01) -* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 (Digest: sha256:c7219ea532e525bc34402027f7974a128746ebec79a31462bc8b59a9dfa6b3d8) -* mcr.microsoft.com/windows/servercore:ltsc2019 (Digest: sha256:404e0ee336a063619d1e93a2446061cf19cb3068bacb1775f5613e3b54e527e1) -* mcr.microsoft.com/windows/nanoserver:1809 (Digest: sha256:da46159cc4409ccdfe8e25d1e2b2e2705c31d956122d39ea89733b19d76340dd) +* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 (Digest: sha256:51ff8af52fc31c5abc82d707afaef7b9e3820106fcee28301cd0c02ebfb11fc6) +* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 (Digest: sha256:578d07650a3dfe8db5b988f26aa0c23180a248bcb7f5e1ab1d7ba7713b73ad43) +* mcr.microsoft.com/windows/servercore:ltsc2019 (Digest: sha256:4fd18320df2be163bd7a526e2b2131f9e89069fcc1a8c17e6c188e0e58e66bbd) +* mcr.microsoft.com/windows/nanoserver:1809 (Digest: sha256:0711f47c5bbfbe16448287a2f1fdd6cfcfd6674f2044c1fe4e4a20ef79245dfe) * microsoft/aspnetcore-build:1.0-2.0 (Digest: sha256:9ecc7c5a8a7a11dca5f08c860165646cb30d084606360a3a72b9cbe447241c0c) - -## Visual Studio 2019 Enterprise - -_Version:_ VisualStudio/16.3.3+29403.142
-_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise - + +## Visual Studio 2019 Enterprise + +_Version:_ VisualStudio/16.4.2+29613.14
+_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise + The following workloads and components are installed with Visual Studio 2019: * Component.Dotfuscator * Component.Linux.CMake @@ -71,28 +70,33 @@ The following workloads and components are installed with Visual Studio 2019: * Microsoft.VisualStudio.Component.TestTools.CodedUITest * Microsoft.VisualStudio.Component.TestTools.WebLoadTest * Microsoft.VisualStudio.Component.UWP.VC.ARM64 +* Microsoft.VisualStudio.Component.VC.140 * Microsoft.VisualStudio.Component.VC.ATL.ARM * Microsoft.VisualStudio.Component.VC.ATLMFC * Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre * Microsoft.VisualStudio.Component.VC.CLI.Support * Microsoft.VisualStudio.Component.VC.CMake.Project * Microsoft.VisualStudio.Component.VC.DiagnosticTools +* Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset * Microsoft.VisualStudio.Component.VC.MFC.ARM * Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre * Microsoft.VisualStudio.Component.VC.MFC.ARM64 * Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre +* Microsoft.VisualStudio.Component.VC.Redist.MSM * Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre * Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre * Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre * Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest * Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest * Microsoft.VisualStudio.Component.VC.v141 +* Microsoft.VisualStudio.Component.VC.v141.x86.x64 * Microsoft.VisualStudio.Component.Windows10SDK.16299 * Microsoft.VisualStudio.Component.Windows10SDK.17134 * Microsoft.VisualStudio.Component.Windows10SDK.17763 * Microsoft.VisualStudio.Component.Windows10SDK.18362 * Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices * Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools +* Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang * Microsoft.VisualStudio.ComponentGroup.Web.CloudTools * Microsoft.VisualStudio.Workload.Azure * Microsoft.VisualStudio.Workload.Data @@ -111,452 +115,433 @@ The following workloads and components are installed with Visual Studio 2019: * Microsoft.VisualStudio.Workload.Python * Microsoft.VisualStudio.Workload.Universal * Microsoft.VisualStudio.Workload.VisualStudioExtension - -## WIX Tools - -_Toolset Version:_ 3.11.4516
-_WIX Toolset Visual Studio Extension Version:_ 1.0.0.4
-_Environment:_ + +## WIX Tools + +_Toolset Version:_ 3.11.4516
+_WIX Toolset Visual Studio Extension Version:_ 1.0.0.4
+_Environment:_ * WIX: Installation root of WIX - -## .NET 4.8 - + +## .NET 4.8 + _Version:_ 4.8.03761 - -## Windows Driver Kit - -_Version:_ 10.0.17763.0
- -## Azure Service Fabric - -_SDK Version:_ 3.3.617.9590
-_Runtime Version:_ 6.4.617.9590 - -## WinAppDriver - + +## Windows Driver Kit + +_Version:_ 10.0.18362.0
+ +## Azure Service Fabric + +_SDK Version:_ 4.0.457.9590
+_Runtime Version:_ 7.0.457.9590 + +## WinAppDriver + _Version:_ 1.1.1809.18001
+ +## Android SDK Build Tools -## Android SDK Build Tools +#### 29.0.2 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.2 -#### 29.0.2 +#### 29.0.0 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.0 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.2 +#### 28.0.3 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.3 -#### 29.0.0 +#### 28.0.2 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.2 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.0 +#### 28.0.1 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.1 -#### 28.0.3 +#### 28.0.0 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.0 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.3 +#### 27.0.3 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.3 -#### 28.0.2 +#### 27.0.2 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.2 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.2 +#### 27.0.1 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.1 -#### 28.0.1 +#### 27.0.0 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.0 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.1 +#### 26.0.3 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.3 -#### 28.0.0 +#### 26.0.2 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.2 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.0 +#### 26.0.1 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.1 -#### 27.0.3 +#### 26.0.0 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.0 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.3 +#### 25.0.3 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.3 -#### 27.0.2 +#### 25.0.2 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.2 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.2 +#### 25.0.1 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.1 -#### 27.0.1 +#### 25.0.0 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.0 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.1 +#### 24.0.3 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.3 -#### 27.0.0 +#### 24.0.2 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.2 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.0 +#### 24.0.1 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.1 -#### 26.0.3 +#### 24.0.0 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.0 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.3 +#### 23.0.3 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.3 -#### 26.0.2 +#### 23.0.2 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.2 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.2 +#### 23.0.1 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.1 -#### 26.0.1 +#### 22.0.1 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\22.0.1 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.1 +#### 21.1.2 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\21.1.2 -#### 26.0.0 +#### 20.0.0 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\20.0.0 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.0 +#### 19.1.0 + +_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\19.1.0 -#### 25.0.3 + +## Android SDK Platforms -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.3 +#### 10 (API 29) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-29 -#### 25.0.2 +#### 9 (API 28) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-28 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.2 +#### 8.1.0 (API 27) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-27 -#### 25.0.1 +#### 8.0.0 (API 26) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-26 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.1 +#### 7.1.1 (API 25) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-25 -#### 25.0.0 +#### 7.0 (API 24) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-24 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.0 +#### 6.0 (API 23) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-23 -#### 24.0.3 +#### 5.1.1 (API 22) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-22 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.3 +#### 5.0.1 (API 21) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-21 -#### 24.0.2 +#### 4.4.2 (API 19) + +_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-19 -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.2 - -#### 24.0.1 - -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.1 - -#### 24.0.0 - -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.0 - -#### 23.0.3 - -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.3 - -#### 23.0.2 - -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.2 - -#### 23.0.1 - -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.1 - -#### 22.0.1 - -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\22.0.1 - -#### 21.1.2 - -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\21.1.2 - -#### 20.0.0 - -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\20.0.0 - -#### 19.1.0 - -_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\19.1.0 - - -## Android SDK Platforms - -#### 10 (API 29) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-29 - -#### 9 (API 28) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-28 - -#### 8.1.0 (API 27) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-27 - -#### 8.0.0 (API 26) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-26 - -#### 7.1.1 (API 25) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-25 - -#### 7.0 (API 24) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-24 - -#### 6.0 (API 23) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-23 - -#### 5.1.1 (API 22) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-22 - -#### 5.0.1 (API 21) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-21 - -#### 4.4.2 (API 19) - -_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-19 - - -## Azure/AzureRM Powershell modules - -#### 2.1.0 - -This version is installed and is available via Get-Module -ListAvailable - -#### 3.8.0 - -This version is saved but not installed -_Location:_ C:\Modules\azurerm_3.8.0\AzureRM\3.8.0\AzureRM.psd1 - -#### 4.2.1 - -This version is saved but not installed -_Location:_ C:\Modules\azurerm_4.2.1\AzureRM\4.2.1\AzureRM.psd1 - -#### 5.1.1 - -This version is saved but not installed -_Location:_ C:\Modules\azurerm_5.1.1\AzureRM\5.1.1\AzureRM.psd1 - -#### 6.7.0 - -This version is saved but not installed -_Location:_ C:\Modules\azurerm_6.7.0\AzureRM\6.7.0\AzureRM.psd1 - - -## TLS12 - -_Version:_ 1.2
+ +## TLS12 + +_Version:_ 1.2
_Description:_ .NET has been configured to use TLS 1.2 by default - -## Azure CLI - -_Version:_ 2.0.74 -_Environment:_ + +## Azure CLI + +_Version:_ 2.0.78 +_Environment:_ * PATH: contains location of az.cmd - -## Azure DevOps Cli extension - -_Version:_ azure-devops 0.13.0 - -## Python - -_Version:_ 2.7.16 (x64)
_Version:_ 2.7.16 (x86)
_Version:_ 3.4.4 (x64)
_Version:_ 3.4.4 (x86)
_Version:_ 3.5.4 (x64)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x64)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.4 (x64)
_Version:_ 3.7.4 (x86)

- -## PyPy - -_Version:_ 2.7.13 (x86)
_Version:_ 3.5.3 (x86)

- -## Ruby - -_Version:_ 2.4.6 (x64)
_Version:_ 2.5.5 (x64)
_Version:_ 2.6.3 (x64)

- -## Python (64 bit) - -#### Python 3.7.4 -_Environment:_ -* PATH: contains location of python.exe - -#### Python 2.7.16 - + +## Azure DevOps Cli extension + +_Version:_ azure-devops 0.16.0 + +## Python + +_Version:_ 2.7.16 (x64)
_Version:_ 2.7.16 (x86)
_Version:_ 3.5.4 (x64)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x64)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.5 (x64)
_Version:_ 3.7.5 (x86)
_Version:_ 3.8.0 (x64)
_Version:_ 3.8.0 (x86)
+ +## PyPy + +_Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
+ +## Ruby + +_Version:_ 2.4.6 (x64)
_Version:_ 2.5.5 (x64)
_Version:_ 2.6.3 (x64)
+ +## Python (64 bit) + +#### Python 3.7.5 +_Environment:_ +* PATH: contains location of python.exe + +#### Python 2.7.16 + _Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64 - -## Git - -_Version:_ 2.23.0
-_Environment:_ + +## Git + +_Version:_ 2.24.1
+_Environment:_ * PATH: contains location of git.exe - -## Git Large File Storage (LFS) - -_Version:_ 2.8.0
-_Environment:_ -* PATH: contains location of git-lfs.exe + +## Git Large File Storage (LFS) + +_Version:_ 2.9.1
+_Environment:_ +* PATH: contains location of git-lfs.exe * GIT_LFS_PATH: location of git-lfs.exe + +## Go (x64) + +#### 1.10.8 + +_Environment:_ +* GOROOT_1_10_X64: root directory of the Go 1.10.8 installation -## Go (x64) +#### 1.11.12 + +_Environment:_ +* GOROOT_1_11_X64: root directory of the Go 1.11.12 installation -#### 1.10.8 - -_Environment:_ -* GOROOT_1_10_X64: root directory of the Go 1.10.8 installation - -#### 1.11.12 - -_Environment:_ -* GOROOT_1_11_X64: root directory of the Go 1.11.12 installation - -#### 1.12.7 - -_Environment:_ -* PATH: contains the location of go.exe version 1.12.7 -* GOROOT: root directory of the Go 1.12.7 installation +#### 1.12.7 + +_Environment:_ +* PATH: contains the location of go.exe version 1.12.7 +* GOROOT: root directory of the Go 1.12.7 installation * GOROOT_1_12_X64: root directory of the Go 1.12.7 installation -#### 1.13 - -_Environment:_ -* GOROOT_1_13_X64: root directory of the Go 1.13 installation +#### 1.13 + +_Environment:_ +* GOROOT_1_13_X64: root directory of the Go 1.13 installation - -## Boost - -#### - -* PATH: contains the location of Boost version -* BOOST_ROOT: root directory of the Boost version installation + +## Boost + +#### + +* PATH: contains the location of Boost version +* BOOST_ROOT: root directory of the Boost version installation * BOOST_ROOT_1_69_0: root directory of the Boost version installation - -## PHP (x64) - -#### 7.3.10 - -_Environment:_ -* PATH: contains the location of php.exe version 7.3.10 -* PHPROOT: root directory of the PHP 7.3.10 installation - -## Ruby (x64) - -#### 2.5.5p157 -_Environment:_ -* Location: C:\hostedtoolcache\windows\Ruby\2.5.5\x64\bin + +## PHP (x64) + +#### 7.4.1 + +_Environment:_ +* PATH: contains the location of php.exe version 7.4.1 +* PHPROOT: root directory of the PHP 7.4.1 installation + +## Ruby (x64) + +#### 2.5.5p157 +_Environment:_ +* Location: C:\hostedtoolcache\windows\Ruby\2.5.5\x64\bin * PATH: contains the location of ruby.exe version 2.5.5p157 - -## Rust (64-bit) - -#### 1.38.0 -_Location:_ C:\Rust\.cargo\bin -_Environment:_ + +## Rust (64-bit) + +#### 1.40.0 +_Location:_ C:\Rust\.cargo\bin +_Environment:_ * PATH: contains the location of rustc.exe - -## Subversion - -_Version:_ 1.8.17
-_Environment:_ + +## Subversion + +_Version:_ 1.8.17
+_Environment:_ * PATH: contains location of svn.exe + +## sbt + -## Google Chrome + +## Google Chrome + +_version:_ +79.0.3945.88 + +## Mozilla Firefox + +_version:_ +71.0 + +## Selenium Web Drivers + + +#### Chrome Driver + +_version:_ +79.0.3945.36 + +_Environment:_ +* ChromeWebDriver: location of chromedriver.exe + +#### Gecko Driver + +_version:_ +0.24.0 + +_Environment:_ +* GeckoWebDriver: location of geckodriver.exe + +#### IE Driver + +_version:_ +3.8.0.0 + +_Environment:_ +* IEWebDriver: location of IEDriverServer.exe -_version:_ -77.0.3865.90 + +## Node.js + +_Version:_ 12.14.0
+_Architecture:_ x64
+_Environment:_ +* PATH: contains location of node.exe
+* Gulp CLI version: 2.2.0 Local version: Unknown
+* Grunt grunt-cli v1.3.2
+* Yarn 1.21.1
-## Mozilla Firefox - -_version:_ -69.0.1 - -## Selenium Web Drivers - - -#### Chrome Driver - -_version:_ -77.0.3865.40 - -_Environment:_ -* ChromeWebDriver: location of chromedriver.exe - -#### Gecko Driver - -_version:_ -0.24.0 - -_Environment:_ -* GeckoWebDriver: location of geckodriver.exe - -#### IE Driver - -_version:_ -3.8.0.0 - -_Environment:_ -* IEWebDriver: location of IEDriverServer.exe - - -## Node.js - -_Version:_ 12.13.0
-_Architecture:_ x64
-_Environment:_ -* PATH: contains location of node.exe
-* Gulp CLI version: 2.2.0 Local version: Unknown
-* Grunt grunt-cli v1.3.2
-* Bower 1.8.8
-* Yarn 1.19.1
- -## npm - -_Version:_ 6.9.0
-_Environment:_ + +## npm + +_Version:_ 6.13.4
+_Environment:_ * PATH: contains location of npm.cmd - -## Java Development Kit - -#### 1.8.0_222 - -_Environment:_ -* JAVA_HOME: location of JDK -* PATH: contains bin folder of JDK - -#### 1.7.0_232 - -_Location:_ C:\Program Files\Java\zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64 - -#### 11.0.4 - + +## Java Development Kit + +#### 1.8.0_222 + +_Environment:_ +* JAVA_HOME: location of JDK +* PATH: contains bin folder of JDK + +#### 1.7.0_232 + +_Location:_ C:\Program Files\Java\zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64 + +#### 11.0.4 + _Location:_ C:\Program Files\Java\zulu-11-azure-jdk_11.33.15-11.0.4-win_x64 - -## Ant - -_Version:_ 1.10.5
-_Environment:_ -* PATH: contains location of ant.cmd -* ANT_HOME: location of ant.cmd + +## Ant + +_Version:_ 1.10.5
+_Environment:_ +* PATH: contains location of ant.cmd +* ANT_HOME: location of ant.cmd * COBERTURA_HOME: location of cobertura-2.1.1.jar - -## Maven - -_Version:_ 3.6.2
-_Environment:_ -* PATH: contains location of mvn.bat + +## Maven + +_Version:_ 3.6.2
+_Environment:_ +* PATH: contains location of mvn.bat * M2_HOME: Maven installation root - -## Gradle - -_Version:_ 5.6.2
-_Environment:_ + +## Gradle + +_Version:_ 6.0.1
+_Environment:_ * PATH: contains location of gradle - -## Cmake - -_Version:_ 3.15.4
-_Environment:_ + +## Cmake + +_Version:_ 3.16.2
+_Environment:_ * PATH: contains location of cmake.exe - -## SQL Server Data Tier Application Framework (x64) - + +## SQL Server Data Tier Application Framework (x64) + _Version:_ 15.0.4538.1
- -## .NET Core - -The following runtimes and SDKs are installed: - -_Environment:_ -* PATH: contains location of dotnet.exe - + +## .NET Core + +The following runtimes and SDKs are installed: + +_Environment:_ +* PATH: contains location of dotnet.exe + _SDK:_ +* 3.1.100 C:\Program Files\dotnet\sdk\3.1.100 +* 3.0.101 C:\Program Files\dotnet\sdk\3.0.101 * 3.0.100 C:\Program Files\dotnet\sdk\3.0.100 * 2.2.402 C:\Program Files\dotnet\sdk\2.2.402 * 2.2.401 C:\Program Files\dotnet\sdk\2.2.401 * 2.2.301 C:\Program Files\dotnet\sdk\2.2.301 * 2.2.300 C:\Program Files\dotnet\sdk\2.2.300 +* 2.2.207 C:\Program Files\dotnet\sdk\2.2.207 * 2.2.206 C:\Program Files\dotnet\sdk\2.2.206 * 2.2.205 C:\Program Files\dotnet\sdk\2.2.205 * 2.2.204 C:\Program Files\dotnet\sdk\2.2.204 * 2.2.203 C:\Program Files\dotnet\sdk\2.2.203 * 2.2.202 C:\Program Files\dotnet\sdk\2.2.202 +* 2.2.110 C:\Program Files\dotnet\sdk\2.2.110 * 2.2.109 C:\Program Files\dotnet\sdk\2.2.109 * 2.2.108 C:\Program Files\dotnet\sdk\2.2.108 * 2.2.107 C:\Program Files\dotnet\sdk\2.2.107 @@ -571,11 +556,13 @@ _SDK:_ * 2.1.801 C:\Program Files\dotnet\sdk\2.1.801 * 2.1.701 C:\Program Files\dotnet\sdk\2.1.701 * 2.1.700 C:\Program Files\dotnet\sdk\2.1.700 +* 2.1.607 C:\Program Files\dotnet\sdk\2.1.607 * 2.1.606 C:\Program Files\dotnet\sdk\2.1.606 * 2.1.605 C:\Program Files\dotnet\sdk\2.1.605 * 2.1.604 C:\Program Files\dotnet\sdk\2.1.604 * 2.1.603 C:\Program Files\dotnet\sdk\2.1.603 * 2.1.602 C:\Program Files\dotnet\sdk\2.1.602 +* 2.1.510 C:\Program Files\dotnet\sdk\2.1.510 * 2.1.509 C:\Program Files\dotnet\sdk\2.1.509 * 2.1.508 C:\Program Files\dotnet\sdk\2.1.508 * 2.1.507 C:\Program Files\dotnet\sdk\2.1.507 @@ -591,9 +578,12 @@ _SDK:_ * 2.1.302 C:\Program Files\dotnet\sdk\2.1.302 * 2.1.301 C:\Program Files\dotnet\sdk\2.1.301 * 2.1.300 C:\Program Files\dotnet\sdk\2.1.300 - + _Runtime:_ +* 3.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.0 +* 3.0.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.1 * 3.0.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.0 +* 2.2.8 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.8 * 2.2.7 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.7 * 2.2.6 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.6 * 2.2.5 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.5 @@ -610,75 +600,96 @@ _Runtime:_ * 2.1.4 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.4 * 2.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.3 * 2.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.2 +* 2.1.14 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.14 * 2.1.13 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.13 * 2.1.12 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.12 * 2.1.11 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.11 * 2.1.10 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.10 * 2.1.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.1 * 2.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.0 - -## Mysql - -_Version:_ 5.7.21.0
-_Environment:_ + +## Mysql + +_Version:_ 5.7.21.0
+_Environment:_ * PATH: contains location of mysql.exe - -## MinGW - -_Version:_ 8.1.0
-_Environment:_ + +## SQLPS + +_Version:_ 1.0 + +## SQLServer PS + +_Version:_ 21.1.18218 + +## MinGW + +_Version:_ 8.1.0
+_Environment:_ * PATH: contains location of the MinGW 'bin' directory - -## TypeScript - -_Version:_ Version 3.6.3
- -## Miniconda - -_Version:_ conda 4.6.14
-_Environment:_ + +## TypeScript + +_Version:_ Version 3.7.4
+ +## Miniconda + +_Version:_ conda 4.6.14
+_Environment:_ * CONDA: contains location of the root of the Miniconda installation - -## Azure CosmosDb Emulator - -_Version:_ 2.5.7.0
+ +## Azure CosmosDb Emulator + +_Version:_ 2.7.2.0
_Location:_ C:\Program Files\Azure Cosmos DB Emulator\ - -## 7zip - + +## 7zip + _Version:_ 19.00
- -## Mercurial - + +## Mercurial + _Version:_
- -## jq - + +## jq + _Version:_ jq-1.6
- -## Inno Setup - -_Version:_ 6.0.2
- -## Perl - + +## Inno Setup + +_Version:_ 6.0.3
+ +## Perl + _Version:_ v5.26.2
- -## GitVersion - -_Version:_ 5.0.1.0
- -## OpenSSL - -_Version:_ 1.1.1c at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.1.1c at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
_Version:_ 1.1.1b at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
- -## Cloud Foundry CLI - -_Version:_ 6.46.1
- -## Vcpkg - -_Version:_ 2019.09.12-nohash
-_Environment:_ -* PATH: contains location of the vcpkg directory + +## GitVersion + +_Version:_ 5.1.3.0
+ +## OpenSSL + +_Version:_ 1.1.1d at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
_Version:_ 1.1.1c at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
+ +## Cloud Foundry CLI + +_Version:_ 6.48.0
+ +## Vcpkg + +_Version:_ 2019.09.12-nohash
+_Environment:_ +* PATH: contains location of the vcpkg directory * VCPKG_INSTALLATION_ROOT: root directory of the vcpkg installation + +## Kubectl + +_Version:_ Client Version: v1.17.0
+_Environment:_ +* PATH: contains location of kubectl.exe + +## Kind + +_Version:_ v0.5.1
+_Environment:_ +* PATH: contains location of kind.exe From f24342d31b78289d03aa400d5a01a8b425578691 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Wed, 15 Jan 2020 21:36:37 +0300 Subject: [PATCH 51/54] update cmake 3.16.2 --- images/linux/scripts/installers/cmake.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/cmake.sh b/images/linux/scripts/installers/cmake.sh index 1f684a4a4..5800ce238 100644 --- a/images/linux/scripts/installers/cmake.sh +++ b/images/linux/scripts/installers/cmake.sh @@ -12,7 +12,7 @@ echo "Checking to see if the installer script has already been run" if command -v cmake; then echo "Example variable already set to $EXAMPLE_VAR" else - curl -sL https://cmake.org/files/v3.15/cmake-3.15.4-Linux-x86_64.sh -o cmakeinstall.sh \ + curl -sL https://cmake.org/files/v3.16/cmake-3.16.2-Linux-x86_64.sh -o cmakeinstall.sh \ && chmod +x cmakeinstall.sh \ && ./cmakeinstall.sh --prefix=/usr/local --exclude-subdir \ && rm cmakeinstall.sh From 1c4a275b64290c300224122fc7497195861f383a Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Thu, 16 Jan 2020 00:14:35 +0000 Subject: [PATCH 52/54] Updating readme file for AzP.20200102.ubuntu16.1 version 20200102 --- images/linux/Ubuntu1604-README.md | 99 ++++++++++++++++--------------- 1 file changed, 52 insertions(+), 47 deletions(-) diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md index 65385ec15..2b7ed4773 100644 --- a/images/linux/Ubuntu1604-README.md +++ b/images/linux/Ubuntu1604-README.md @@ -1,10 +1,10 @@ -# Ubuntu 16.04.6 LTS -The following software is installed on machines with the 20191202.1 update. +# Hosted Ubuntu 1604 Image (Ubuntu 16.04.6 LTS) +The following software is installed on machines in the Hosted Ubuntu 1604 (20200102.1) pool *** - 7-Zip 9.20 -- Ansible (ansible 2.9.1) +- Ansible (ansible 2.9.2) - AzCopy (azcopy 7.3.0-netcore) -- Azure CLI (azure-cli 2.0.77) +- Azure CLI (azure-cli 2.0.78) - Azure CLI (azure-devops 0.16.0) - Basic CLI: - curl @@ -29,9 +29,9 @@ The following software is installed on machines with the 20191202.1 update. - wget - zip - tzdata -- AWS CLI (aws-cli/1.16.293 Python/2.7.12 Linux/4.15.0-1063-azure botocore/1.13.29) +- AWS CLI (aws-cli/1.16.310 Python/2.7.12 Linux/4.15.0-1064-azure botocore/1.13.46) - build-essential -- Clang 6.0 (clang version 6.0.1-svn334776-1\~exp1\~20190309042730.123 (branches/release_60)) +- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042730.123 (branches/release_60)) - CMake (cmake version 3.12.4) - Docker Compose (docker-compose version 1.22.0, build f46880fe) - Docker (Docker version 3.0.8, build 2355349d) @@ -84,26 +84,28 @@ The following software is installed on machines with the 20191202.1 update. - 2.1.302 - 2.1.301 - 2.1.300 -- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.5.6) -- Firefox (Mozilla Firefox 70.0.1) +- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.1) +- Firefox (Mozilla Firefox 71.0) - GNU C++ 7.4.0 -- Git (2.24.0) -- Git Large File Storage (LFS) (2.9.1) +- Git (2.24.1) +- Git Large File Storage (LFS) (2.9.2) - Go 1.9 (go version go1.9.7 linux/amd64) - Go 1.10 (go version go1.10.8 linux/amd64) - Go 1.11 (go version go1.11.12 linux/amd64) - Go 1.12 (go version go1.12.7 linux/amd64) - Go 1.13 (go version go1.13 linux/amd64) -- Google Chrome (Google Chrome 78.0.3904.108 ) -- Google Cloud SDK (272.0.0) +- Google Chrome (Google Chrome 79.0.3945.88 ) +- Chromedriver (ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614})) +- Selenium server standalone +- Google Cloud SDK (274.0.1) - Haskell Cabal (cabal-install version 2.0.0.1 compiled using version 2.0.1.1 of the Cabal library ) - Haskell Cabal (cabal-install version 2.2.0.0 compiled using version 2.2.0.1 of the Cabal library ) - Haskell Cabal (cabal-install version 2.4.1.0 compiled using version 2.4.1.0 of the Cabal library ) -- Haskell Cabal (cabal-install version 3.0.0.0 -compiled using version 3.0.0.0 of the Cabal library ) +- Haskell Cabal (cabal-install version 3.0.1.0 +compiled using version 3.0.1.0 of the Cabal library ) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.0.2) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.2.2) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.4.4) @@ -113,8 +115,8 @@ compiled using version 3.0.0.0 of the Cabal library ) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.6.5) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1) - Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2) -- Heroku (heroku/7.35.0 linux-x64 node-v12.13.0) -- HHVM (HipHop VM 4.33.0 (rel)) +- Heroku (heroku/7.35.1 linux-x64 node-v12.13.0) +- HHVM (HipHop VM 4.38.0 (rel)) - ImageMagick - Azul Zulu OpenJDK (7) (openjdk version "1.7.0_242") - Azul Zulu OpenJDK (8) (openjdk version "1.8.0_232") @@ -122,53 +124,54 @@ compiled using version 3.0.0.0 of the Cabal library ) - Azul Zulu OpenJDK (12) (openjdk version "12.0.2" 2019-07-16) - Ant (Apache Ant(TM) version 1.9.6 compiled on July 20 2018) - Gradle 6.0.1 -- Maven (Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T15:06:16Z)) +- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)) - Kind (v0.5.1) -- kubectl (Client Version: v1.16.3) +- kubectl (Client Version: v1.17.0) - helm (Client: v2.16.1+gbbdfe5e) - Leiningen (Leiningen 2.9.1 on Java 1.8.0_232 OpenJDK 64-Bit Server VM) - Mercurial (Mercurial Distributed SCM (version 4.4.1)) - Miniconda (conda 4.7.12) -- Mono (Mono JIT compiler version 6.4.0.198 (tarball Tue Sep 24 01:20:30 UTC 2019)) +- Mono (Mono JIT compiler version 6.6.0.161 (tarball Tue Dec 10 10:36:47 UTC 2019)) - MySQL (mysql Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using EditLine wrapper) - MySQL Server (user:root password:root) - MS SQL Server Client Tools -- Node.js (v12.13.1) +- Node.js (v12.14.0) - Grunt (grunt-cli v1.2.0) - Gulp (CLI version: 2.2.0 Local version: Unknown) - n (6.1.3) - Parcel (1.12.4) -- TypeScript (Version 3.7.2) -- Webpack (4.41.2) +- TypeScript (Version 3.7.4) +- Webpack (4.41.5) - Webpack CLI (3.3.10) -- Yarn (1.19.2) +- Yarn (1.21.1) - PhantomJS (2.1.1) -- PHP 5.6 (PHP 5.6.40-14+ubuntu16.04.1+deb.sury.org+1 (cli) ) -- PHP 7.0 (PHP 7.0.33-13+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:43:06) ( NTS )) -- PHP 7.1 (PHP 7.1.33-2+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:41:45) ( NTS )) -- PHP 7.2 (PHP 7.2.25-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:41:59) ( NTS )) -- PHP 7.3 (PHP 7.3.12-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:36:56) ( NTS )) +- PHP 5.6 (PHP 5.6.40-15+ubuntu16.04.1+deb.sury.org+1 (cli) ) +- PHP 7.0 (PHP 7.0.33-14+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:55:16) ( NTS )) +- PHP 7.1 (PHP 7.1.33-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:52:59) ( NTS )) +- PHP 7.2 (PHP 7.2.26-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:57:40) ( NTS )) +- PHP 7.3 (PHP 7.3.13-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:48:32) ( NTS )) +- PHP 7.4 (PHP 7.4.1 (cli) (built: Dec 18 2019 14:44:04) ( NTS )) - Composer (Composer version 1.9.1 2019-11-01 17:20:17) -- PHPUnit (PHPUnit 7.5.17 by Sebastian Bergmann and contributors.) +- PHPUnit (PHPUnit 7.5.18 by Sebastian Bergmann and contributors.) - Pollinate - Powershell (PowerShell 6.2.3) -- rustup (1.20.2) -- rust (1.39.0) -- cargo (1.39.0) -- rustfmt (1.4.8-stable) +- rustup (1.21.1) +- rust (1.40.0) +- cargo (1.40.0) +- rustfmt (1.4.9-stable) - clippy (0.0.212) -- rustdoc (1.39.0) +- rustdoc (1.40.0) - bindgen (execute the 0.52.0) -- cbindgen (0.10.0) -- sbt (1.3.4) +- cbindgen (0.12.1) +- sbt (1.3.6) - Sphinx Open Source Search Server - Subversion (svn, version 1.9.3 (r1718519)) -- Terraform (Terraform v0.12.16) +- Terraform (Terraform v0.12.18) - Vcpkg 2019.09.12-unknownhash -- Zeit Now CLI (16.6.0) +- Zeit Now CLI (16.7.0) - Google Repository 58 - Google Play services 49 - Google APIs 24 @@ -231,14 +234,16 @@ the - Az Module (1.6.0) - Az Module (2.3.2) - Az Module (2.6.0) +- Az Module (2.8.0) +- Az Module (3.1.0) - Cached container images - - node:10 (Digest: sha256:be69034700545030c110f67ae22e0584ddd59eeb2af81e4bd7f16f3ba5fa93a6) - - node:12 (Digest: sha256:88ee7d2a5e18d359b4b5750ecb50a9b238ab467397c306aeb9955f4f11be44ce) - - buildpack-deps:stretch (Digest: sha256:5b4b7ee0ae71108d352f8f484b3bc113780068dad21bef7458ac3dd5211cc044) - - debian:9 (Digest: sha256:99768ac883dc7d4f9c8f55dade9abb39afc1a3d737a8457dc5735ef868288cef) - - debian:8 (Digest: sha256:9eaf4a70aeddf435bebc619383f3e3a178b8ad8c1f3948319cdf74b65918d156) - - node:12-alpine (Digest: sha256:b556d8910b851c27c5c8922eeb55d94fe6dbaf878d24bf0c9a8c32ba21cd091a) - - node:10-alpine (Digest: sha256:da8161962573bd6ab16b54a9bfa81a263458e5199074d0678d0556376b22bd22) + - node:10 (Digest: sha256:49f77fd32e8e796f85581a8d2321c2a9f1b084e1f8b9baa02cb28bce49563ad5) + - node:12 (Digest: sha256:f490ebb9c7d5dcf1a8a1e4d3b3a65e133be44d26abb66815ca1612ef69410c51) + - buildpack-deps:stretch (Digest: sha256:d095aae2ecefdc786823e02b2cb0abc62b432202a49abd716c12cce37aee702b) + - debian:9 (Digest: sha256:85c4668abb4f26e913152ba8fd04fca5f1c2345d3e2653855e6bb0acf461ed50) + - debian:8 (Digest: sha256:8fc7649643ca1acd3940706613ea7b170762cfce6e7955a6afb387aa40e9f9ea) + - node:10-alpine (Digest: sha256:8d664f80270a63e0734d38420e97e9f9764a0e9184383640973bded21bfa1382) + - node:12-alpine (Digest: sha256:452cad05f6fd2a6fe03da8b9230c9c4ad356d205e00c1a9c29020c14ac5679f8) - alpine:3.10 (Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a) - jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e) - alpine:3.9 (Digest: sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a) @@ -251,6 +256,8 @@ the - Python 3.6.9 - Python 3.7.5 - Python 3.8.0 + - PyPy 2.7.13 + - PyPy 3.6.9 - Ruby: - Ruby 2.4.6 - Ruby 2.5.5 @@ -259,6 +266,4 @@ the - pip (pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)) - Python3 (Python 3.5.2) - pip3 (pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)) -- PyPy2 ([PyPy 7.1.0 with GCC 6.2.0 20160901]) -- PyPy3 ([PyPy 7.2.0 with GCC 6.2.0 20160901]) - Boost C++ Libraries 1.69.0 From 8185a8bc0c66ddfde68b807cf4bc77a6d30fcba0 Mon Sep 17 00:00:00 2001 From: Alejandro Pauly Date: Thu, 16 Jan 2020 02:21:04 -0500 Subject: [PATCH 53/54] Add -Install to Get-WUInstall call to actually install Windows Updates. --- images/win/scripts/Installers/Install-WindowsUpdates.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-WindowsUpdates.ps1 b/images/win/scripts/Installers/Install-WindowsUpdates.ps1 index 040ee8e02..eec8ef0d7 100644 --- a/images/win/scripts/Installers/Install-WindowsUpdates.ps1 +++ b/images/win/scripts/Installers/Install-WindowsUpdates.ps1 @@ -6,5 +6,5 @@ Write-Host "Run windows updates" Install-Module -Name PSWindowsUpdate -Force -AllowClobber -Get-WUInstall -WindowsUpdate -AcceptAll -UpdateType Software -IgnoreReboot -Get-WUInstall -MicrosoftUpdate -AcceptAll -IgnoreUserInput -IgnoreReboot +Get-WUInstall -WindowsUpdate -AcceptAll -Install -UpdateType Software -IgnoreReboot +Get-WUInstall -MicrosoftUpdate -AcceptAll -Install -IgnoreUserInput -IgnoreReboot From a2115b6b46560d8f26d4310108b401f502247705 Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Fri, 17 Jan 2020 07:54:45 +0000 Subject: [PATCH 54/54] Updating readme file for AzP.20200102.ubuntu18.1 version 20200102 --- images/linux/Ubuntu1804-README.md | 104 ++++++++++++++++-------------- 1 file changed, 55 insertions(+), 49 deletions(-) diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md index b9446357f..a8a25d017 100644 --- a/images/linux/Ubuntu1804-README.md +++ b/images/linux/Ubuntu1804-README.md @@ -1,10 +1,10 @@ -# Ubuntu 18.04.3 LTS -The following software is installed on machines with the 20191202.1 update. +# Hosted Ubuntu 1804 Image (Ubuntu 18.04.3 LTS) +The following software is installed on machines in the Hosted Ubuntu 1804 (v20200102.1) pool *** - 7-Zip 16.02 -- Ansible (ansible 2.9.1) +- Ansible (ansible 2.9.2) - AzCopy (azcopy 7.3.0-netcore) -- Azure CLI (azure-cli 2.0.77) +- Azure CLI (azure-cli 2.0.78) - Azure CLI (azure-devops 0.16.0) - Basic CLI: - curl @@ -29,9 +29,9 @@ The following software is installed on machines with the 20191202.1 update. - wget - zip - tzdata -- AWS CLI (aws-cli/1.16.293 Python/2.7.15+ Linux/5.0.0-1025-azure botocore/1.13.29) +- AWS CLI (aws-cli/1.16.310 Python/2.7.17 Linux/5.0.0-1027-azure botocore/1.13.46) - build-essential -- Clang 6.0 (clang version 6.0.1-svn334776-1\~exp1\~20190309042703.125 (branches/release_60)) +- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042703.125 (branches/release_60)) - CMake (cmake version 3.12.4) - Docker Compose (docker-compose version 1.22.0, build f46880fe) - Docker (Docker version 3.0.8, build 2355349d) @@ -86,24 +86,26 @@ The following software is installed on machines with the 20191202.1 update. - 2.1.302 - 2.1.301 - 2.1.300 -- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.5.6) -- Firefox (Mozilla Firefox 70.0.1) +- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.1) +- Firefox (Mozilla Firefox 71.0) - GNU C++ 7.4.0 -- Git (2.24.0) -- Git Large File Storage (LFS) (2.9.1) +- Git (2.24.1) +- Git Large File Storage (LFS) (2.9.2) - Go 1.11 (go version go1.11.12 linux/amd64) - Go 1.12 (go version go1.12.7 linux/amd64) - Go 1.13 (go version go1.13 linux/amd64) -- Google Chrome (Google Chrome 78.0.3904.108 ) -- Google Cloud SDK (272.0.0) +- Google Chrome (Google Chrome 79.0.3945.88 ) +- Chromedriver (ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614})) +- Selenium server standalone +- Google Cloud SDK (274.0.1) - Haskell Cabal (cabal-install version 2.0.0.1 compiled using version 2.0.1.1 of the Cabal library ) - Haskell Cabal (cabal-install version 2.2.0.0 compiled using version 2.2.0.1 of the Cabal library ) - Haskell Cabal (cabal-install version 2.4.1.0 compiled using version 2.4.1.0 of the Cabal library ) -- Haskell Cabal (cabal-install version 3.0.0.0 -compiled using version 3.0.0.0 of the Cabal library ) +- Haskell Cabal (cabal-install version 3.0.1.0 +compiled using version 3.0.1.0 of the Cabal library ) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.0.2) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.2.2) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.4.4) @@ -113,59 +115,61 @@ compiled using version 3.0.0.0 of the Cabal library ) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.6.5) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1) - Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2) -- Heroku (heroku/7.35.0 linux-x64 node-v12.13.0) -- HHVM (HipHop VM 4.33.0 (rel)) +- Heroku (heroku/7.35.1 linux-x64 node-v12.13.0) +- HHVM (HipHop VM 4.38.0 (rel)) - ImageMagick - Azul Zulu OpenJDK (7) (openjdk version "1.7.0_242") - Azul Zulu OpenJDK (8) (openjdk version "1.8.0_232") - Azul Zulu OpenJDK (11) (openjdk version "11.0.5" 2019-10-15 LTS) - Azul Zulu OpenJDK (12) (openjdk version "12.0.2" 2019-07-16) - Ant (Apache Ant(TM) version 1.10.5 compiled on March 28 2019) -- Gradle 5.6.2 -- Maven (Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T19:00:29Z)) -- kubectl (Client Version: v1.16.0) -- helm (Client: v2.14.3+g0e7f3b6) -- Leiningen (Leiningen 2.9.1 on Java 1.8.0_222 OpenJDK 64-Bit Server VM) +- Gradle 6.0.1 +- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)) +- Kind (v0.5.1) +- kubectl (Client Version: v1.17.0) +- helm (Client: v2.16.1+gbbdfe5e) +- Leiningen (Leiningen 2.9.1 on Java 1.8.0_232 OpenJDK 64-Bit Server VM) - Mercurial (Mercurial Distributed SCM (version 4.5.3)) - Miniconda (conda 4.7.12) -- Mono (Mono JIT compiler version 6.4.0.198 (tarball Tue Sep 24 01:21:28 UTC 2019)) +- Mono (Mono JIT compiler version 6.6.0.161 (tarball Tue Dec 10 10:36:32 UTC 2019)) - MySQL (mysql Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using EditLine wrapper) - MySQL Server (user:root password:root) - MS SQL Server Client Tools -- Node.js (v12.13.1) +- Node.js (v12.14.0) - Grunt (grunt-cli v1.2.0) - Gulp (CLI version: 2.2.0 Local version: Unknown) - n (6.1.3) - Parcel (1.12.4) -- TypeScript (Version 3.7.2) -- Webpack (4.41.2) +- TypeScript (Version 3.7.4) +- Webpack (4.41.5) - Webpack CLI (3.3.10) -- Yarn (1.19.2) +- Yarn (1.21.1) - PhantomJS (2.1.1) -- PHP 7.1 (PHP 7.1.33-2+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:42:07) ( NTS )) -- PHP 7.2 (PHP 7.2.25-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:42:26) ( NTS )) -- PHP 7.3 (PHP 7.3.12-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:37:16) ( NTS )) +- PHP 7.1 (PHP 7.1.33-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:53:18) ( NTS )) +- PHP 7.2 (PHP 7.2.26-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:58:00) ( NTS )) +- PHP 7.3 (PHP 7.3.13-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:48:49) ( NTS )) +- PHP 7.4 (PHP 7.4.1 (cli) (built: Dec 18 2019 14:44:22) ( NTS )) - Composer (Composer version 1.9.1 2019-11-01 17:20:17) -- PHPUnit (PHPUnit 7.5.17 by Sebastian Bergmann and contributors.) +- PHPUnit (PHPUnit 7.5.18 by Sebastian Bergmann and contributors.) - Pollinate - Powershell (PowerShell 6.2.3) -- rustup (1.20.2) -- rust (1.39.0) -- cargo (1.39.0) -- rustfmt (1.4.8-stable) +- rustup (1.21.1) +- rust (1.40.0) +- cargo (1.40.0) +- rustfmt (1.4.9-stable) - clippy (0.0.212) -- rustdoc (1.39.0) +- rustdoc (1.40.0) - bindgen (execute the 0.52.0) -- cbindgen (0.10.0) -- sbt (1.3.4) +- cbindgen (0.12.1) +- sbt (1.3.6) - Sphinx Open Source Search Server - Subversion (svn, version 1.9.7 (r1800392)) -- Terraform (Terraform v0.12.16) +- Terraform (Terraform v0.12.18) - Vcpkg 2019.09.12-unknownhash -- Zeit Now CLI (16.6.0) +- Zeit Now CLI (16.7.0) - Google Repository 58 - Google Play services 49 - Google APIs 24 @@ -222,14 +226,16 @@ the - Az Module (1.6.0) - Az Module (2.3.2) - Az Module (2.6.0) +- Az Module (2.8.0) +- Az Module (3.1.0) - Cached container images - - node:10 (Digest: sha256:be69034700545030c110f67ae22e0584ddd59eeb2af81e4bd7f16f3ba5fa93a6) - - node:12 (Digest: sha256:88ee7d2a5e18d359b4b5750ecb50a9b238ab467397c306aeb9955f4f11be44ce) - - buildpack-deps:stretch (Digest: sha256:5b4b7ee0ae71108d352f8f484b3bc113780068dad21bef7458ac3dd5211cc044) - - debian:9 (Digest: sha256:99768ac883dc7d4f9c8f55dade9abb39afc1a3d737a8457dc5735ef868288cef) - - debian:8 (Digest: sha256:9eaf4a70aeddf435bebc619383f3e3a178b8ad8c1f3948319cdf74b65918d156) - - node:12-alpine (Digest: sha256:b556d8910b851c27c5c8922eeb55d94fe6dbaf878d24bf0c9a8c32ba21cd091a) - - node:10-alpine (Digest: sha256:da8161962573bd6ab16b54a9bfa81a263458e5199074d0678d0556376b22bd22) + - node:10 (Digest: sha256:49f77fd32e8e796f85581a8d2321c2a9f1b084e1f8b9baa02cb28bce49563ad5) + - node:12 (Digest: sha256:f490ebb9c7d5dcf1a8a1e4d3b3a65e133be44d26abb66815ca1612ef69410c51) + - buildpack-deps:stretch (Digest: sha256:d095aae2ecefdc786823e02b2cb0abc62b432202a49abd716c12cce37aee702b) + - debian:9 (Digest: sha256:85c4668abb4f26e913152ba8fd04fca5f1c2345d3e2653855e6bb0acf461ed50) + - debian:8 (Digest: sha256:8fc7649643ca1acd3940706613ea7b170762cfce6e7955a6afb387aa40e9f9ea) + - node:10-alpine (Digest: sha256:8d664f80270a63e0734d38420e97e9f9764a0e9184383640973bded21bfa1382) + - node:12-alpine (Digest: sha256:452cad05f6fd2a6fe03da8b9230c9c4ad356d205e00c1a9c29020c14ac5679f8) - alpine:3.10 (Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a) - jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e) - alpine:3.9 (Digest: sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a) @@ -242,14 +248,14 @@ the - Python 3.6.9 - Python 3.7.5 - Python 3.8.0 + - PyPy 2.7.13 + - PyPy 3.6.9 - Ruby: - Ruby 2.4.6 - Ruby 2.5.5 - Ruby 2.6.3 -- Python (Python 2.7.15+) +- Python (Python 2.7.17) - pip (pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)) - Python3 (Python 3.6.9) - pip3 (pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)) -- PyPy2 ([PyPy 7.1.0 with GCC 6.2.0 20160901]) -- PyPy3 ([PyPy 7.2.0 with GCC 6.2.0 20160901]) - Boost C++ Libraries 1.69.0