From e5002c0d6c330b88a54a2208717eadda01c75282 Mon Sep 17 00:00:00 2001 From: "Christoph Bergmeister [MVP]" Date: Mon, 27 Apr 2020 10:40:52 +0100 Subject: [PATCH 01/51] Upgrade to Az 3.8 --- images/win/scripts/Installers/Install-AzureModules.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-AzureModules.ps1 b/images/win/scripts/Installers/Install-AzureModules.ps1 index 5a67584a1..3f41a7743 100644 --- a/images/win/scripts/Installers/Install-AzureModules.ps1 +++ b/images/win/scripts/Installers/Install-AzureModules.ps1 @@ -39,6 +39,7 @@ $psAzureModulesToInstall = @{ "2.6.0" "3.1.0" "3.5.0" + "3.8.0" ) } @@ -65,4 +66,4 @@ foreach($psmoduleName in $psAzureModulesToInstall.Keys) # Add AzureRM and Azure modules to the PSModulePath $finalModulePath = '{0};{1};{2}' -f "${installPSModulePath}\azurerm_2.1.0", "${installPSModulePath}\azure_2.1.0", $env:PSModulePath -[Environment]::SetEnvironmentVariable("PSModulePath", $finalModulePath, "Machine") \ No newline at end of file +[Environment]::SetEnvironmentVariable("PSModulePath", $finalModulePath, "Machine") From 3df56601847b21a825d52376a0dde8276195210a Mon Sep 17 00:00:00 2001 From: "Christoph Bergmeister [MVP]" Date: Mon, 27 Apr 2020 12:38:45 +0100 Subject: [PATCH 02/51] Update Validate-AzureModules.ps1 --- images/win/scripts/Installers/Validate-AzureModules.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Validate-AzureModules.ps1 b/images/win/scripts/Installers/Validate-AzureModules.ps1 index a7be9ef11..38c692b4d 100644 --- a/images/win/scripts/Installers/Validate-AzureModules.ps1 +++ b/images/win/scripts/Installers/Validate-AzureModules.ps1 @@ -80,7 +80,7 @@ Validate-AzureModule -ModuleName AzureRM -ModuleVersions $azurermVersions $azureVersions = "2.1.0", "3.8.0", "4.2.1", "5.1.1", "5.3.0" Validate-AzureModule -ModuleName Azure -ModuleVersions $azureVersions -$azVersions = "1.0.0", "1.6.0", "2.3.2", "2.6.0", "3.1.0", "3.5.0" +$azVersions = "1.0.0", "1.6.0", "2.3.2", "2.6.0", "3.1.0", "3.5.0", "3.8.0" Validate-AzureModule -ModuleName Az -ModuleVersions $azVersions # Get default modules version @@ -93,4 +93,4 @@ $env:PSModulePath = $env:PSModulePath + ";C:\Modules" # Adding description of the software to Markdown Add-ModuleDescription -DefaultModule $defaultAzureRMModule -ModuleName AzureRM Add-ModuleDescription -DefaultModule $defaultAzureModule -ModuleName Azure -Add-ModuleDescription -ModuleName Az \ No newline at end of file +Add-ModuleDescription -ModuleName Az From c0df07efc8dc99a5673de5df5c8a5861b1d4dc18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= Date: Mon, 27 Apr 2020 19:31:03 +0200 Subject: [PATCH 03/51] Fix formatting in doc-string for Rust for Windows-image. Ensure output in ` images/win/Windows2019-Readme.md` looks proper. [Live in master right now](https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md#rust-64-bit), it looks kinda bad. --- images/win/scripts/Installers/Validate-Rust.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Validate-Rust.ps1 b/images/win/scripts/Installers/Validate-Rust.ps1 index e80a72493..d23d91d8f 100644 --- a/images/win/scripts/Installers/Validate-Rust.ps1 +++ b/images/win/scripts/Installers/Validate-Rust.ps1 @@ -26,8 +26,8 @@ $Version = $Matches[0] $SoftwareName = "Rust (64-bit)" $Description = @" #### $Version -_Location:_ $RustPath _Environment:_ +* _Location:_ $RustPath * PATH: contains the location of rustc.exe "@ From 02060533d38161f2e07dcbc5e56d9101a7bbba82 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Wed, 29 Apr 2020 12:46:23 +0500 Subject: [PATCH 04/51] Don\'t create backup sed file (#792) Co-authored-by: Sergey Dolin --- images/linux/scripts/helpers/etc-environment.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/helpers/etc-environment.sh b/images/linux/scripts/helpers/etc-environment.sh index 9637f242e..24801723e 100644 --- a/images/linux/scripts/helpers/etc-environment.sh +++ b/images/linux/scripts/helpers/etc-environment.sh @@ -26,7 +26,7 @@ function replaceEtcEnvironmentVariable { variable_value="$2" # modify /etc/environemnt in place by replacing a string that begins with variable_name - sudo sed -ie "s%^${variable_name}=.*$%${variable_name}=\"${variable_value}\"%" /etc/environment + sudo sed -i -e "s%^${variable_name}=.*$%${variable_name}=\"${variable_value}\"%" /etc/environment } function setEtcEnvironmentVariable { From 7b8624f6911573fea1c86788b14e5ade31ae4760 Mon Sep 17 00:00:00 2001 From: Alena Sviridenko Date: Wed, 29 Apr 2020 10:47:27 +0300 Subject: [PATCH 05/51] Updated README with new rules of tool installation. (#793) * Update README with new rules of tool installation. * fixed typo * fix notes * another minor fix * fixed articles * fixed license line --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 5ccfdf2e7..69b0c9201 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,11 @@ In general, these are the guidelines we consider when deciding what to pre-insta - Tools and versions will typically be removed 6 months after they are deprecated or have reached end-of-life. - If a tool can be installed during the build, we will evaluate how much time is saved and how much space is used by having the tool pre-installed. +- MIT, Apache, and GNU licenses are ok, anything else we'll have to check with lawyers. +- If a tool takes much space we will evaluate space usage and provide a decision if this tool can be pre-installed. +- If a tool requires the support of more than one version, we will consider the cost of this maintenance, how often new versions bring dangerous updates. + +**Note:** For new tools, please, create an issue and get an approval from us to add this tool to the image before creating the pull request. ## Updates to virtual environments *Cadence* From 5cfbfcb2e6dd94aa5b4eef5572a775b52ec36176 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 29 Apr 2020 13:00:56 +0300 Subject: [PATCH 06/51] Add Python toolcache installation from Github releases for Ubuntu (#704) Change logic to install Python to Ubuntu images to use GitHub releases from https://github.com/actions/python-versions --- .../scripts/installers/Install-Toolset.ps1 | 55 ++++++++++++++++ .../scripts/installers/Validate-Toolset.ps1 | 62 +++++++++++++++++++ .../scripts/installers/hosted-tool-cache.sh | 6 -- .../scripts/installers/test-toolcache.sh | 1 - images/linux/toolcache-1604.json | 3 - images/linux/toolcache-1804.json | 3 - images/linux/toolset-1604.json | 18 ++++++ images/linux/toolset-1804.json | 18 ++++++ images/linux/ubuntu1604.json | 18 ++++++ images/linux/ubuntu1804.json | 18 ++++++ 10 files changed, 189 insertions(+), 13 deletions(-) create mode 100644 images/linux/scripts/installers/Install-Toolset.ps1 create mode 100644 images/linux/scripts/installers/Validate-Toolset.ps1 create mode 100644 images/linux/toolset-1604.json create mode 100644 images/linux/toolset-1804.json diff --git a/images/linux/scripts/installers/Install-Toolset.ps1 b/images/linux/scripts/installers/Install-Toolset.ps1 new file mode 100644 index 000000000..518a1f9bc --- /dev/null +++ b/images/linux/scripts/installers/Install-Toolset.ps1 @@ -0,0 +1,55 @@ +################################################################################ +## File: Install-Toolset.ps1 +## Team: CI-Build +## Desc: Install toolset +################################################################################ + +Function Install-Asset { + param( + [Parameter(Mandatory = $true)] + [object] $ReleaseAsset + ) + + Write-Host "Download $($ReleaseAsset.filename)" + wget $ReleaseAsset.download_url -nv --retry-connrefused --tries=10 + + Write-Host "Extract $($ReleaseAsset.filename) content..." + $assetFolderPath = Join-Path $env:INSTALLER_SCRIPT_FOLDER $($ReleaseAsset.filename) + New-Item -ItemType Directory -Path $assetFolderPath + tar -xzf $ReleaseAsset.filename -C $assetFolderPath + + Write-Host "Invoke installation script..." + Push-Location -Path $assetFolderPath + Invoke-Expression "bash ./setup.sh" + Pop-Location +} + +$ErrorActionPreference = "Stop" + +# Get toolset content +$toolsetJson = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw +$tools = ConvertFrom-Json -InputObject $toolsetJson | Select-Object -ExpandProperty toolcache + +foreach ($tool in $tools) { + # Get versions manifest for current tool + $assets = Invoke-RestMethod $tool.url + + # Get github release asset for each version + foreach ($toolVersion in $tool.versions) { + $asset = $assets | Where-Object version -like $toolVersion ` + | Select-Object -ExpandProperty files ` + | Where-Object { ($_.platform -eq $tool.platform) -and ($_.platform_version -eq $tool.platform_version)} ` + | Select-Object -First 1 + + Write-Host "Installing $($tool.name) $toolVersion $($tool.arch)..." + if ($asset -ne $null) { + Install-Asset -ReleaseAsset $asset + } + else { + Write-Host "Asset was not found in versions manifest" + exit 1 + } + } +} + +chown -R "$($env:SUDO_USER):$($env:SUDO_USER)" /opt/hostedtoolcache/Python \ No newline at end of file diff --git a/images/linux/scripts/installers/Validate-Toolset.ps1 b/images/linux/scripts/installers/Validate-Toolset.ps1 new file mode 100644 index 000000000..13847465e --- /dev/null +++ b/images/linux/scripts/installers/Validate-Toolset.ps1 @@ -0,0 +1,62 @@ +################################################################################ +## File: Validate-Toolset.ps1 +## Team: CI-Build +## Desc: Validate Toolset +################################################################################ + +function Run-ExecutableTests { + param ( + [Parameter(Mandatory)] [string[]] $Executables, + [Parameter(Mandatory)] [string] $ToolPath + ) + + foreach ($executable in $Executables) { + $executablePath = Join-Path $ToolPath $executable + + Write-Host "Check $executable..." + if (Test-Path $executablePath) { + Write-Host "$executable is successfully installed: $(& $executablePath --version)" + } else { + Write-Host "$executablePath is not installed!" + exit 1 + } + } +} + +$ErrorActionPreference = "Stop" + +# Define executables for cached tools +$toolsExecutables = @{ Python = @("python", "bin/pip") } + +# Get toolset content +$toolsetJson = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw +$tools = ConvertFrom-Json -InputObject $toolsetJson | Select-Object -ExpandProperty toolcache + +foreach($tool in $tools) { + Invoke-Expression "bash -c `"source $env:HELPER_SCRIPTS/document.sh; DocumentInstalledItem '$($tool.name):'`"" + + $toolPath = Join-Path $env:AGENT_TOOLSDIRECTORY $tool.name + # Get executables for current tool + $toolExecs = $toolsExecutables[$tool.name] + + foreach ($version in $tool.versions) { + # Check if version folder exists + $expectedVersionPath = Join-Path $toolPath $version + if (-not (Test-Path $expectedVersionPath)) { + Write-Host "Expected $($tool.name) $version folder is not found!" + exit 1 + } + + # Take latest installed version in case if toolset version contains wildcards + $foundVersion = Get-Item $expectedVersionPath ` + | Sort-Object -Property {[version]$_.name} -Descending ` + | Select-Object -First 1 + $foundVersionPath = Join-Path $foundVersion $tool.arch + + Write-Host "Run validation test for $($tool.name)($($tool.arch)) $($foundVersion.name) executables..." + Run-ExecutableTests -Executables $toolExecs -ToolPath $foundVersionPath + + # Add tool version to documentation + Invoke-Expression "bash -c `"source $env:HELPER_SCRIPTS/document.sh; DocumentInstalledItemIndent '$($tool.name) $($foundVersion.name)'`"" + } +} \ No newline at end of file diff --git a/images/linux/scripts/installers/hosted-tool-cache.sh b/images/linux/scripts/installers/hosted-tool-cache.sh index f9e5b918a..a0ff4466b 100644 --- a/images/linux/scripts/installers/hosted-tool-cache.sh +++ b/images/linux/scripts/installers/hosted-tool-cache.sh @@ -49,12 +49,6 @@ done; popd -DocumentInstalledItem "Python:" -pythons=$(ls $AGENT_TOOLSDIRECTORY/Python) -for python in $pythons; do - DocumentInstalledItemIndent "Python $python" -done; - DocumentInstalledItem "Ruby:" rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby) for ruby in $rubys; do diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh index 2601db4b4..53ed0715e 100644 --- a/images/linux/scripts/installers/test-toolcache.sh +++ b/images/linux/scripts/installers/test-toolcache.sh @@ -69,6 +69,5 @@ 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/python -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 40f4cd9d4..96638f0f4 100644 --- a/images/linux/toolcache-1604.json +++ b/images/linux/toolcache-1604.json @@ -1,7 +1,4 @@ { - "@actions/toolcache-python-ubuntu-1604-x64": [ - "2.7", "3.5", "3.6", "3.7", "3.8" - ], "@actions/toolcache-ruby-ubuntu-1604-x64": [ "2.4", "2.5", "2.6", "2.7" ], diff --git a/images/linux/toolcache-1804.json b/images/linux/toolcache-1804.json index 26ad4d98e..13c697851 100644 --- a/images/linux/toolcache-1804.json +++ b/images/linux/toolcache-1804.json @@ -1,7 +1,4 @@ { - "@actions/toolcache-python-ubuntu-1804-x64": [ - "2.7", "3.5", "3.6", "3.7", "3.8" - ], "@actions/toolcache-ruby-ubuntu-1804-x64": [ "2.4", "2.5", "2.6", "2.7" ], diff --git a/images/linux/toolset-1604.json b/images/linux/toolset-1604.json new file mode 100644 index 000000000..e3953f81b --- /dev/null +++ b/images/linux/toolset-1604.json @@ -0,0 +1,18 @@ +{ + "toolcache": [ + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "platform" : "linux", + "platform_version": "16.04", + "arch": "x64", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ] + } + ] +} \ No newline at end of file diff --git a/images/linux/toolset-1804.json b/images/linux/toolset-1804.json new file mode 100644 index 000000000..a854ae6b6 --- /dev/null +++ b/images/linux/toolset-1804.json @@ -0,0 +1,18 @@ +{ + "toolcache": [ + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "platform" : "linux", + "platform_version": "18.04", + "arch": "x64", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ] + } + ] +} \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index 62081af54..cc4eb8f59 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -269,6 +269,11 @@ "source": "{{template_dir}}/toolcache-1604.json", "destination": "{{user `installer_script_folder`}}/toolcache.json" }, + { + "type": "file", + "source": "{{template_dir}}/toolset-1604.json", + "destination": "{{user `installer_script_folder`}}/toolset.json" + }, { "type": "shell", "scripts":[ @@ -287,6 +292,19 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/Install-Toolset.ps1", + "{{template_dir}}/scripts/installers/Validate-Toolset.ps1" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" + ], + "execute_command": "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" + }, { "type": "shell", "scripts":[ diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 41b758976..b50efb289 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -273,6 +273,11 @@ "source": "{{template_dir}}/toolcache-1804.json", "destination": "{{user `installer_script_folder`}}/toolcache.json" }, + { + "type": "file", + "source": "{{template_dir}}/toolset-1804.json", + "destination": "{{user `installer_script_folder`}}/toolset.json" + }, { "type": "shell", "scripts":[ @@ -291,6 +296,19 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/Install-Toolset.ps1", + "{{template_dir}}/scripts/installers/Validate-Toolset.ps1" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" + ], + "execute_command": "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" + }, { "type": "shell", "scripts":[ From 612ed30d53df8627dfb365ca501afdbee9867b37 Mon Sep 17 00:00:00 2001 From: Dariy Nurgaleev <50947177+Darleev@users.noreply.github.com> Date: Wed, 29 Apr 2020 22:11:58 +0700 Subject: [PATCH 07/51] Software list: "do not change" label. (#796) * added_advises * change place for hided stirng. * changed to more direct message. --- images/linux/scripts/installers/1604/preparemetadata.sh | 1 + images/linux/scripts/installers/1804/preparemetadata.sh | 3 ++- images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 | 1 + images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/1604/preparemetadata.sh b/images/linux/scripts/installers/1604/preparemetadata.sh index 45cfcabfa..a26e10968 100644 --- a/images/linux/scripts/installers/1604/preparemetadata.sh +++ b/images/linux/scripts/installers/1604/preparemetadata.sh @@ -7,6 +7,7 @@ source $HELPER_SCRIPTS/document.sh +WriteItem "" 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 45cfcabfa..e3304945a 100644 --- a/images/linux/scripts/installers/1804/preparemetadata.sh +++ b/images/linux/scripts/installers/1804/preparemetadata.sh @@ -7,6 +7,7 @@ source $HELPER_SCRIPTS/document.sh +WriteItem "" AddTitle "$(lsb_release -ds)" WriteItem "The following software is installed on machines with the $IMAGE_VERSION update." -WriteItem "***" +WriteItem "***" \ No newline at end of file diff --git a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 index d8fa7a059..1bc8fbe9b 100644 --- a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 @@ -135,6 +135,7 @@ wmic logicaldisk get size,freespace,caption # Adding description of the software to Markdown $Content = @" + # Windows Server 2016 The following software is installed on machines with the $env:ImageVersion update. diff --git a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 index 92e153d73..d32c0dc41 100644 --- a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 @@ -129,6 +129,7 @@ wmic logicaldisk get size,freespace,caption # Adding description of the software to Markdown $Content = @" + # Windows Server 2019 The following software is installed on machines with the $env:ImageVersion update. From b58720bb05a6b38a52f2c12617056a4729eeaa99 Mon Sep 17 00:00:00 2001 From: Nikita Bykov <49442273+nikita-bykov@users.noreply.github.com> Date: Thu, 30 Apr 2020 09:26:06 +0300 Subject: [PATCH 08/51] Fail fast in image generation if not enough disk space for customers (#767) * added checking free disk space Co-authored-by: Nikita Bykov --- .../scripts/installers/validate-disk-space.sh | 14 ++++++++++++++ images/linux/ubuntu1604.json | 6 ++++++ images/linux/ubuntu1804.json | 6 ++++++ images/win/Windows2016-Azure.json | 6 ++++++ images/win/Windows2019-Azure.json | 6 ++++++ .../win/scripts/Installers/Validate-DiskSpace.ps1 | 14 ++++++++++++++ 6 files changed, 52 insertions(+) create mode 100644 images/linux/scripts/installers/validate-disk-space.sh create mode 100644 images/win/scripts/Installers/Validate-DiskSpace.ps1 diff --git a/images/linux/scripts/installers/validate-disk-space.sh b/images/linux/scripts/installers/validate-disk-space.sh new file mode 100644 index 000000000..208a0e0f6 --- /dev/null +++ b/images/linux/scripts/installers/validate-disk-space.sh @@ -0,0 +1,14 @@ +#!/bin/bash +################################################################################ +## File: validate-disk-space.sh +## Desc: Validate free disk space +################################################################################ + +availableSpaceMB=$(df / -hm | sed 1d | awk '{ print $4}') +minimumFreeSpaceMB=$(( 18*1024 )) + +echo "Available disk space: $availableSpaceMB MB" +if [ $availableSpaceMB -le $minimumFreeSpaceMB ]; then + echo "Not enough disk space on the image (minimum available space: $minimumFreeSpaceMB MB)" + exit 1 +fi \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index cc4eb8f59..a4f138db7 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -324,6 +324,12 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/validate-disk-space.sh" + ] + }, { "type": "file", "source": "{{user `metadata_file`}}", diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index b50efb289..f72233e61 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -328,6 +328,12 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/validate-disk-space.sh" + ] + }, { "type": "file", "source": "{{user `metadata_file`}}", diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 55a1e611e..dce3ccd64 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -883,6 +883,12 @@ "{{ template_dir }}/scripts/Installers/Validate-Kind.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1" + ] + }, { "type": "file", "source": "C:\\InstalledSoftware.md", diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index ab28c810c..8dc78665c 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -886,6 +886,12 @@ "{{ template_dir }}/scripts/Installers/Validate-AliyunCli.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1" + ] + }, { "type": "file", "source": "C:\\InstalledSoftware.md", diff --git a/images/win/scripts/Installers/Validate-DiskSpace.ps1 b/images/win/scripts/Installers/Validate-DiskSpace.ps1 new file mode 100644 index 000000000..d5b4f9966 --- /dev/null +++ b/images/win/scripts/Installers/Validate-DiskSpace.ps1 @@ -0,0 +1,14 @@ +################################################################################ +## File: Validate-DiskSpace.ps1 +## Desc: Validate free disk space +################################################################################ + +$availableSpaceMB = [math]::Round((Get-PSDrive -Name C).Free / 1MB) +$minimumFreeSpaceMB = 15 * 1024 + +Write-Host "Available disk space: $availableSpaceMB MB" +if ($availableSpaceMB -le $minimumFreeSpaceMB) +{ + Write-Host "Not enough disk space on the image (minimum available space: $minimumFreeSpaceMB MB)" + exit 1 +} From 6d188447960163702be27246d3f7a2844748ea5f Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Thu, 30 Apr 2020 10:53:49 +0300 Subject: [PATCH 09/51] Add FS-iSCSITarget-Server (#805) --- .../win/scripts/Installers/Windows2016/Initialize-VM.ps1 | 9 +++++++++ .../win/scripts/Installers/Windows2019/Initialize-VM.ps1 | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 index 1bc8fbe9b..202c9b480 100644 --- a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 @@ -61,6 +61,15 @@ Install-WindowsFeature -Name NET-Framework-45-Features -IncludeAllSubFeature Install-WindowsFeature -Name BITS -IncludeAllSubFeature Install-WindowsFeature -Name DSC-Service +# Install FS-iSCSITarget-Server +$fsResult = Install-WindowsFeature -Name FS-iSCSITarget-Server -IncludeAllSubFeature -IncludeManagementTools +if ( $fsResult.Success ) { + Write-Host "FS-iSCSITarget-Server has been successfully installed" +} else { + Write-Host "Failed to install FS-iSCSITarget-Server" + exit 1 +} + Write-Host "Disable UAC" Disable-UserAccessControl diff --git a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 index d32c0dc41..12feeabeb 100644 --- a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 @@ -57,6 +57,14 @@ Install-WindowsFeature -Name NET-Framework-Features -IncludeAllSubFeature # Explicitly install all 4.7 sub features to include ASP.Net. # As of 1/16/2019, WinServer 19 lists .Net 4.7 as NET-Framework-45-Features Install-WindowsFeature -Name NET-Framework-45-Features -IncludeAllSubFeature +# Install FS-iSCSITarget-Server +$fsResult = Install-WindowsFeature -Name FS-iSCSITarget-Server -IncludeAllSubFeature -IncludeManagementTools +if ( $fsResult.Success ) { + Write-Host "FS-iSCSITarget-Server has been successfully installed" +} else { + Write-Host "Failed to install FS-iSCSITarget-Server" + exit 1 +} Write-Host "Disable UAC" Disable-UserAccessControl From 42fefbe9fe7709df12fca3e4c84407c6684937cd Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Thu, 30 Apr 2020 10:44:57 +0000 Subject: [PATCH 10/51] Updating readme file for win19 version 20200426.1 --- images/win/Windows2019-Readme.md | 43 +++++++++++++++++++------------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index c6d678e4b..bee43de27 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -1,6 +1,6 @@ # Windows Server 2019 -The following software is installed on machines with the 20200416.1 update. +The following software is installed on machines with the 20200426.1 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -25,7 +25,7 @@ _Environment:_ ## Helm -_Version:_ v3.1.2+gd878d4d
+_Version:_ v3.2.0+ge11b7ce
_Environment:_ * PATH: contains location of helm @@ -145,8 +145,8 @@ _Environment:_ ## Microsoft SSDT Visual Studio 2019 Extensions -_Microsoft Analysis Services Projects Version:_ 2.9.7
-_SQL Server Integration Services Projects Version:_ 3.5
+_Microsoft Analysis Services Projects Version:_ 2.9.8
+_SQL Server Integration Services Projects Version:_ 3.6
_Microsoft Reporting Services Projects Version:_ 2.6.5
## .NET 4.8 @@ -161,8 +161,8 @@ _WDK Visual Studio Extension Version:_ 10.0.18346.0
## Azure Service Fabric -_SDK Version:_ 4.0.470.9590
-_Runtime Version:_ 7.0.470.9590 +_SDK Version:_ 4.1.409.9590
+_Runtime Version:_ 7.1.409.9590 ## WinAppDriver @@ -170,7 +170,7 @@ _Version:_ 1.1.1809.18001
## AWS CLI -_Version:_ aws-cli 2.0.7
+_Version:_ aws-cli 2.0.9
## Android SDK Build Tools @@ -421,10 +421,14 @@ _Description:_ .NET has been configured to use TLS 1.2 by default ## Azure CLI -_Version:_ 2.3.1 +_Version:_ 2.4.0 _Environment:_ * PATH: contains location of az.cmd +## AWS SAM CLI + +_Version:_ 0.47.0
+ ## Azure DevOps Cli extension _Version:_ azure-devops 0.18.0 @@ -439,7 +443,7 @@ _Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
## Ruby -_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 2.7.6.2
+_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 3.1.2
## OpenSSL @@ -451,7 +455,7 @@ _Version:_ v5.30.2
## Git -_Version:_ 2.26.1
+_Version:_ 2.26.2
_Environment:_ * PATH: contains location of git.exe @@ -515,14 +519,14 @@ _Environment:_ ## Rust (64-bit) -#### 1.42.0 +#### 1.43.0 _Location:_ C:\Rust\.cargo\bin _Environment:_ * PATH: contains the location of rustc.exe ## Julia (x64) -_Version:_ 1.4.0
+_Version:_ 1.4.1
## Subversion @@ -537,12 +541,12 @@ _Environment:_ ## Google Chrome _version:_ -81.0.4044.113 +81.0.4044.122 ## Microsoft Edge _version:_ -81.0.416.53 +81.0.416.64 ## Mozilla Firefox @@ -579,7 +583,7 @@ _Environment:_ #### Microsoft Edge Driver _version:_ -81.0.416.53 +81.0.416.64 _Environment:_ * EdgeWebDriver: location of msedgedriver.exe @@ -659,7 +663,9 @@ _Environment:_ _SDK:_ * 3.1.201 C:\Program Files\dotnet\sdk\3.1.201 +* 3.1.200 C:\Program Files\dotnet\sdk\3.1.200 * 3.1.103 C:\Program Files\dotnet\sdk\3.1.103 +* 3.1.102 C:\Program Files\dotnet\sdk\3.1.102 * 3.1.101 C:\Program Files\dotnet\sdk\3.1.101 * 3.1.100 C:\Program Files\dotnet\sdk\3.1.100 * 2.2.402 C:\Program Files\dotnet\sdk\2.2.402 @@ -721,6 +727,7 @@ _SDK:_ _Runtime:_ * 3.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.3 +* 3.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.2 * 3.1.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.1 * 3.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.0 * 2.2.8 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.8 @@ -836,7 +843,7 @@ _Version_: 2.8.4+ff0de50053 - shim 0.8.1
## Kubectl -_Version:_ Client Version: v1.18.1
+_Version:_ Client Version: v1.18.2
_Environment:_ * PATH: contains location of kubectl.exe @@ -848,11 +855,11 @@ _Environment:_ ## bazel -_Version:_ bazel 3.0.0
+_Version:_ bazel 3.1.0
## bazelisk -_Version:_ 1.3.0
+_Version:_ 1.4.0
## Alibaba Cloud CLI From 0413a02d9a610b9989d6abe171affc4d27833730 Mon Sep 17 00:00:00 2001 From: Maksim Petrov <47208721+vmapetr@users.noreply.github.com> Date: Thu, 30 Apr 2020 18:11:40 +0300 Subject: [PATCH 11/51] Add Python tools installation from Github releases for Windows (#705) * Add Toolset provision for Windows Co-authored-by: MaksimZhukov --- images/win/Windows2016-Azure.json | 24 ++++ images/win/Windows2019-Azure.json | 24 ++++ .../scripts/ImageHelpers/ImageHelpers.psm1 | 1 + .../scripts/ImageHelpers/InstallHelpers.ps1 | 5 + .../scripts/Installers/Download-ToolCache.ps1 | 16 --- .../scripts/Installers/Install-Toolset.ps1 | 76 ++++++++++++ .../scripts/Installers/Validate-ToolCache.ps1 | 33 ------ .../scripts/Installers/Validate-Toolset.ps1 | 111 ++++++++++++++++++ images/win/toolcache-2016.json | 6 - images/win/toolcache-2019.json | 6 - images/win/toolset-2016.json | 31 +++++ images/win/toolset-2019.json | 31 +++++ 12 files changed, 303 insertions(+), 61 deletions(-) create mode 100644 images/win/scripts/Installers/Install-Toolset.ps1 create mode 100644 images/win/scripts/Installers/Validate-Toolset.ps1 create mode 100644 images/win/toolset-2016.json create mode 100644 images/win/toolset-2019.json diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index dce3ccd64..834de3afb 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -18,6 +18,7 @@ "run_scan_antivirus": "false", "root_folder": "C:", + "toolset_json_path": "{{env `TEMP`}}\\toolset.json", "image_folder": "C:\\image", "commit_file": "C:\\image\\commit.txt", "imagedata_file": "C:\\imagedata.json", @@ -318,6 +319,11 @@ "source": "{{template_dir}}/toolcache-2016.json", "destination": "{{user `root_folder`}}/toolcache.json" }, + { + "type": "file", + "source": "{{template_dir}}/toolset-2016.json", + "destination": "{{user `toolset_json_path`}}" + }, { "type": "powershell", "environment_vars":[ @@ -328,6 +334,15 @@ "{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1" ] }, + { + "type": "powershell", + "environment_vars":[ + "TOOLSET_JSON_PATH={{user `toolset_json_path`}}" + ], + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -642,6 +657,15 @@ "{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1" ] }, + { + "type": "powershell", + "environment_vars":[ + "TOOLSET_JSON_PATH={{user `toolset_json_path`}}" + ], + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-Toolset.ps1" + ] + }, { "type": "powershell", "scripts":[ diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 8dc78665c..1b3e5f74f 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -18,6 +18,7 @@ "run_scan_antivirus": "false", "root_folder": "C:", + "toolset_json_path": "{{env `TEMP`}}\\toolset.json", "image_folder": "C:\\image", "commit_file": "C:\\image\\commit.txt", "imagedata_file": "C:\\imagedata.json", @@ -291,6 +292,11 @@ "source": "{{template_dir}}/toolcache-2019.json", "destination": "{{user `root_folder`}}/toolcache.json" }, + { + "type": "file", + "source": "{{template_dir}}/toolset-2019.json", + "destination": "{{user `toolset_json_path`}}" + }, { "type": "powershell", "environment_vars":[ @@ -301,6 +307,15 @@ "{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1" ] }, + { + "type": "powershell", + "environment_vars":[ + "TOOLSET_JSON_PATH={{user `toolset_json_path`}}" + ], + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -639,6 +654,15 @@ "{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1" ] }, + { + "type": "powershell", + "environment_vars":[ + "TOOLSET_JSON_PATH={{user `toolset_json_path`}}" + ], + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-Toolset.ps1" + ] + }, { "type": "powershell", "scripts":[ diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 index f979659d9..2b716880b 100644 --- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 +++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 @@ -15,6 +15,7 @@ Export-ModuleMember -Function @( 'Set-SystemVariable' 'Install-Binary' 'Get-ToolcachePackages' + 'Get-ToolsetContent' 'Get-ToolsByName' 'Add-ContentToMarkdown' 'Add-SoftwareDetailsToMarkdown' diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index ee5287805..c8d70c8bf 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -283,6 +283,11 @@ function Get-ToolcachePackages { Get-Content -Raw $toolcachePath | ConvertFrom-Json } +function Get-ToolsetContent { + $toolsetJson = Get-Content -Path $env:TOOLSET_JSON_PATH -Raw + ConvertFrom-Json -InputObject $toolsetJson +} + function Get-ToolsByName { param ( [Parameter(Mandatory = $True)] diff --git a/images/win/scripts/Installers/Download-ToolCache.ps1 b/images/win/scripts/Installers/Download-ToolCache.ps1 index 4749a3f3f..6c93e3804 100644 --- a/images/win/scripts/Installers/Download-ToolCache.ps1 +++ b/images/win/scripts/Installers/Download-ToolCache.ps1 @@ -44,21 +44,6 @@ Function NPMFeed-AuthSetup { $npmrcContent | Out-File -FilePath "$($env:TEMP)/.npmrc" -Encoding utf8 } -Function Set-DefaultPythonVersion { - param( - [Parameter(Mandatory=$true)] - [System.Version] $Version, - [System.String] $Arch = "x64" - ) - - $pythonPath = $Env:AGENT_TOOLSDIRECTORY + "/Python/${Version}*/${Arch}" - $pythonDir = Get-Item -Path $pythonPath - - Write-Host "Use Python ${Version} as a system Python" - Add-MachinePathItem -PathItem $pythonDir.FullName - Add-MachinePathItem -PathItem "$($pythonDir.FullName)\Scripts" -} - Function Set-DefaultRubyVersion { param( [Parameter(Mandatory=$true)] @@ -106,5 +91,4 @@ $ToolVersions.PSObject.Properties | ForEach-Object { } } -Set-DefaultPythonVersion -Version "3.7" Set-DefaultRubyVersion -Version "2.5" \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Toolset.ps1 b/images/win/scripts/Installers/Install-Toolset.ps1 new file mode 100644 index 000000000..25bfe58ec --- /dev/null +++ b/images/win/scripts/Installers/Install-Toolset.ps1 @@ -0,0 +1,76 @@ +################################################################################ +## File: Install-Toolset.ps1 +## Team: CI-Build +## Desc: Install toolset +################################################################################ + +Function Install-Asset { + param( + [Parameter(Mandatory=$true)] + [object] $ReleaseAsset + ) + + $releaseAssetName = [System.IO.Path]::GetFileNameWithoutExtension($ReleaseAsset.filename) + $assetFolderPath = Join-Path $env:TEMP $releaseAssetName + $assetArchivePath = Start-DownloadWithRetry -Url $ReleaseAsset.download_url -Name $ReleaseAsset.filename + + Write-Host "Extract $($ReleaseAsset.filename) content..." + 7z.exe x $assetArchivePath -o"$assetFolderPath" -y | Out-Null + + Write-Host "Invoke installation script..." + Push-Location -Path $assetFolderPath + Invoke-Expression .\setup.ps1 + Pop-Location +} + +Function Set-DefaultPythonVersion { + param( + [Parameter(Mandatory=$true)] + [object[]] $Toolset + ) + + $python = $Toolset | Where-Object { ($_.name -eq "Python") -and ($_.default -ne "") } ` + | Select-Object default, arch -First 1 + + if ($python.default -ne $null) { + $pythonPath = Join-Path $Env:AGENT_TOOLSDIRECTORY "/Python/$($python.default)/$($python.arch)" -Resolve + + Write-Host "Use Python $($python.default) as a system Python" + Add-MachinePathItem -PathItem $pythonPath + Add-MachinePathItem -PathItem "$pythonPath\Scripts" + } else { + Write-Host "Default Python version not found in toolset file!" + } +} + +$ErrorActionPreference = "Stop" + +Import-Module -Name ImageHelpers -Force + +# Get toolcache content from toolset +$tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache + +foreach ($tool in $tools) { + # Get versions manifest for current tool + $assets = Invoke-RestMethod $tool.url + + # Get github release asset for each version + foreach ($toolVersion in $tool.versions) { + $asset = $assets | Where-Object version -like $toolVersion ` + | Sort-Object -Property {[version]$_.version} -Descending ` + | Select-Object -ExpandProperty files ` + | Where-Object { ($_.platform -eq $tool.platform) -and ($_.arch -eq $tool.arch) } ` + | Select-Object -First 1 + + Write-Host "Installing $($tool.name) $toolVersion $($tool.arch)..." + if ($asset -ne $null) { + Install-Asset -ReleaseAsset $asset + } else { + Write-Host "Asset was not found in versions manifest" + exit 1 + } + } +} + +# Install default python version +Set-DefaultPythonVersion -Toolset $tools \ No newline at end of file diff --git a/images/win/scripts/Installers/Validate-ToolCache.ps1 b/images/win/scripts/Installers/Validate-ToolCache.ps1 index 5ad500bf4..526254e2b 100644 --- a/images/win/scripts/Installers/Validate-ToolCache.ps1 +++ b/images/win/scripts/Installers/Validate-ToolCache.ps1 @@ -63,32 +63,6 @@ function RunTestsByPath { } } -function Get-SystemDefaultPython { - Write-Host "Validate system Python..." - - if (Get-Command -Name 'python') - { - Write-Host "Python $(& python -V 2>&1) on path" - } - else - { - Write-Host "Python is not on path" - exit 1 - } - - $pythonBinVersion = $(& python -V 2>&1) - if ($pythonBinVersion -notlike "Python 3.*") - { - Write-Error "Python 3 is not in the PATH" - exit 1 - } - - $pythonBinOnPath = Split-Path -Path (Get-Command -Name 'python').Path - $description = GetDefaultToolDescription -SoftwareVersion $pythonBinVersion -SoftwareLocation $pythonBinOnPath - - return $description -} - function Get-SystemDefaultRuby { Write-Host "Validate system Ruby..." @@ -196,9 +170,6 @@ function ToolcacheTest { } } - if ($SoftwareName -contains "Python") { - $markdownDescription += Get-SystemDefaultPython - } if ($SoftwareName -contains "Ruby") { $markdownDescription += Get-SystemDefaultRuby } @@ -206,10 +177,6 @@ function ToolcacheTest { Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $markdownDescription } -# Python test -$PythonTests = @("python.exe", "Scripts\pip.exe") -ToolcacheTest -SoftwareName "Python" -ExecTests $PythonTests - # PyPy test $PyPyTests = @("python.exe", "bin\pip.exe") ToolcacheTest -SoftwareName "PyPy" -ExecTests $PyPyTests diff --git a/images/win/scripts/Installers/Validate-Toolset.ps1 b/images/win/scripts/Installers/Validate-Toolset.ps1 new file mode 100644 index 000000000..28963b12a --- /dev/null +++ b/images/win/scripts/Installers/Validate-Toolset.ps1 @@ -0,0 +1,111 @@ +################################################################################ +## File: Validate-Toolset.ps1 +## Team: CI-Build +## Desc: Validate Toolset +################################################################################ + +function Run-ExecutableTests { + param ( + [Parameter(Mandatory)] [string[]] $Executables, + [Parameter(Mandatory)] [string] $ToolPath + ) + + foreach ($executable in $Executables) { + $executablePath = Join-Path $ToolPath $executable + + Write-Host "Check $executable..." + if (Test-Path $executablePath) { + Write-Host "$executable is successfully installed: $(& $executablePath --version)" + } else { + Write-Host "$executablePath is not installed!" + exit 1 + } + } +} + +function Validate-SystemDefaultTool { + param ( + [Parameter(Mandatory)] [string] $ToolName, + [Parameter(Mandatory)] [string] $ExpectedVersion + ) + + $binName = $ToolName.ToLower() + + # Check if tool on path + if (Get-Command -Name $binName) { + $versionOnPath = $(& $binName --version 2>&1) | Select-String -Pattern ".*(\d+\.\d+\.\d+)" + $versionBinPath = Split-Path -Path (Get-Command -Name $binName).Path + + # Check if version is correct + if ($versionOnPath.matches.Groups[1].Value -notlike $ExpectedVersion) { + Write-Error "$ToolName $ExpectedVersion is not in the PATH" + exit 1 + } + + Write-Host "$ToolName $versionOnPath on path" + } else { + Write-Host "$ToolName is not on path" + exit 1 + } + + # Add default version description to markdown + $description = "
__System default version:__ $versionOnPath
" + $description += "_Environment:_
" + $description += "* Location: $versionBinPath
" + $description += "* PATH: contains the location of $versionOnPath
" + + return $description +} + +$ErrorActionPreference = "Stop" + +Import-Module -Name ImageHelpers -Force + +# Define executables for cached tools +$toolsExecutables = @{ Python = @("python.exe", "Scripts\pip.exe") } + +# Get toolcache content from toolset +$tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache + +foreach($tool in $tools) { + $markdownDescription = "" + + $toolPath = Join-Path $env:AGENT_TOOLSDIRECTORY $tool.name + # Get executables for current tool + $toolExecs = $toolsExecutables[$tool.name] + + foreach ($version in $tool.versions) { + # Check if version folder exists + $expectedVersionPath = Join-Path $toolPath $version + if (-not (Test-Path $expectedVersionPath)) { + Write-Host "Expected $($tool.name) $version folder is not found!" + exit 1 + } + + # Take latest installed version in case if toolset version contains wildcards + $foundVersion = Get-Item $expectedVersionPath ` + | Sort-Object -Property {[version]$_.name} -Descending ` + | Select-Object -First 1 + + # Check for required architecture folder + $foundVersionArchPath = Join-Path $foundVersion $tool.arch + if (-not (Test-Path $foundVersionArchPath)) { + Write-Host "Expected $($tool.name)($($tool.arch)) $($foundVersion.name) architecture folder is not found!" + exit 1 + } + + Write-Host "Run validation test for $($tool.name)($($tool.arch)) $($foundVersion.name) executables..." + Run-ExecutableTests -Executables $toolExecs -ToolPath $foundVersionArchPath + + # Add to tool version to markdown + $markdownDescription += "_Version:_ $($foundVersion.name)
" + } + + # Create markdown description for system default tool + if (-not ([string]::IsNullOrEmpty($tool.default))) { + Write-Host "Validate system default $($tool.name)($($tool.arch)) $($tool.default)..." + $markdownDescription += Validate-SystemDefaultTool -ToolName $tool.name -ExpectedVersion $tool.default + } + + Add-SoftwareDetailsToMarkdown -SoftwareName "$($tool.name) ($($tool.arch))" -DescriptionMarkdown $markdownDescription +} \ No newline at end of file diff --git a/images/win/toolcache-2016.json b/images/win/toolcache-2016.json index 8db575c23..1b4f1a6c7 100644 --- a/images/win/toolcache-2016.json +++ b/images/win/toolcache-2016.json @@ -1,10 +1,4 @@ { - "@actions/toolcache-python-windows-x64": [ - "2.7", "3.5", "3.6", "3.7", "3.8" - ], - "@actions/toolcache-python-windows-x86": [ - "2.7", "3.5", "3.6", "3.7", "3.8" - ], "@actions/toolcache-ruby-windows-x64": [ "2.4", "2.5", "2.6", "2.7" ], diff --git a/images/win/toolcache-2019.json b/images/win/toolcache-2019.json index 4f946cfaf..6873c14e5 100644 --- a/images/win/toolcache-2019.json +++ b/images/win/toolcache-2019.json @@ -1,10 +1,4 @@ { - "@actions/toolcache-python-windows-x64": [ - "2.7", "3.5", "3.6", "3.7", "3.8" - ], - "@actions/toolcache-python-windows-x86": [ - "2.7", "3.5", "3.6", "3.7", "3.8" - ], "@actions/toolcache-ruby-windows-x64": [ "2.4", "2.5", "2.6", "2.7" ], diff --git a/images/win/toolset-2016.json b/images/win/toolset-2016.json new file mode 100644 index 000000000..da372c498 --- /dev/null +++ b/images/win/toolset-2016.json @@ -0,0 +1,31 @@ +{ + "toolcache": [ + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "arch": "x64", + "platform" : "win32", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ], + "default": "3.7.*" + }, + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "arch": "x86", + "platform" : "win32", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ] + } + ] +} \ No newline at end of file diff --git a/images/win/toolset-2019.json b/images/win/toolset-2019.json new file mode 100644 index 000000000..da372c498 --- /dev/null +++ b/images/win/toolset-2019.json @@ -0,0 +1,31 @@ +{ + "toolcache": [ + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "arch": "x64", + "platform" : "win32", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ], + "default": "3.7.*" + }, + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "arch": "x86", + "platform" : "win32", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ] + } + ] +} \ No newline at end of file From d3b4d6b4d1fb00e6c50ed79bacc4aca7767714a3 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Thu, 30 Apr 2020 15:26:55 +0000 Subject: [PATCH 12/51] Updating readme file for macOS version 20200425.1 (#801) --- images/macos/macos-10.15-Readme.md | 93 +++++++++++++++++------------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md index 118cc7b65..e708126b2 100644 --- a/images/macos/macos-10.15-Readme.md +++ b/images/macos/macos-10.15-Readme.md @@ -1,10 +1,8 @@ -# macOS Catalina 10.15.4 (19E266) -The following software is installed on machines with the 20200328.1 update. - -#### Xcode 11.3.1 set by default -## Operating System - -- OS X 10.15.4 (19E287) **Catalina** +# OS X info +- System Version: macOS 10.15.4 (19E287) +- Kernel Version: Darwin 19.4.0 +- System Integrity Protection: Enabled +- Image Version: 20200425.1 # Installed Software ## Language and Runtime @@ -14,7 +12,7 @@ The following software is installed on machines with the 20200328.1 update. - Java 12: Zulu12.3+11-CA (build 12.0.2+3) - Java 13: Zulu13.31+11-CA (build 13.0.3+3-MTS) - Java 14: Zulu14.28+21-CA (build 14.0.1+8) -- Rust 1.42.0 +- Rust 1.43.0 - Clang/LLVM 10.0.0 - gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 - gcc-9 (Homebrew GCC 9.3.0_1) 9.3.0 @@ -22,7 +20,7 @@ The following software is installed on machines with the 20200328.1 update. - GNU Fortran (Homebrew GCC 9.3.0_1) 9.3.0 - Node.js v12.16.2 - NVM 0.33.11 -- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.0 v12.16.2 v13.13.0 +- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.2 v13.13.0 - PowerShell 7.0.0 - Python 2.7.17 - Python 3.7.7 @@ -53,43 +51,43 @@ The following software is installed on machines with the 20200328.1 update. ## Utilities - Curl 7.69.1 -- Git: 2.26.1 +- Git: 2.26.2 - Git LFS: 2.10.0 - Hub CLI: 2.14.2 - GNU Wget 1.20.3 - Subversion (SVN) 1.13.0 - Packer 1.5.5 -- GNU parallel 20200322 +- GNU parallel 20200422 - OpenSSL 1.0.2t 10 Sep 2019 - jq 1.6 - gpg (GnuPG) 2.2.20 - psql (PostgreSQL) 12.2 - PostgreSQL 12.2 - aria2 1.35.0 -- azcopy 10.4.0 +- azcopy 10.4.1 - zstd 1.4.4 -- bazel 3.0.0 +- bazel 3.1.0 - bazelisk v1.4.0 -- helm v3.1.2+gd878d4d +- helm v3.2.0+ge11b7ce - virtualbox 6.1.6r137129 - Vagrant 2.2.7 ## Tools -- Fastlane 2.145.0 +- Fastlane 2.146.1 - Cmake 3.17.1 -- App Center CLI 2.4.1 -- Azure CLI 2.3.1 -- AWS CLI 2.0.8 +- App Center CLI 2.5.0 +- Azure CLI 2.4.0 +- AWS CLI 2.0.9 - AWS SAM CLI 0.47.0 -- Aliyun CLI 3.0.37 +- Aliyun CLI 3.0.39 ## Browsers - Safari 13.1 (15609.1.20.111.8) - SafariDriver 13.1 (15609.1.20.111.8) -- Google Chrome 81.0.4044.113 +- Google Chrome 81.0.4044.122 - ChromeDriver 81.0.4044.69 -- Microsoft Edge 81.0.416.53 -- MSEdgeDriver 81.0.416.58 +- Microsoft Edge 81.0.416.64 +- MSEdgeDriver 81.0.416.64 - Mozilla Firefox 75.0 - geckodriver 0.26.0 @@ -113,7 +111,7 @@ The following software is installed on machines with the 20200328.1 update. ## Xamarin ### Visual Studio for Mac -- 8.5.3.16 +- 8.5.4.12 ### Mono - 6.8.0.123 @@ -149,14 +147,15 @@ The following software is installed on machines with the 20200328.1 update. ## Xcode | Version | Build | Path | | ---------------- | ------- | ------------------------------ | -| 11.4.1 | 11E503a | /Applications/Xcode_11.4.1.app | +| 11.4.1 (default) | 11E503a | /Applications/Xcode_11.4.1.app | | 11.4 | 11E146 | /Applications/Xcode_11.4.app | -| 11.3.1 (default) | 11C505 | /Applications/Xcode_11.3.1.app | +| 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app | | 11.3 | 11C29 | /Applications/Xcode_11.3.app | | 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app | | 11.2 | 11B52 | /Applications/Xcode_11.2.app | | 11.1 | 11A1027 | /Applications/Xcode_11.1.app | | 11.0 | 11A420a | /Applications/Xcode_11.app | +| 10.3 | 10G8 | /Applications/Xcode_10.3.app | ### Xcode Support Tools - Nomad CLI 3.1.2 @@ -168,44 +167,54 @@ The following software is installed on machines with the 20200328.1 update. ### Installed SDKs | SDK | SDK Name | Xcode Version | | ----------------------- | -------------------- | ---------------------------------------------------- | +| macOS 10.14 | macosx10.14 | 10.3 | | macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1 | +| iOS 12.4 | iphoneos12.4 | 10.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, 11.3, 11.3.1 | | iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 | +| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 | | Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 | | Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 | | Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | | Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 | +| tvOS 12.4 | appletvos12.4 | 10.3 | | tvOS 13.0 | appletvos13.0 | 11.0, 11.1 | | tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | | tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1 | +| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 | | Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 | | Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | | Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1 | +| watchOS 5.3 | watchos5.3 | 10.3 | | watchOS 6.0 | watchos6.0 | 11.0, 11.1 | | watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 | | watchOS 6.2 | watchos6.2 | 11.4, 11.4.1 | +| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 | | Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 | | Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3, 11.3.1 | | Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1 | | DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1 | ### Installed Simulators -| OS | Xcode Version | Simulators | -| ----------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| iOS 13.0 | 11.0 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | -| iOS 13.1 | 11.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | -| iOS 13.2 | 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 Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | -| iOS 13.3 | 11.3
11.3.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 (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | -| iOS 13.4 | 11.4
11.4.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 (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Air (3rd generation)
iPhone SE (2nd generation) | -| tvOS 13.0 | 11.0
11.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | -| tvOS 13.2 | 11.2
11.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | -| tvOS 13.3 | 11.3
11.3.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | -| tvOS 13.4 | 11.4
11.4.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | -| watchOS 6.0 | 11.0
11.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | -| watchOS 6.1 | 11.2
11.2.1
11.3
11.3.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | -| watchOS 6.2 | 11.4
11.4.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | +| OS | Xcode Version | Simulators | +| ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| iOS 12.4 | 10.3 | iPhone 5s
iPhone 6 Plus
iPhone 6
iPhone 6s
iPhone 6s Plus
iPhone SE
iPhone 7
iPhone 7 Plus
iPhone 8
iPhone 8 Plus
iPhone X
iPhone Xs
iPhone Xs Max
iPhone Xʀ
iPad Air
iPad Air 2
iPad Pro (9.7-inch)
iPad Pro (12.9-inch)
iPad (5th generation)
iPad Pro (12.9-inch) (2nd generation)
iPad Pro (10.5-inch)
iPad (6th generation)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | +| iOS 13.0 | 11.0 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | +| iOS 13.1 | 11.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | +| iOS 13.2 | 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 Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | +| iOS 13.3 | 11.3
11.3.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | +| iOS 13.4 | 11.4
11.4.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 (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Air (3rd generation)
iPhone SE (2nd generation) | +| tvOS 12.4 | 10.3 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| tvOS 13.0 | 11.0
11.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| tvOS 13.2 | 11.2
11.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| tvOS 13.3 | 11.3
11.3.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| tvOS 13.4 | 11.4
11.4.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm
Apple Watch Series 2 - 42mm
Apple Watch Series 3 - 38mm
Apple Watch Series 3 - 42mm
Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm | +| watchOS 6.0 | 11.0
11.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | +| watchOS 6.1 | 11.2
11.2.1
11.3
11.3.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | +| watchOS 6.2 | 11.4
11.4.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | ## Android ### Android SDK Tools @@ -216,7 +225,7 @@ The following software is installed on machines with the 20200328.1 update. ### Android SDK Platform-Tools | Package Name | Description | | -------------- | ------------------------------------------- | -| platform-tools | Android SDK Platform-Tools, Revision 29.0.6 | +| platform-tools | Android SDK Platform-Tools, Revision 30.0.0 | ### Android SDK Platforms | Package Name | Description | @@ -262,7 +271,7 @@ The following software is installed on machines with the 20200328.1 update. | ---------------- | ------------ | | cmake | 3.6.4111459 | | lldb | 3.1.4508709 | -| ndk-bundle | 21.0.6113669 | +| ndk-bundle | 21.1.6352462 | | Android Emulator | 30.0.5 | ### Android Google APIs @@ -280,3 +289,5 @@ The following software is installed on machines with the 20200328.1 update. | Google Play services | 49 | | Google Repository | 58 | | Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 | + + From 9256cc49b41be699dbfedcc2672b0615b1a44952 Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Thu, 30 Apr 2020 15:35:21 +0000 Subject: [PATCH 13/51] Updating readme file for win16 version 20200426.1 --- images/win/Windows2016-Readme.md | 39 +++++++++++++++++++------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md index 7c522462d..36540bef7 100644 --- a/images/win/Windows2016-Readme.md +++ b/images/win/Windows2016-Readme.md @@ -1,6 +1,6 @@ # Windows Server 2016 -The following software is installed on machines with the 20200416.1 update. +The following software is installed on machines with the 20200426.1 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -25,7 +25,7 @@ _Environment:_ ## Helm -_Version:_ v3.1.2+gd878d4d
+_Version:_ v3.2.0+ge11b7ce
_Environment:_ * PATH: contains location of helm @@ -168,8 +168,8 @@ _WDK Visual Studio Extension Version:_ 10.0.17740.0
## Azure Service Fabric -_SDK Version:_ 4.0.470.9590
-_Runtime Version:_ 7.0.470.9590 +_SDK Version:_ 4.1.409.9590
+_Runtime Version:_ 7.1.409.9590 ## WinAppDriver @@ -177,7 +177,7 @@ _Version:_ 1.1.1809.18001
## AWS CLI -_Version:_ aws-cli 2.0.7
+_Version:_ aws-cli 2.0.9
## Android SDK Build Tools @@ -428,10 +428,14 @@ _Description:_ .NET has been configured to use TLS 1.2 by default ## Azure CLI -_Version:_ 2.3.1 +_Version:_ 2.4.0 _Environment:_ * PATH: contains location of az.cmd +## AWS SAM CLI + +_Version:_ 0.47.0
+ ## Azure DevOps Cli extension _Version:_ azure-devops 0.18.0 @@ -446,7 +450,7 @@ _Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
## Ruby -_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 2.7.6.2
+_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 3.1.2
## OpenSSL @@ -458,7 +462,7 @@ _Version:_ v5.30.2
## Git -_Version:_ 2.26.1
+_Version:_ 2.26.2
_Environment:_ * PATH: contains location of git.exe @@ -522,14 +526,14 @@ _Environment:_ ## Rust (64-bit) -#### 1.42.0 +#### 1.43.0 _Location:_ C:\Rust\.cargo\bin _Environment:_ * PATH: contains the location of rustc.exe ## Julia (x64) -_Version:_ 1.4.0
+_Version:_ 1.4.1
## sbt @@ -544,12 +548,12 @@ _Environment:_ ## Google Chrome _version:_ -81.0.4044.113 +81.0.4044.122 ## Microsoft Edge _version:_ -81.0.416.53 +81.0.416.64 ## Mozilla Firefox @@ -586,7 +590,7 @@ _Environment:_ #### Microsoft Edge Driver _version:_ -81.0.416.53 +81.0.416.64 _Environment:_ * EdgeWebDriver: location of msedgedriver.exe @@ -611,11 +615,11 @@ _Environment:_ ## bazel -_Version:_ bazel 3.0.0
+_Version:_ bazel 3.1.0
## bazelisk -_Version:_ 1.3.0
+_Version:_ 1.4.0
## Alibaba Cloud CLI @@ -678,7 +682,9 @@ _Environment:_ _SDK:_ * 3.1.201 C:\Program Files\dotnet\sdk\3.1.201 +* 3.1.200 C:\Program Files\dotnet\sdk\3.1.200 * 3.1.103 C:\Program Files\dotnet\sdk\3.1.103 +* 3.1.102 C:\Program Files\dotnet\sdk\3.1.102 * 3.1.101 C:\Program Files\dotnet\sdk\3.1.101 * 3.1.100 C:\Program Files\dotnet\sdk\3.1.100 * 2.2.402 C:\Program Files\dotnet\sdk\2.2.402 @@ -742,6 +748,7 @@ _SDK:_ _Runtime:_ * 3.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.3 +* 3.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.2 * 3.1.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.1 * 3.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.0 * 2.2.8 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.8 @@ -855,7 +862,7 @@ _Environment:_ ## Kubectl -_Version:_ Client Version: v1.18.1
+_Version:_ Client Version: v1.18.2
_Environment:_ * PATH: contains location of kubectl.exe From 4ff58941560c0f4b2b9ff844549a57f49f660753 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Thu, 30 Apr 2020 16:54:22 +0000 Subject: [PATCH 14/51] change min free space to 18000Mb (#814) --- images/linux/scripts/installers/validate-disk-space.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/validate-disk-space.sh b/images/linux/scripts/installers/validate-disk-space.sh index 208a0e0f6..5201848d7 100644 --- a/images/linux/scripts/installers/validate-disk-space.sh +++ b/images/linux/scripts/installers/validate-disk-space.sh @@ -5,7 +5,7 @@ ################################################################################ availableSpaceMB=$(df / -hm | sed 1d | awk '{ print $4}') -minimumFreeSpaceMB=$(( 18*1024 )) +minimumFreeSpaceMB=18000 echo "Available disk space: $availableSpaceMB MB" if [ $availableSpaceMB -le $minimumFreeSpaceMB ]; then From fd9138e6b141d3144265af4219c672512525270c Mon Sep 17 00:00:00 2001 From: Jorgen Thelin Date: Thu, 30 Apr 2020 17:04:38 -0700 Subject: [PATCH 15/51] Fix minor glitch in installer message echo "cmake is already installed" --- 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 340df3ee8..0fd839a50 100644 --- a/images/linux/scripts/installers/cmake.sh +++ b/images/linux/scripts/installers/cmake.sh @@ -10,7 +10,7 @@ source $HELPER_SCRIPTS/document.sh # Test to see if the software in question is already installed, if not install it 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" + echo "cmake is already installed" else curl -sL https://cmake.org/files/v3.17/cmake-3.17.0-Linux-x86_64.sh -o cmakeinstall.sh \ && chmod +x cmakeinstall.sh \ From 2e20f5d7d33c6b64dff68b46425b3db621511329 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Fri, 1 May 2020 17:52:56 +0700 Subject: [PATCH 16/51] added workaround for default DNS --- images/linux/scripts/installers/1804/basic.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 29cb15b40..36a316f46 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -139,6 +139,10 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim fi done +# Workaround for systemd-resolve, since sometimes stub resolver does not work properly. Details: https://github.com/actions/virtual-environments/issues/798 +echo "Create resolv.conf link." +ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf + # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "Basic CLI:" From 38ec51131da95040b6b01c55026cdf605a014f2a Mon Sep 17 00:00:00 2001 From: Sima Zhu <48036328+sima-zhu@users.noreply.github.com> Date: Fri, 1 May 2020 08:58:16 -0700 Subject: [PATCH 17/51] Added java 13 package in VM (#795) * Added java 13 package in VM * Fixed var name * Make changes from 11 to 13 * added java 13 for validate-javatool --- images/win/scripts/Installers/Install-JavaTools.ps1 | 8 ++++++++ images/win/scripts/Installers/Validate-JavaTools.ps1 | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/images/win/scripts/Installers/Install-JavaTools.ps1 b/images/win/scripts/Installers/Install-JavaTools.ps1 index e88fc7453..96282371b 100644 --- a/images/win/scripts/Installers/Install-JavaTools.ps1 +++ b/images/win/scripts/Installers/Install-JavaTools.ps1 @@ -8,22 +8,26 @@ $azulJDK7Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-7/7u232/zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64.zip' $azulJDK8Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-8/8u222/zulu-8-azure-jdk_8.40.0.25-8.0.222-win_x64.zip' $azulJDK11Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-11/11.0.4/zulu-11-azure-jdk_11.33.15-11.0.4-win_x64.zip' +$azulJDK13Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-13/13.0.3/zulu-13-azure-jdk_13.31.11-13.0.3-win_x64.zip' cd $env:TEMP Invoke-WebRequest -UseBasicParsing -Uri $azulJDK7Uri -OutFile azulJDK7.zip Invoke-WebRequest -UseBasicParsing -Uri $azulJDK8Uri -OutFile azulJDK8.zip Invoke-WebRequest -UseBasicParsing -Uri $azulJDK11Uri -OutFile azulJDK11.zip +Invoke-WebRequest -UseBasicParsing -Uri $azulJDK13Uri -OutFile azulJDK13.zip # Expand the zips Expand-Archive -Path azulJDK7.zip -DestinationPath "C:\Program Files\Java\" -Force Expand-Archive -Path azulJDK8.zip -DestinationPath "C:\Program Files\Java\" -Force Expand-Archive -Path azulJDK11.zip -DestinationPath "C:\Program Files\Java\" -Force +Expand-Archive -Path azulJDK13.zip -DestinationPath "C:\Program Files\Java\" -Force # Deleting zip folders Remove-Item -Recurse -Force azulJDK7.zip Remove-Item -Recurse -Force azulJDK8.zip Remove-Item -Recurse -Force azulJDK11.zip +Remove-Item -Recurse -Force azulJDK13.zip Import-Module -Name ImageHelpers -Force @@ -49,6 +53,9 @@ $latestJava8Install = $java8Installs.FullName; $java11Installs = Get-ChildItem -Path 'C:\Program Files\Java' -Filter '*azure-jdk*11*' | Sort-Object -Property Name -Descending | Select-Object -First 1 $latestJava11Install = $java11Installs.FullName; +$java13Installs = Get-ChildItem -Path 'C:\Program Files\Java' -Filter '*azure-jdk*13*' | Sort-Object -Property Name -Descending | Select-Object -First 1 +$latestJava13Install = $java13Installs.FullName; + $newPath = [string]::Join(';', $newPathSegments) $newPath = $latestJava8Install + '\bin;' + $newPath @@ -58,6 +65,7 @@ setx JAVA_HOME $latestJava8Install /M setx JAVA_HOME_7_X64 $latestJava7Install /M setx JAVA_HOME_8_X64 $latestJava8Install /M setx JAVA_HOME_11_X64 $latestJava11Install /M +setx JAVA_HOME_13_X64 $latestJava13Install /M # Install Java tools # Force chocolatey to ignore dependencies on Ant and Maven or else they will download the Oracle JDK diff --git a/images/win/scripts/Installers/Validate-JavaTools.ps1 b/images/win/scripts/Installers/Validate-JavaTools.ps1 index 714776890..33f906949 100644 --- a/images/win/scripts/Installers/Validate-JavaTools.ps1 +++ b/images/win/scripts/Installers/Validate-JavaTools.ps1 @@ -36,6 +36,12 @@ if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?&1") | Out-String) -match '^(?.+) version "(?.+)".*' ) +{ + $java13Version = $Matches.version +} if( $(ant -version) -match 'Apache Ant\(TM\) version (?.*) compiled.*' ) { @@ -69,6 +75,10 @@ _Location:_ $env:JAVA_HOME_7_X64 #### $java11Version _Location:_ $env:JAVA_HOME_11_X64 + +#### $java13Version + +_Location:_ $env:JAVA_HOME_13_X64 "@ Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description From ec71ad77e3af7e30e812a92ce46bca21f298dabc Mon Sep 17 00:00:00 2001 From: phozzy Date: Mon, 4 May 2020 09:50:20 +0000 Subject: [PATCH 18/51] Fix documentation for containertools --- images/linux/scripts/installers/1804/containers.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/images/linux/scripts/installers/1804/containers.sh b/images/linux/scripts/installers/1804/containers.sh index 0ccf746ab..547707e2e 100644 --- a/images/linux/scripts/installers/1804/containers.sh +++ b/images/linux/scripts/installers/1804/containers.sh @@ -18,7 +18,9 @@ echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | tee /etc/ ## Add version information to the metadata file echo "Documenting container tools version" -PODMAN_VERSION='podman --version' -BUILDAH_VERSION='buildah --version' -SKOPEO_VERSION='skopeo --version' -DocumentInstalledItem "Podman ($PODMAN_VERSION)\nBuildah ($BUILDAH_VERSION)\nSkopeo ($SKOPEO_VERSION)" +PODMAN_VERSION="$(podman --version | cut -d " " -f 3)" +BUILDAH_VERSION="$(buildah --version | cut -d " " -f 3)" +SKOPEO_VERSION="$(skopeo --version | cut -d " " -f 3)" +DocumentInstalledItem "Podman ($PODMAN_VERSION)" +DocumentInstalledItem "Buildah ($BUILDAH_VERSION)" +DocumentInstalledItem "Skopeo ($SKOPEO_VERSION)" From 58acdc3f681cc8b4dc3b53c6eb6b0bada57fe1ed Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 5 May 2020 00:16:21 +0700 Subject: [PATCH 19/51] pre-create .composer folder to preserve permission --- images/linux/scripts/installers/1604/php.sh | 3 +++ images/linux/scripts/installers/1804/php.sh | 3 +++ 2 files changed, 6 insertions(+) diff --git a/images/linux/scripts/installers/1604/php.sh b/images/linux/scripts/installers/1604/php.sh index 44f2ad3b7..d22090417 100644 --- a/images/linux/scripts/installers/1604/php.sh +++ b/images/linux/scripts/installers/1604/php.sh @@ -283,6 +283,9 @@ prependEtcEnvironmentPath /home/runner/.config/composer/vendor/bin # Add composer bin folder to path echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> /etc/skel/.bashrc +#Create composer folder for user to preserve folder permissions +mkdir -p /etc/skel/.composer + # Install phpunit (for PHP) wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar chmod +x phpunit diff --git a/images/linux/scripts/installers/1804/php.sh b/images/linux/scripts/installers/1804/php.sh index 8ab10d785..cbf253935 100644 --- a/images/linux/scripts/installers/1804/php.sh +++ b/images/linux/scripts/installers/1804/php.sh @@ -200,6 +200,9 @@ prependEtcEnvironmentPath /home/runner/.config/composer/vendor/bin # Add composer bin folder to path echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> /etc/skel/.bashrc +#Create composer folder for user to preserve folder permissions +mkdir -p /etc/skel/.composer + # Install phpunit (for PHP) wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar chmod +x phpunit From 365d106302deb6f52e6dfc45264e5918fb778007 Mon Sep 17 00:00:00 2001 From: Dariy Nurgaleev <50947177+Darleev@users.noreply.github.com> Date: Tue, 5 May 2020 18:01:04 +0700 Subject: [PATCH 20/51] added workaround for default DNS (#819) --- images/linux/scripts/installers/1804/basic.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 29cb15b40..36a316f46 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -139,6 +139,10 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim fi done +# Workaround for systemd-resolve, since sometimes stub resolver does not work properly. Details: https://github.com/actions/virtual-environments/issues/798 +echo "Create resolv.conf link." +ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf + # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "Basic CLI:" From 28b940a0459113feec70433fa0b7dfca0d2c339d Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 5 May 2020 23:53:06 +0700 Subject: [PATCH 21/51] revert changes --- images/linux/scripts/installers/1804/basic.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 36a316f46..29cb15b40 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -139,10 +139,6 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim fi done -# Workaround for systemd-resolve, since sometimes stub resolver does not work properly. Details: https://github.com/actions/virtual-environments/issues/798 -echo "Create resolv.conf link." -ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf - # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "Basic CLI:" From 86d0fe8a93a2e4ef6153d243acefc1701a9dc61c Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 5 May 2020 23:59:05 +0700 Subject: [PATCH 22/51] workaround reverted --- images/linux/scripts/installers/1804/basic.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 36a316f46..29cb15b40 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -139,10 +139,6 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim fi done -# Workaround for systemd-resolve, since sometimes stub resolver does not work properly. Details: https://github.com/actions/virtual-environments/issues/798 -echo "Create resolv.conf link." -ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf - # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "Basic CLI:" From 33f6bf1309a45e0c505bc7c8738393ed90a17a24 Mon Sep 17 00:00:00 2001 From: Maksim Petrov <47208721+vmapetr@users.noreply.github.com> Date: Tue, 5 May 2020 20:49:34 +0300 Subject: [PATCH 23/51] Improve Windows provisioners stability (#733) * Improve Install-CloudFoundryCli.ps1 * Improve Install-Go.ps1 * Improve Install-Kind.ps1 * Improve Install-MysqlCli.ps1 * Improve Install-Rust.ps1 * Improve Install-SQLPowerShellTools.ps1 * Improve Update-AndroidSDK.ps1 * Fix issue with resolve --- .../Installers/Install-CloudFoundryCli.ps1 | 17 +++--- images/win/scripts/Installers/Install-Go.ps1 | 28 +++++---- .../win/scripts/Installers/Install-Kind.ps1 | 9 ++- .../scripts/Installers/Install-MysqlCli.ps1 | 13 ++--- .../win/scripts/Installers/Install-Rust.ps1 | 7 +-- .../Installers/Install-SQLPowerShellTools.ps1 | 58 ++++--------------- .../scripts/Installers/Update-AndroidSDK.ps1 | 4 +- 7 files changed, 49 insertions(+), 87 deletions(-) diff --git a/images/win/scripts/Installers/Install-CloudFoundryCli.ps1 b/images/win/scripts/Installers/Install-CloudFoundryCli.ps1 index cc1f0b5c2..194ed5a38 100644 --- a/images/win/scripts/Installers/Install-CloudFoundryCli.ps1 +++ b/images/win/scripts/Installers/Install-CloudFoundryCli.ps1 @@ -6,19 +6,18 @@ Import-Module -Name ImageHelpers # Download the latest cf cli exe -Invoke-WebRequest -UseBasicParsing -Uri "https://packages.cloudfoundry.org/stable?release=windows64-exe&source=github" -OutFile cf-cli.zip +$CloudFoundryCliName = "cf-cli.zip" +$CloudFoundryCliUrl = "https://packages.cloudfoundry.org/stable?release=windows64-exe&source=github" + +$CloudFoundryArchPath = Start-DownloadWithRetry -Url $CloudFoundryCliUrl -Name $CloudFoundryCliName # Create directory for cf cli -$cf_cli_path = "C:\cf-cli" -New-Item -Path $cf_cli_path -ItemType Directory -Force +$CloudFoundryCliPath = "C:\cf-cli" +New-Item -Path $CloudFoundryCliPath -ItemType Directory -Force # Extract the zip archive Write-Host "Extracting cf cli..." -Expand-Archive -Path cf-cli.zip -DestinationPath $cf_cli_path -Force +Expand-Archive -Path $CloudFoundryArchPath -DestinationPath $CloudFoundryCliPath -Force # Add cf to path -Add-MachinePathItem $cf_cli_path - -# Delete the cfl-cli zip archive -Write-Host "Deleting downloaded archive of cf cli" -Remove-Item cf-cli.zip +Add-MachinePathItem $CloudFoundryCliPath \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Go.ps1 b/images/win/scripts/Installers/Install-Go.ps1 index db186186d..6d98ef800 100644 --- a/images/win/scripts/Installers/Install-Go.ps1 +++ b/images/win/scripts/Installers/Install-Go.ps1 @@ -6,12 +6,13 @@ Import-Module -Name ImageHelpers -Force $refsJson = Invoke-RestMethod "https://api.github.com/repos/golang/go/git/refs/tags" + function Install-GoVersion { Param ( - [String]$goVersion, - [Switch]$addToDefaultPath + [String] $goVersion, + [Switch] $addToDefaultPath ) $latestVersionObject = $refsJson | Where-Object { $_.ref -Match "refs/tags/go$goVersion[./d]*" } | Select-Object -Last 1 @@ -20,11 +21,15 @@ function Install-GoVersion # Download the Go zip archive. Write-Host "Downloading Go $latestVersion..." $ProgressPreference = 'SilentlyContinue' - Invoke-WebRequest -UseBasicParsing -Uri "https://dl.google.com/go/go$latestVersion.windows-amd64.zip" -OutFile go$latestVersion.windows-amd64.zip + + $goArchName = "go${latestVersion}.windows-amd64.zip" + $goArchUrl = "https://dl.google.com/go/${goArchName}" + + $goArchPath = Start-DownloadWithRetry -Url $goArchUrl -Name $goArchName # Extract the zip archive. It contains a single directory named "go". Write-Host "Extracting Go $latestVersion..." - Expand-Archive -Path go$latestVersion.windows-amd64.zip -DestinationPath "C:\" -Force + Expand-Archive -Path $goArchPath -DestinationPath "C:\" -Force # Delete unnecessary files to conserve space Write-Host "Cleaning directories of Go $latestVersion..." @@ -41,10 +46,6 @@ function Install-GoVersion $newDirName = "Go$latestVersion" Rename-Item -path "C:\go" -newName $newDirName - # Delete the Go zip archive. - Write-Host "Deleting downloaded archive of Go $latestVersion..." - Remove-Item go$latestVersion.windows-amd64.zip - # Make this the default version of Go? if ($addToDefaultPath) { @@ -63,13 +64,18 @@ function Install-GoVersion # Install Go $goVersionsToInstall = $env:GO_VERSIONS.split(", ", [System.StringSplitOptions]::RemoveEmptyEntries) -foreach($go in $goVersionsToInstall) { +foreach ($go in $goVersionsToInstall) +{ Write-Host "Installing Go ${go}" - if($go -eq $env:GO_DEFAULT) { + if ($go -eq $env:GO_DEFAULT) + { $installDirectory = Install-GoVersion -goVersion $go -addToDefaultPath - } else { + } + else + { $installDirectory = Install-GoVersion -goVersion $go } + $envName = "GOROOT_{0}_{1}_X64" -f $go.split(".") setx $envName "$installDirectory" /M } diff --git a/images/win/scripts/Installers/Install-Kind.ps1 b/images/win/scripts/Installers/Install-Kind.ps1 index 6093049b3..12f0caa04 100644 --- a/images/win/scripts/Installers/Install-Kind.ps1 +++ b/images/win/scripts/Installers/Install-Kind.ps1 @@ -6,25 +6,24 @@ $stableKindTag = "v0.7.0" $tagToUse = $stableKindTag; $destFilePath = "C:\ProgramData\kind" -$outFilePath = "C:\ProgramData\kind\kind.exe" try { - $getkindUri = "https://github.com/kubernetes-sigs/kind/releases/download/$tagToUse/kind-windows-amd64" + $kindUrl = "https://github.com/kubernetes-sigs/kind/releases/download/$tagToUse/kind-windows-amd64" + Write-Host "Downloading kind.exe..." New-Item -Path $destFilePath -ItemType Directory -Force - Invoke-WebRequest -Uri $getkindUri -OutFile $outFilePath + $kindInstallerPath = Start-DownloadWithRetry -Url $kindUrl -Name "kind.exe" -DownloadPath $destFilePath Write-Host "Starting Install kind.exe..." - $process = Start-Process -FilePath $outFilePath -Wait -PassThru + $process = Start-Process -FilePath $kindInstallerPath -Wait -PassThru $exitCode = $process.ExitCode if ($exitCode -eq 0 -or $exitCode -eq 3010) { Write-Host -Object 'Installation successful' Add-MachinePathItem $destFilePath - exit $exitCode } else { diff --git a/images/win/scripts/Installers/Install-MysqlCli.ps1 b/images/win/scripts/Installers/Install-MysqlCli.ps1 index 348657d74..a9db2f429 100644 --- a/images/win/scripts/Installers/Install-MysqlCli.ps1 +++ b/images/win/scripts/Installers/Install-MysqlCli.ps1 @@ -3,10 +3,10 @@ ## Desc: Install Mysql CLI ################################################################################ - ## Downloading mysql jar -$uri = 'https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-winx64.zip' -$mysqlPath = 'C:\mysql-5.7.21-winx64\bin' +$MysqlVersionName = "mysql-5.7.21-winx64" +$MysqlVersionUrl = "https://dev.mysql.com/get/Downloads/MySQL-5.7/${MysqlVersionName}.zip" +$MysqlPath = "C:\$MysqlVersionName\bin" # Installing visual c++ redistibutable package. $InstallerName = "vcredist_x64.exe" @@ -19,13 +19,10 @@ Install-Binary -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentLi [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor "Tls12" # Get the latest mysql command line tools . -Invoke-WebRequest -UseBasicParsing -Uri $uri -OutFile mysql.zip +$mysqlArchPath = Start-DownloadWithRetry -Url $MysqlVersionUrl -Name "mysql.zip" # Expand the zip -Expand-Archive -Path mysql.zip -DestinationPath "C:\" -Force - -# Deleting zip folder -Remove-Item -Recurse -Force mysql.zip +Expand-Archive -Path $mysqlArchPath -DestinationPath "C:\" -Force # Adding mysql in system environment path Add-MachinePathItem $mysqlPath \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Rust.ps1 b/images/win/scripts/Installers/Install-Rust.ps1 index 61588a86f..ae18371af 100644 --- a/images/win/scripts/Installers/Install-Rust.ps1 +++ b/images/win/scripts/Installers/Install-Rust.ps1 @@ -11,13 +11,10 @@ $env:CARGO_HOME="C:\Rust\.cargo" # Download the latest rustup-init.exe for Windows x64 # See https://rustup.rs/# -Invoke-WebRequest -UseBasicParsing -Uri "https://win.rustup.rs/x86_64" -OutFile rustup-init.exe +$rustupPath = Start-DownloadWithRetry -Url "https://win.rustup.rs/x86_64" -Name "rustup-init.exe" # Install Rust by running rustup-init.exe (disabling the confirmation prompt with -y) -.\rustup-init.exe -y --default-toolchain=stable --profile=minimal - -# Delete rustup-init.exe when it's no longer needed -Remove-Item -Path .\rustup-init.exe +& $rustupPath -y --default-toolchain=stable --profile=minimal # Add Rust binaries to the path Add-MachinePathItem "$env:CARGO_HOME\bin" diff --git a/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 b/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 index bf330f690..8369a9944 100644 --- a/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 +++ b/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 @@ -5,57 +5,21 @@ Import-Module -Name ImageHelpers -Force -Function InstallMSI -{ - Param - ( - [String]$MsiUrl, - [String]$MsiName - ) - - $exitCode = -1 - - try - { - Write-Host "Downloading $MsiName..." - $FilePath = "${env:Temp}\$MsiName" - - Invoke-WebRequest -Uri $MsiUrl -OutFile $FilePath - - $Arguments = ('/i', $FilePath, '/QN', '/norestart' ) - - Write-Host "Starting Install $MsiName..." - $process = Start-Process -FilePath msiexec.exe -ArgumentList $Arguments -Wait -PassThru - $exitCode = $process.ExitCode - - if ($exitCode -eq 0 -or $exitCode -eq 3010) - { - Write-Host -Object 'Installation successful' - return $exitCode - } - else - { - Write-Host -Object "Non zero exit code returned by the installation process : $exitCode." - exit $exitCode - } - } - catch - { - Write-Host -Object "Failed to install the MSI $MsiName" - Write-Host -Object $_.Exception.Message - exit -1 - } -} +$BaseUrl = "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64" # install required MSIs -$SQLSysClrTypesExitCode = InstallMSI -MsiUrl "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64/SQLSysClrTypes.msi" -MsiName "SQLSysClrTypes.msi" +$SQLSysClrTypesName = "SQLSysClrTypes.msi" +$SQLSysClrTypesUrl = "${BaseUrl}/${SQLSysClrTypesName}" +Install-Binary -Url $SQLSysClrTypesUrl -Name $SQLSysClrTypesName -$SharedManagementObjectsExitCode = InstallMSI -MsiUrl "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64/SharedManagementObjects.msi" -MsiName "SharedManagementObjects.msi" +$SharedManagementObjectsName = "SharedManagementObjects.msi" +$SharedManagementObjectsUrl = "${BaseUrl}/${SharedManagementObjectsName}" +Install-Binary -Url $SharedManagementObjectsUrl -Name $SharedManagementObjectsName -$PowerShellToolsExitCode = InstallMSI -MsiUrl "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64/PowerShellTools.msi" -MsiName "PowerShellTools.msi" +$PowerShellToolsName = "PowerShellTools.msi" +$PowerShellToolsUrl = "${BaseUrl}/${PowerShellToolsName}" +Install-Binary -Url $PowerShellToolsUrl -Name $PowerShellToolsName # install sqlserver PS module Set-PSRepository -Name PSGallery -InstallationPolicy Trusted -Install-Module -Name SqlServer -AllowClobber - -exit $PowerShellToolsExitCode +Install-Module -Name SqlServer -AllowClobber \ No newline at end of file diff --git a/images/win/scripts/Installers/Update-AndroidSDK.ps1 b/images/win/scripts/Installers/Update-AndroidSDK.ps1 index 4a04b0b6f..0e35c27a7 100644 --- a/images/win/scripts/Installers/Update-AndroidSDK.ps1 +++ b/images/win/scripts/Installers/Update-AndroidSDK.ps1 @@ -5,10 +5,10 @@ # Download the latest command line tools so that we can accept all of the licenses. # See https://developer.android.com/studio/#command-tools -Invoke-WebRequest -UseBasicParsing -Uri "https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip" -OutFile android-sdk-tools.zip +$sdkArchPath = Start-DownloadWithRetry -Url "https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip" -Name "android-sdk-tools.zip" # Don't replace the one that VS installs as it seems to break things. -Expand-Archive -Path android-sdk-tools.zip -DestinationPath android-sdk -Force +Expand-Archive -Path $sdkArchPath -DestinationPath android-sdk -Force $sdk = Get-Item -Path .\android-sdk From 3fba9caa4f550544319c0201e7759f7a55f645cf Mon Sep 17 00:00:00 2001 From: Maksim Petrov <47208721+vmapetr@users.noreply.github.com> Date: Tue, 5 May 2020 20:50:00 +0300 Subject: [PATCH 24/51] Improve Windows Visual Studio provisioners (#758) * Add retries to DotnetSDK provisioner * Improve VS provisioners * Fixes in syntax * Fixes in syntax * Rename Install-VS function * Remove bootstrapperName parameter from Install-VisualStudio * Small fix --- .../scripts/ImageHelpers/ImageHelpers.psm1 | 1 + .../scripts/ImageHelpers/InstallHelpers.ps1 | 80 ++++++++++++++++-- .../scripts/Installers/Install-DotnetSDK.ps1 | 20 +++-- .../Installers/Windows2016/Install-VS2017.ps1 | 83 +++---------------- .../Installers/Windows2019/Install-VS2019.ps1 | 82 +++--------------- 5 files changed, 111 insertions(+), 155 deletions(-) diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 index 2b716880b..94ff7b204 100644 --- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 +++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 @@ -14,6 +14,7 @@ Export-ModuleMember -Function @( 'Get-SystemVariable' 'Set-SystemVariable' 'Install-Binary' + 'Install-VisualStudio' 'Get-ToolcachePackages' 'Get-ToolsetContent' 'Get-ToolsByName' diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index c8d70c8bf..8ec49e0d4 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -20,7 +20,8 @@ function Install-Binary Install-Binary -Url "https://go.microsoft.com/fwlink/p/?linkid=2083338" -Name "winsdksetup.exe" -ArgumentList ("/features", "+", "/quiet") #> - Param ( + Param + ( [Parameter(Mandatory)] [String] $Url, [Parameter(Mandatory)] @@ -62,6 +63,68 @@ function Install-Binary } } +Function Install-VisualStudio +{ + <# + .SYNOPSIS + A helper function to install Visual Studio. + + .DESCRIPTION + Prepare system environment, and install Visual Studio bootstrapper with selected workloads. + + .PARAMETER BootstrapperUrl + The URL from which the bootstrapper will be downloaded. Required parameter. + + .PARAMETER WorkLoads + The string that contain workloads that will be passed to the installer. + #> + + Param + ( + [Parameter(Mandatory)] + [String] $BootstrapperUrl, + [String] $WorkLoads + ) + + Write-Host "Downloading Bootstrapper ..." + $BootstrapperName = [IO.Path]::GetFileName($BootstrapperUrl) + $bootstrapperFilePath = Start-DownloadWithRetry -Url $BootstrapperUrl -Name $BootstrapperName + + try + { + Write-Host "Enable short name support on Windows needed for Xamarin Android AOT, defaults appear to have been changed in Azure VMs" + $shortNameEnableProcess = Start-Process -FilePath fsutil.exe -ArgumentList ('8dot3name', 'set', '0') -Wait -PassThru + + $shortNameEnableExitCode = $shortNameEnableProcess.ExitCode + if ($shortNameEnableExitCode -ne 0) + { + Write-Host "Enabling short name support on Windows failed. This needs to be enabled prior to VS 2017 install for Xamarin Andriod AOT to work." + exit $shortNameEnableExitCode + } + + Write-Host "Starting Install ..." + $bootstrapperArgumentList = ('/c', $bootstrapperFilePath, $WorkLoads, '--quiet', '--norestart', '--wait', '--nocache' ) + $process = Start-Process -FilePath cmd.exe -ArgumentList $bootstrapperArgumentList -Wait -PassThru + + $exitCode = $process.ExitCode + if ($exitCode -eq 0 -or $exitCode -eq 3010) + { + Write-Host "Installation successful" + return $exitCode + } + else + { + Write-Host "Non zero exit code returned by the installation process : $exitCode" + exit $exitCode + } + } + catch + { + Write-Host "Failed to install Visual Studio; $($_.Exception.Message)" + exit -1 + } +} + function Stop-SvcWithErrHandling { <# @@ -74,7 +137,8 @@ function Stop-SvcWithErrHandling .PARAMETER StopOnError Switch for stopping the script and exit from PowerShell if one service is absent #> - param ( + param + ( [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName, [switch] $StopOnError @@ -123,7 +187,8 @@ function Set-SvcWithErrHandling Hashtable for service arguments #> - param ( + param + ( [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName, [Parameter(Mandatory)] @@ -152,7 +217,8 @@ function Set-SvcWithErrHandling function Start-DownloadWithRetry { - param ( + param + ( [Parameter(Mandatory)] [string] $Url, [Parameter(Mandatory)] @@ -253,7 +319,8 @@ function Install-VsixExtension function Get-VSExtensionVersion { - param ( + Param + ( [Parameter(Mandatory=$true)] [string] $packageName ) @@ -289,7 +356,8 @@ function Get-ToolsetContent { } function Get-ToolsByName { - param ( + Param + ( [Parameter(Mandatory = $True)] [string]$SoftwareName ) diff --git a/images/win/scripts/Installers/Install-DotnetSDK.ps1 b/images/win/scripts/Installers/Install-DotnetSDK.ps1 index 57d7668c3..7668e7c2d 100644 --- a/images/win/scripts/Installers/Install-DotnetSDK.ps1 +++ b/images/win/scripts/Installers/Install-DotnetSDK.ps1 @@ -32,7 +32,10 @@ function InstallSDKVersion ( } # Fix for issue 1276. This will be fixed in 3.1. - Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dotnet/sdk/82bc30c99f1325dfaa7ad450be96857a4fca2845/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.ImportPublishProfile.targets" -outfile "C:\Program Files\dotnet\sdk\$sdkVersion\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.ImportPublishProfile.targets" + $sdkTargetsName = "Microsoft.NET.Sdk.ImportPublishProfile.targets" + $sdkTargetsUrl = "https://raw.githubusercontent.com/dotnet/sdk/82bc30c99f1325dfaa7ad450be96857a4fca2845/src/Tasks/Microsoft.NET.Build.Tasks/targets/${sdkTargetsName}" + $sdkTargetsPath = "C:\Program Files\dotnet\sdk\$sdkVersion\Sdks\Microsoft.NET.Sdk\targets" + Start-DownloadWithRetry -Url $sdkTargetsUrl -DownloadPath $sdkTargetsPath -Name $sdkTargetsName # warm up dotnet for first time experience $templates | ForEach-Object { @@ -49,8 +52,10 @@ function InstallSDKVersion ( function InstallAllValidSdks() { - Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/releases-index.json' -UseBasicParsing -OutFile 'releases-index.json' - $dotnetChannels = Get-Content -Path 'releases-index.json' | ConvertFrom-Json + $releaseIndexName = "releases-index.json" + $releaseIndexUrl = "https://raw.githubusercontent.com/dotnet/core/master/release-notes/${releaseIndexName}" + $releasesIndexPath = Start-DownloadWithRetry -Url $releaseIndexUrl -Name $releaseIndexName + $dotnetChannels = Get-Content -Path $releasesIndexPath | ConvertFrom-Json # Consider all channels except preview/eol channels. # Sort the channels in ascending order @@ -58,13 +63,15 @@ function InstallAllValidSdks() $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' + $installationName = "dotnet-install.ps1" + $installationUrl = "https://dot.net/v1/${installationName}" + Start-DownloadWithRetry -Url $installationUrl -Name $installationName -DownloadPath ".\" ForEach ($dotnetChannel in $dotnetChannels) { $channelVersion = $dotnetChannel.'channel-version'; - Invoke-WebRequest -Uri $dotnetChannel.'releases.json' -UseBasicParsing -OutFile "releases-$channelVersion.json" - $currentReleases = Get-Content -Path "releases-$channelVersion.json" | ConvertFrom-Json + $releasesJsonPath = Start-DownloadWithRetry -Url $dotnetChannel.'releases.json' -Name "releases-$channelVersion.json" + $currentReleases = Get-Content -Path $releasesJsonPath | ConvertFrom-Json # filtering out the preview/rc releases $currentReleases = $currentReleases.'releases' | Where-Object { !$_.'release-version'.Contains('-') } | Sort-Object { [Version] $_.'release-version' } @@ -74,7 +81,6 @@ function InstallAllValidSdks() { Write-Host 'Found sdks property in release: ' + $release.'release-version' + 'with sdks count: ' + $release.'sdks'.Count - # Remove duplicate entries & preview/rc version from download list # Sort the sdks on version $sdks = @($release.'sdk'); diff --git a/images/win/scripts/Installers/Windows2016/Install-VS2017.ps1 b/images/win/scripts/Installers/Windows2016/Install-VS2017.ps1 index 9edcb14f1..45fae7cd1 100644 --- a/images/win/scripts/Installers/Windows2016/Install-VS2017.ps1 +++ b/images/win/scripts/Installers/Windows2016/Install-VS2017.ps1 @@ -3,63 +3,11 @@ ## Desc: Install Visual Studio 2017 ################################################################################ -Function InstallVS -{ - Param - ( - [String]$WorkLoads, - [String]$Sku, - [String] $VSBootstrapperURL - ) +$ErrorActionPreference = "Stop" - $exitCode = -1 +Import-Module -Name ImageHelpers -Force - try - { - Write-Host "Enable short name support on Windows needed for Xamarin Android AOT, defaults appear to have been changed in Azure VMs" - $shortNameEnableProcess = Start-Process -FilePath fsutil.exe -ArgumentList ('8dot3name', 'set', '0') -Wait -PassThru - $shortNameEnableExitCode = $shortNameEnableProcess.ExitCode - - if ($shortNameEnableExitCode -ne 0) - { - Write-Host -Object 'Enabling short name support on Windows failed. This needs to be enabled prior to VS 2017 install for Xamarin Andriod AOT to work.' - exit $shortNameEnableExitCode - } - - Write-Host "Downloading Bootstrapper ..." - Invoke-WebRequest -Uri $VSBootstrapperURL -OutFile "${env:Temp}\vs_$Sku.exe" - - $FilePath = "${env:Temp}\vs_$Sku.exe" - $Arguments = ('/c', $FilePath, $WorkLoads, '--quiet', '--norestart', '--wait', '--nocache' ) - - Write-Host "Starting Install ..." - $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru - $exitCode = $process.ExitCode - - if ($exitCode -eq 0 -or $exitCode -eq 3010) - { - Write-Host -Object 'Installation successful' - return $exitCode - } - else - { - Write-Host -Object "Non zero exit code returned by the installation process : $exitCode." - - # this wont work because of log size limitation in extension manager - # Get-Content $customLogFilePath | Write-Host - - exit $exitCode - } - } - catch - { - Write-Host -Object "Failed to install Visual Studio. Check the logs for details in $customLogFilePath" - Write-Host -Object $_.Exception.Message - exit -1 - } -} - -$WorkLoads = '--allWorkloads --includeRecommended ' + ` +$WorkLoads = '--allWorkloads --includeRecommended ' + ` '--add Microsoft.Net.Component.4.6.2.SDK ' + ` '--add Microsoft.Net.Component.4.6.2.TargetingPack ' + ` '--add Microsoft.Net.ComponentGroup.4.6.2.DeveloperTools ' + ` @@ -129,20 +77,18 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + ` '--add Microsoft.VisualStudio.Workload.Office ' + ` '--add Microsoft.VisualStudio.Workload.OfficeBuildTools ' -$Sku = 'Enterprise' -$VSBootstrapperURL = 'https://aka.ms/vs/15/release/vs_enterprise.exe' - -$ErrorActionPreference = 'Stop' +$ReleaseInPath = "Enterprise" +$BootstrapperUrl = "https://aka.ms/vs/15/release/vs_${ReleaseInPath}.exe" # Install VS -$exitCode = InstallVS -WorkLoads $WorkLoads -Sku $Sku -VSBootstrapperURL $VSBootstrapperURL +Install-VisualStudio -BootstrapperUrl $BootstrapperUrl -WorkLoads $WorkLoads # Find the version of VS installed for this instance # Only supports a single instance $vsProgramData = Get-Item -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances" $instanceFolders = Get-ChildItem -Path $vsProgramData.FullName -if($instanceFolders -is [array]) +if ($instanceFolders -is [array]) { Write-Host "More than one instance installed" exit 1 @@ -151,20 +97,19 @@ if($instanceFolders -is [array]) $catalogContent = Get-Content -Path ($instanceFolders.FullName + '\catalog.json') $catalog = $catalogContent | ConvertFrom-Json $version = $catalog.info.id -$VSInstallRoot = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" -Write-Host "Visual Studio version" $version "installed" +$VSInstallRoot = "C:\Program Files (x86)\Microsoft Visual Studio\2017\$ReleaseInPath" +Write-Host "Visual Studio version ${version} installed" # Initialize Visual Studio Experimental Instance for integration testing -&"$VSInstallRoot\Common7\IDE\devenv.exe" /RootSuffix Exp /ResetSettings General.vssettings /Command File.Exit | Wait-Process +& "$VSInstallRoot\Common7\IDE\devenv.exe" /RootSuffix Exp /ResetSettings General.vssettings /Command File.Exit | Wait-Process # Updating content of MachineState.json file to disable autoupdate of VSIX extensions $newContent = '{"Extensions":[{"Key":"1e906ff5-9da8-4091-a299-5c253c55fdc9","Value":{"ShouldAutoUpdate":false}},{"Key":"Microsoft.VisualStudio.Web.AzureFunctions","Value":{"ShouldAutoUpdate":false}}],"ShouldAutoUpdate":false,"ShouldCheckForUpdates":false}' Set-Content -Path "$VSInstallRoot\Common7\IDE\Extensions\MachineState.json" -Value $newContent - # Adding description of the software to Markdown -$SoftwareName = "Visual Studio 2017 Enterprise" +$SoftwareName = "Visual Studio 2017 $ReleaseInPath" $Description = @" _Version:_ $version
@@ -198,8 +143,4 @@ In addition the following optional components are installed: Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description # Adding explicitly added Workloads details to markdown by parsing $Workloads -Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } ) - - - -exit $exitCode +Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } ) \ No newline at end of file diff --git a/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 index 1ccd5c422..627ff18d5 100644 --- a/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 +++ b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 @@ -4,61 +4,7 @@ ################################################################################ $ErrorActionPreference = "Stop" -Function InstallVS -{ - Param - ( - [String]$WorkLoads, - [String]$Sku, - [String] $VSBootstrapperURL - ) - - $exitCode = -1 - - try - { - Write-Host "Enable short name support on Windows needed for Xamarin Android AOT, defaults appear to have been changed in Azure VMs" - $shortNameEnableProcess = Start-Process -FilePath fsutil.exe -ArgumentList ('8dot3name', 'set', '0') -Wait -PassThru - $shortNameEnableExitCode = $shortNameEnableProcess.ExitCode - - if ($shortNameEnableExitCode -ne 0) - { - Write-Host -Object 'Enabling short name support on Windows failed. This needs to be enabled prior to VS 2017 install for Xamarin Andriod AOT to work.' - exit $shortNameEnableExitCode - } - - Write-Host "Downloading Bootstrapper ..." - Invoke-WebRequest -Uri $VSBootstrapperURL -OutFile "${env:Temp}\vs_$Sku.exe" - - $FilePath = "${env:Temp}\vs_$Sku.exe" - $Arguments = ('/c', $FilePath, $WorkLoads, '--quiet', '--norestart', '--wait', '--nocache' ) - - Write-Host "Starting Install ..." - $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru - $exitCode = $process.ExitCode - - if ($exitCode -eq 0 -or $exitCode -eq 3010) - { - Write-Host -Object 'Installation successful' - return $exitCode - } - else - { - Write-Host -Object "Non zero exit code returned by the installation process : $exitCode." - - # this wont work because of log size limitation in extension manager - # Get-Content $customLogFilePath | Write-Host - - exit $exitCode - } - } - catch - { - Write-Host -Object "Failed to install Visual Studio. Check the logs for details in $customLogFilePath" - Write-Host -Object $_.Exception.Message - exit -1 - } -} +Import-Module -Name ImageHelpers -Force $WorkLoads = '--allWorkloads --includeRecommended ' + ` '--add Component.Dotfuscator ' + ` @@ -150,22 +96,18 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + ` '--add Microsoft.VisualStudio.Workload.Universal ' + ` '--add Microsoft.VisualStudio.Workload.VisualStudioExtension' - -$ReleaseInPath = 'Enterprise' -$Sku = 'Enterprise' -$VSBootstrapperURL = 'https://aka.ms/vs/16/release/vs_Enterprise.exe' - -$ErrorActionPreference = 'Stop' +$ReleaseInPath = "Enterprise" +$BootstrapperUrl = "https://aka.ms/vs/16/release/vs_${ReleaseInPath}.exe" # Install VS -$exitCode = InstallVS -WorkLoads $WorkLoads -Sku $Sku -VSBootstrapperURL $VSBootstrapperURL +Install-VisualStudio -BootstrapperUrl $BootstrapperUrl -WorkLoads $WorkLoads # Find the version of VS installed for this instance # Only supports a single instance $vsProgramData = Get-Item -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances" $instanceFolders = Get-ChildItem -Path $vsProgramData.FullName -if($instanceFolders -is [array]) +if ($instanceFolders -is [array]) { Write-Host "More than one instance installed" exit 1 @@ -174,14 +116,15 @@ if($instanceFolders -is [array]) $catalogContent = Get-Content -Path ($instanceFolders.FullName + '\catalog.json') $catalog = $catalogContent | ConvertFrom-Json $version = $catalog.info.id -Write-Host "Visual Studio version" $version "installed" +$VSInstallRoot = "C:\Program Files (x86)\Microsoft Visual Studio\2019\$ReleaseInPath" +Write-Host "Visual Studio version ${version} installed" # Initialize Visual Studio Experimental Instance -&"C:\Program Files (x86)\Microsoft Visual Studio\2019\$ReleaseInPath\Common7\IDE\devenv.exe" /RootSuffix Exp /ResetSettings General.vssettings /Command File.Exit +& "$VSInstallRoot\Common7\IDE\devenv.exe" /RootSuffix Exp /ResetSettings General.vssettings /Command File.Exit # Updating content of MachineState.json file to disable autoupdate of VSIX extensions $newContent = '{"Extensions":[{"Key":"1e906ff5-9da8-4091-a299-5c253c55fdc9","Value":{"ShouldAutoUpdate":false}},{"Key":"Microsoft.VisualStudio.Web.AzureFunctions","Value":{"ShouldAutoUpdate":false}}],"ShouldAutoUpdate":false,"ShouldCheckForUpdates":false}' -Set-Content -Path "C:\Program Files (x86)\Microsoft Visual Studio\2019\$ReleaseInPath\Common7\IDE\Extensions\MachineState.json" -Value $newContent +Set-Content -Path "$VSInstallRoot\Common7\IDE\Extensions\MachineState.json" -Value $newContent # Adding description of the software to Markdown @@ -190,7 +133,7 @@ $SoftwareName = "Visual Studio 2019 Enterprise" $Description = @" _Version:_ $version
-_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2019\$ReleaseInPath +_Location:_ $VSInstallRoot The following workloads and components are installed with Visual Studio 2019: "@ @@ -198,7 +141,4 @@ The following workloads and components are installed with Visual Studio 2019: Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description # Adding explicitly added Workloads details to markdown by parsing $Workloads -Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } ) - - -exit $exitCode +Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } ) \ No newline at end of file From 3f36d8ef3571515765992f79cef2cafb82501f16 Mon Sep 17 00:00:00 2001 From: Maksim Petrov <47208721+vmapetr@users.noreply.github.com> Date: Wed, 6 May 2020 07:19:15 +0300 Subject: [PATCH 25/51] Improve Windows browsers provisioners stability (#725) * Improve Chrome provisioner * Improve Edge provisioner * Improve Firefox provisioner * Resolve conflicts in Install-Chrome.ps1 --- .../win/scripts/Installers/Install-Chrome.ps1 | 91 +++++++++---------- .../win/scripts/Installers/Install-Edge.ps1 | 43 +++++---- .../scripts/Installers/Install-Firefox.ps1 | 87 +++++++----------- 3 files changed, 96 insertions(+), 125 deletions(-) diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1 index c94641f10..22b477b28 100644 --- a/images/win/scripts/Installers/Install-Chrome.ps1 +++ b/images/win/scripts/Installers/Install-Chrome.ps1 @@ -3,23 +3,25 @@ ## Desc: Install Google Chrome ################################################################################ -Import-Module -Name ImageHelpers -Force; +Import-Module -Name ImageHelpers -Force -$ChromeInstallerFile = "chrome_installer.exe"; -$ChromeInstallerUrl = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"; +# Download and install latest Chrome browser +$ChromeInstallerFile = "chrome_installer.exe" +$ChromeInstallerUrl = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}" Install-Binary -Url $ChromeInstallerUrl -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install") -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"; +# Prepare firewall rules +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 -StopOnError; -$GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"}; +$GoogleSvcs = ('gupdate','gupdatem') +$GoogleSvcs | Stop-SvcWithErrHandling -StopOnError +$GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"} -$regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update"; -$regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome"; +$regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update" +$regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome" ($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object { - New-Item -Path $_ -Force; + New-Item -Path $_ -Force } $regGoogleParameters = @( @@ -31,52 +33,45 @@ $regGoogleParameters = @( ) $regGoogleParameters | ForEach-Object { - $Arguments = $_; - if (-not ($Arguments.Path)) { - $Arguments.Add("Path", $regGoogleUpdatePath); + $Arguments = $_ + if (-not ($Arguments.Path)) + { + $Arguments.Add("Path", $regGoogleUpdatePath) } - $Arguments.Add("Force", $true); - New-ItemProperty @Arguments; + $Arguments.Add("Force", $true) + New-ItemProperty @Arguments } -# Reinstall Chrome Web Driver -Write-Host "Install Chrome WebDriver" -$DestinationPath = "$($env:SystemDrive)\"; -$ChromeDriverPath = "${DestinationPath}SeleniumWebDrivers\ChromeDriver"; - -if (-not (Test-Path -Path $ChromeDriverPath)) { - New-Item -Path $ChromeDriverPath -ItemType "directory" +# Install Chrome WebDriver +Write-Host "Install Chrome WebDriver..." +$ChromeDriverPath = "$($env:SystemDrive)\SeleniumWebDrivers\ChromeDriver" +if (-not (Test-Path -Path $ChromeDriverPath)) +{ + New-Item -Path $ChromeDriverPath -ItemType Directory -Force } +Write-Host "Get the Chrome WebDriver version..." $RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths" -$ChromePath = (Get-ItemProperty "$RegistryPath\chrome.exe").'(default)'; -[version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion; -Write-Host "Chrome version: [$ChromeVersion]"; +$ChromePath = (Get-ItemProperty "$RegistryPath\chrome.exe").'(default)' +[version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion +$ChromeDriverVersionUrl = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$($ChromeVersion.Major).$($ChromeVersion.Minor).$($ChromeVersion.Build)" -$ChromeDriverVersionUri = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$($ChromeVersion.Major).$($ChromeVersion.Minor).$($ChromeVersion.Build)"; -Write-Host "Chrome driver version Uri [$ChromeDriverVersionUri]"; -Write-Host "Getting the Chrome driver version..."; -$ChromeDriverVersion = Invoke-WebRequest -Uri $ChromeDriverVersionUri; -Write-Host "Current Chrome driver version: [$ChromeDriverVersion]"; +$ChromeDriverVersionFile = Start-DownloadWithRetry -Url $ChromeDriverVersionUrl -Name "versioninfo.txt" -DownloadPath $ChromeDriverPath -$ChromeDriverZipDownloadUri = "https://chromedriver.storage.googleapis.com/$($ChromeDriverVersion.ToString())/chromedriver_win32.zip"; -Write-Host "Chrome driver zip file download Uri: [$ChromeDriverZipDownloadUri]"; +Write-Host "Download Chrome WebDriver..." +$ChromeDriverVersion = Get-Content -Path $ChromeDriverVersionFile +$ChromeDriverArchName = "chromedriver_win32.zip" +$ChromeDriverZipDownloadUrl = "https://chromedriver.storage.googleapis.com/${ChromeDriverVersion}/${ChromeDriverArchName}" -$DestFile= "$ChromeDriverPath\chromedriver_win32.zip"; -$ChromeDriverVersion.Content | Out-File -FilePath "$ChromeDriverPath\versioninfo.txt" -Force; +$ChromeDriverArchPath = Start-DownloadWithRetry -Url $ChromeDriverZipDownloadUrl -Name $ChromeDriverArchName -Write-Host "Chrome driver download...."; -Invoke-WebRequest -Uri $ChromeDriverZipDownloadUri -OutFile $DestFile; +Write-Host "Expand Chrome WebDriver archive..." +Expand-Archive -Path $ChromeDriverArchPath -DestinationPath $ChromeDriverPath -Force -Write-Host "Chrome driver install...."; -Expand-Archive -Path "$ChromeDriverPath\chromedriver_win32.zip" -DestinationPath $ChromeDriverPath -Force; -Remove-Item -Path "$ChromeDriverPath\chromedriver_win32.zip" -Force; +Write-Host "Setting the environment variables..." +setx ChromeWebDriver "$ChromeDriverPath" /M -Write-Host "Setting the environment variables" - -setx ChromeWebDriver "$ChromeDriverPath" /M; - -$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\'; -$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path'; -$PathValue += ";$ChromeDriverPath\"; -Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue; +$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' +$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path' +$PathValue += ";$ChromeDriverPath\" +Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Edge.ps1 b/images/win/scripts/Installers/Install-Edge.ps1 index 430e8bbb9..c10f24226 100644 --- a/images/win/scripts/Installers/Install-Edge.ps1 +++ b/images/win/scripts/Installers/Install-Edge.ps1 @@ -5,37 +5,36 @@ Choco-Install -PackageName microsoft-edge -# Install Microsoft Edge Web Driver -Write-Host "Install Edge WebDriver" -$DestinationPath = "$($env:SystemDrive)\"; - -$EdgeDriverPath = "${DestinationPath}SeleniumWebDrivers\EdgeDriver" -if (-not (Test-Path -Path $EdgeDriverPath)) { - New-Item -Path $EdgeDriverPath -ItemType "directory" +# Install Microsoft Edge WebDriver +Write-Host "Install Edge WebDriver..." +$EdgeDriverPath = "$($env:SystemDrive)\SeleniumWebDrivers\EdgeDriver" +if (-not (Test-Path -Path $EdgeDriverPath)) +{ + New-Item -Path $EdgeDriverPath -ItemType Directory -Force } +Write-Host "Get the Microsoft Edge WebDriver version..." $RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths" $EdgePath = (Get-ItemProperty "$RegistryPath\msedge.exe").'(default)' [version]$EdgeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($EdgePath).ProductVersion $EdgeDriverVersionUrl = "https://msedgedriver.azureedge.net/LATEST_RELEASE_$($EdgeVersion.Major)" -$EdgeDriverVersionFile = "$EdgeDriverPath\versioninfo.txt" -Invoke-WebRequest -Uri $EdgeDriverVersionUrl -OutFile $EdgeDriverVersionFile -Write-Host "Microsoft Edge driver download started" +$EdgeDriverVersionFile = Start-DownloadWithRetry -Url $EdgeDriverVersionUrl -Name "versioninfo.txt" -DownloadPath $EdgeDriverPath + +Write-Host "Download Microsoft Edge WebDriver..." $EdgeDriverLatestVersion = Get-Content -Path $EdgeDriverVersionFile -$EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/edgedriver_win64.zip" -$DestFile = "$EdgeDriverPath\edgedriver_win64.zip" -Invoke-WebRequest -Uri $EdgeDriverDownloadUrl -OutFile $DestFile +$EdgeDriverArchName = "edgedriver_win64.zip" +$EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/${EdgeDriverArchName}" -Write-Host "Microsoft Edge driver installation started" -Expand-Archive -Path $DestFile -DestinationPath $EdgeDriverPath -Force -Remove-Item -Path $DestFile -Force +$EdgeDriverArchPath = Start-DownloadWithRetry -Url $EdgeDriverDownloadUrl -Name $EdgeDriverArchName -Write-Host "Setting the environment variables" +Write-Host "Expand Microsoft Edge WebDriver archive..." +Expand-Archive -Path $EdgeDriverArchPath -DestinationPath $EdgeDriverPath -Force -setx EdgeWebDriver "$EdgeDriverPath" /M; +Write-Host "Setting the environment variables..." +setx EdgeWebDriver "$EdgeDriverPath" /M -$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\'; -$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path'; -$PathValue += ";$EdgeDriverPath\"; -Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue; +$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' +$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path' +$PathValue += ";$EdgeDriverPath\" +Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Firefox.ps1 b/images/win/scripts/Installers/Install-Firefox.ps1 index 2f919baa5..efd3fe8b4 100644 --- a/images/win/scripts/Installers/Install-Firefox.ps1 +++ b/images/win/scripts/Installers/Install-Firefox.ps1 @@ -5,71 +5,48 @@ Import-Module -Name ImageHelpers -Force -$temp_install_dir = 'C:\Windows\Installer' -New-Item -Path $temp_install_dir -ItemType Directory -Force +# Install and configure Firefox browser +Write-Host "Install latest Firefox browser..." +$VersionsManifest = Invoke-RestMethod "https://product-details.mozilla.org/1.0/firefox_versions.json" +$InstallerName = "firefox-browser.exe" +$InstallerUrl = "https://download.mozilla.org/?product=firefox-$($VersionsManifest.LATEST_FIREFOX_VERSION)&os=win64&lang=en-US" +$ArgumentList = ("/silent", "/install") -$versionsJson = Invoke-RestMethod "https://product-details.mozilla.org/1.0/firefox_versions.json" -$latestVersion = $versionsJson.LATEST_FIREFOX_VERSION -Write-Host "Firefox latest version: $latestVersion" +Install-Binary -Url $InstallerUrl -Name $InstallerName -ArgumentList $ArgumentList -# url for latest version of firefox -$urlLatestVersion = "https://download.mozilla.org/?product=firefox-${latestVersion}&os=win64&lang=en-US" -Install-Binary -Url $urlLatestVersion -Name "Firefox Setup $latestVersion.exe" -ArgumentList ("/silent", "/install") - -# Disable autoupdate -$firefoxDirectoryPath = Join-Path $env:ProgramFiles "Mozilla Firefox" -New-Item -path $firefoxDirectoryPath -Name 'mozilla.cfg' -Value '// +Write-Host "Disable autoupdate..." +$FirefoxDirectoryPath = Join-Path $env:ProgramFiles "Mozilla Firefox" +New-Item -path $FirefoxDirectoryPath -Name 'mozilla.cfg' -Value '// pref("browser.shell.checkDefaultBrowser", false); pref("app.update.enabled", false);' -ItemType file -force -$firefoxPreferencesFolder = Join-Path $firefoxDirectoryPath "defaults\pref" -New-Item -path $firefoxPreferencesFolder -Name 'local-settings.js' -Value 'pref("general.config.obscure_value", 0); +$FirefoxPreferencesFolder = Join-Path $FirefoxDirectoryPath "defaults\pref" +New-Item -path $FirefoxPreferencesFolder -Name 'local-settings.js' -Value 'pref("general.config.obscure_value", 0); pref("general.config.filename", "mozilla.cfg");' -ItemType file -force -# Install Firefox gecko Web Driver -Write-Host "Install Firefox WebDriver" -$DestinationPath = "$($env:SystemDrive)\"; -$SeleniumWebDriverPath = Join-Path $DestinationPath "SeleniumWebDrivers" - -$geckodriverJson = Invoke-RestMethod "https://api.github.com/repos/mozilla/geckodriver/releases/latest" -$geckodriverWindowsAsset = $geckodriverJson.assets | Where-Object { $_.name -Match "win64" } | Select-Object -First 1 - -$geckodriverVersion = $geckodriverJson.tag_name -Write-Host "Geckodriver version: $geckodriverVersion" - -$DriversZipFile = $geckodriverWindowsAsset.name -Write-Host "Selenium drivers download and install..." - -$FirefoxDriverPath = Join-Path $SeleniumWebDriverPath "GeckoDriver" - -if (-not (Test-Path -Path $FirefoxDriverPath)) { - New-Item -Path $FirefoxDriverPath -ItemType "directory" +# Download and install Gecko WebDriver +Write-Host "Install Gecko WebDriver..." +$GeckoDriverPath = "$($env:SystemDrive)\SeleniumWebDrivers\GeckoDriver" +if (-not (Test-Path -Path $GeckoDriverPath)) +{ + New-Item -Path $GeckoDriverPath -ItemType Directory -Force } -$geckodriverVersion.Substring(1) | Out-File -FilePath "$FirefoxDriverPath\versioninfo.txt" -Force; +Write-Host "Get the Gecko WebDriver version..." +$GeckoDriverJson = Invoke-RestMethod "https://api.github.com/repos/mozilla/geckodriver/releases/latest" +$GeckoDriverWindowsAsset = $GeckoDriverJson.assets | Where-Object { $_.name -Match "win64" } | Select-Object -First 1 +$GeckoDriverVersion = $GeckoDriverJson.tag_name +$GeckoDriverVersion.Substring(1) | Out-File -FilePath "$GeckoDriverPath\versioninfo.txt" -Force; -# Install Firefox Web Driver -Write-Host "FireFox driver download...." -if (-not (Test-Path -Path $FireFoxDriverPath)) { - New-Item -Path $FireFoxDriverPath -ItemType "directory" -} +Write-Host "Download Gecko WebDriver WebDriver..." +$GeckoDriverArchName = $GeckoDriverWindowsAsset.name +$GeckoDriverDownloadUrl = $GeckoDriverWindowsAsset.browser_download_url -$DestFile = Join-Path $FireFoxDriverPath $DriversZipFile -$FireFoxDriverDownloadUrl = $geckodriverWindowsAsset.browser_download_url -try{ - Invoke-WebRequest -Uri $FireFoxDriverDownloadUrl -OutFile $DestFile -} catch { - Write-Error "[!] Failed to download $DriversZipFile" - exit 1 -} +$GeckoDriverArchPath = Start-DownloadWithRetry -Url $GeckoDriverDownloadUrl -Name $GeckoDriverArchName -Write-Host "FireFox driver install...." -Expand-Archive -Path $DestFile -DestinationPath $FireFoxDriverPath -Force -Remove-Item -Path $DestFile -Force +Write-Host "Expand Gecko WebDriver archive..." +Expand-Archive -Path $GeckoDriverArchPath -DestinationPath $GeckoDriverPath -Force - -Write-Host "Setting the environment variables" -Add-MachinePathItem -PathItem $FireFoxDriverPath -setx GeckoWebDriver "$FirefoxDriverPath" /M; - -exit 0 +Write-Host "Setting the environment variables..." +Add-MachinePathItem -PathItem $GeckoDriverPath +setx GeckoWebDriver "$GeckoDriverPath" /M \ No newline at end of file From c6f9a9a38af1884acccd0a4eb00c850fdbb97f8b Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 6 May 2020 07:20:11 +0300 Subject: [PATCH 26/51] Add retry logic for javatools (#802) * Add retry logic for javatools --- .../scripts/Installers/Install-JavaTools.ps1 | 50 ++++++------------- 1 file changed, 16 insertions(+), 34 deletions(-) diff --git a/images/win/scripts/Installers/Install-JavaTools.ps1 b/images/win/scripts/Installers/Install-JavaTools.ps1 index 96282371b..8ab75910c 100644 --- a/images/win/scripts/Installers/Install-JavaTools.ps1 +++ b/images/win/scripts/Installers/Install-JavaTools.ps1 @@ -3,33 +3,22 @@ ## Desc: Install various JDKs and java tools ################################################################################ +Import-Module -Name ImageHelpers -Force + # Download the Azul Systems Zulu JDKs # See https://www.azul.com/downloads/azure-only/zulu/ -$azulJDK7Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-7/7u232/zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64.zip' -$azulJDK8Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-8/8u222/zulu-8-azure-jdk_8.40.0.25-8.0.222-win_x64.zip' -$azulJDK11Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-11/11.0.4/zulu-11-azure-jdk_11.33.15-11.0.4-win_x64.zip' -$azulJDK13Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-13/13.0.3/zulu-13-azure-jdk_13.31.11-13.0.3-win_x64.zip' +$azulJDKURLs = @( + 'https://repos.azul.com/azure-only/zulu/packages/zulu-7/7u232/zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64.zip', + 'https://repos.azul.com/azure-only/zulu/packages/zulu-8/8u222/zulu-8-azure-jdk_8.40.0.25-8.0.222-win_x64.zip', + 'https://repos.azul.com/azure-only/zulu/packages/zulu-11/11.0.4/zulu-11-azure-jdk_11.33.15-11.0.4-win_x64.zip', + 'https://repos.azul.com/azure-only/zulu/packages/zulu-13/13.0.3/zulu-13-azure-jdk_13.31.11-13.0.3-win_x64.zip' +) -cd $env:TEMP - -Invoke-WebRequest -UseBasicParsing -Uri $azulJDK7Uri -OutFile azulJDK7.zip -Invoke-WebRequest -UseBasicParsing -Uri $azulJDK8Uri -OutFile azulJDK8.zip -Invoke-WebRequest -UseBasicParsing -Uri $azulJDK11Uri -OutFile azulJDK11.zip -Invoke-WebRequest -UseBasicParsing -Uri $azulJDK13Uri -OutFile azulJDK13.zip - -# Expand the zips -Expand-Archive -Path azulJDK7.zip -DestinationPath "C:\Program Files\Java\" -Force -Expand-Archive -Path azulJDK8.zip -DestinationPath "C:\Program Files\Java\" -Force -Expand-Archive -Path azulJDK11.zip -DestinationPath "C:\Program Files\Java\" -Force -Expand-Archive -Path azulJDK13.zip -DestinationPath "C:\Program Files\Java\" -Force - -# Deleting zip folders -Remove-Item -Recurse -Force azulJDK7.zip -Remove-Item -Recurse -Force azulJDK8.zip -Remove-Item -Recurse -Force azulJDK11.zip -Remove-Item -Recurse -Force azulJDK13.zip - -Import-Module -Name ImageHelpers -Force +foreach ($azulJDKURL in $azulJDKURLs) +{ + $archivePath = Start-DownloadWithRetry -Url $azulJDKURL -Name $([IO.Path]::GetFileName($azulJDKURL)) + Expand-Archive -Path $archivePath -DestinationPath "C:\Program Files\Java\" +} $currentPath = Get-MachinePath @@ -38,7 +27,7 @@ $newPathSegments = @() foreach ($pathSegment in $pathSegments) { - if($pathSegment -notlike '*java*') + if ($pathSegment -notlike '*java*') { $newPathSegments += $pathSegment } @@ -93,14 +82,7 @@ setx MAVEN_OPTS $maven_opts /M $uri = 'https://ayera.dl.sourceforge.net/project/cobertura/cobertura/2.1.1/cobertura-2.1.1-bin.zip' $coberturaPath = "C:\cobertura-2.1.1" -cd $env:TEMP - -Invoke-WebRequest -UseBasicParsing -Uri $uri -OutFile cobertura.zip - -# Expand the zip -Expand-Archive -Path cobertura.zip -DestinationPath "C:\" -Force - -# Deleting zip folder -Remove-Item -Recurse -Force cobertura.zip +$archivePath = Start-DownloadWithRetry -Url $uri -Name "cobertura.zip" +Expand-Archive -Path $archivePath -DestinationPath "C:\" setx COBERTURA_HOME $coberturaPath /M From ead5b53355485251a8f416b34246a51a9348436b Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 6 May 2020 07:20:39 +0300 Subject: [PATCH 27/51] Add retry logic for Selenium server download (#807) * Add retry logic for selenium * Refactoring * Add retries for Selenium release info * Minor fix --- .../scripts/Installers/Install-Selenium.ps1 | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/images/win/scripts/Installers/Install-Selenium.ps1 b/images/win/scripts/Installers/Install-Selenium.ps1 index ac38c3010..720e28039 100644 --- a/images/win/scripts/Installers/Install-Selenium.ps1 +++ b/images/win/scripts/Installers/Install-Selenium.ps1 @@ -3,6 +3,8 @@ ## Desc: Install Selenium Server standalone ################################################################################ +Import-Module -Name ImageHelpers -Force + # Acquire latest Selenium release number from GitHub API $latestReleaseUrl = "https://api.github.com/repos/SeleniumHQ/selenium/releases/latest" try { @@ -20,16 +22,13 @@ $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" -try { - Invoke-WebRequest -UseBasicParsing -Uri $seleniumReleaseUrl -OutFile $seleniumBinPath -} catch { - Write-Error $_ - exit 1 -} +$seleniumDirectory = "C:\selenium\" +$seleniumFileName = "selenium-server-standalone.jar" + +New-Item -ItemType directory -Path $seleniumDirectory + +Start-DownloadWithRetry -Url $seleniumReleaseUrl -Name $seleniumFileName -DownloadPath $seleniumDirectory Write-Host "Add selenium jar to the environment variables..." +$seleniumBinPath = Join-Path $seleniumDirectory $seleniumFileName setx "SELENIUM_JAR_PATH" "$($seleniumBinPath)" /M - -exit 0 From 8491d71a0b76ae4a8572a27f683e396269bfa80c Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 6 May 2020 08:51:47 +0300 Subject: [PATCH 28/51] Fix kubectl installation (#799) * Fix kubectl installation * Fix kubectl installation * Add --client flag * Fix for ubuntu 16.04 * Move kubectl apt packages installation to basic.sh * Combined separated scripts for kubectl installation to one * Minor fix * Remove apt-transport-https package from basic.sh * Delete helm init --- images/linux/scripts/installers/1604/basic.sh | 6 ++- .../installers/1604/kubernetes-tools.sh | 40 ------------------- images/linux/scripts/installers/1804/basic.sh | 4 ++ .../installers/{1804 => }/kubernetes-tools.sh | 10 ++--- images/linux/ubuntu1604.json | 2 +- images/linux/ubuntu1804.json | 2 +- 6 files changed, 13 insertions(+), 51 deletions(-) delete mode 100644 images/linux/scripts/installers/1604/kubernetes-tools.sh rename images/linux/scripts/installers/{1804 => }/kubernetes-tools.sh (79%) diff --git a/images/linux/scripts/installers/1604/basic.sh b/images/linux/scripts/installers/1604/basic.sh index e579e1c01..ef6bac321 100644 --- a/images/linux/scripts/installers/1604/basic.sh +++ b/images/linux/scripts/installers/1604/basic.sh @@ -40,7 +40,7 @@ apt-fast install -y --no-install-recommends \ zip \ zstd -# Electron / VSCode / GitHub Desktop prereqs +# Electron / VSCode / GitHub Desktop / kubectl prereqs apt-fast install -y --no-install-recommends \ libxkbfile-dev \ pkg-config \ @@ -57,7 +57,8 @@ apt-fast install -y --no-install-recommends \ rpm \ xz-utils \ xorriso \ - zsync + zsync \ + gnupg2 # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" @@ -99,3 +100,4 @@ DocumentInstalledItemIndent "upx" DocumentInstalledItemIndent "wget" DocumentInstalledItemIndent "zip" DocumentInstalledItemIndent "zstd" +DocumentInstalledItemIndent "gnupg2" diff --git a/images/linux/scripts/installers/1604/kubernetes-tools.sh b/images/linux/scripts/installers/1604/kubernetes-tools.sh deleted file mode 100644 index 4855dc716..000000000 --- a/images/linux/scripts/installers/1604/kubernetes-tools.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -################################################################################ -## File: kubernetes-tools.sh -## Desc: Installs kubectl, helm -################################################################################ - -# Source the helpers for use with the script -source $HELPER_SCRIPTS/document.sh -source $HELPER_SCRIPTS/apt.sh - -## Install kubectl -apt-get install -y apt-transport-https -curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - -touch /etc/apt/sources.list.d/kubernetes.list -echo "deb http://apt.kubernetes.io/ kubernetes-$(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/kubernetes.list -apt-get update -apt-get install -y kubectl - -# Install Helm -curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash - -# Run tests to determine that the software installed as expected -echo "Testing to make sure that script performed as expected, and basic scenarios work" -if ! command -v kubectl; then - echo "kubectl was not installed" - exit 1 -fi - -if ! command -v helm; then - echo "helm was not installed" - exit 1 -fi - -echo "Initializing helm" -helm init --client-only - -# Document what was added to the image -echo "Lastly, documenting what we added to the metadata file" -DocumentInstalledItem "kubectl ($(kubectl version --short |& head -n 1))" -DocumentInstalledItem "helm ($(helm version --short |& head -n 1))" diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 29cb15b40..2b8c00181 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -130,6 +130,9 @@ apt-get install -y --no-install-recommends curl echo "Install parallel" apt-get install -y --no-install-recommends parallel +echo "Install gnupg2" +apt-get install -y --no-install-recommends gnupg2 + # 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 parallel rsync shellcheck sudo telnet time unzip wget zip; do @@ -168,3 +171,4 @@ DocumentInstalledItemIndent "upx" DocumentInstalledItemIndent "wget" DocumentInstalledItemIndent "zip" DocumentInstalledItemIndent "zstd" +DocumentInstalledItemIndent "gnupg2" diff --git a/images/linux/scripts/installers/1804/kubernetes-tools.sh b/images/linux/scripts/installers/kubernetes-tools.sh similarity index 79% rename from images/linux/scripts/installers/1804/kubernetes-tools.sh rename to images/linux/scripts/installers/kubernetes-tools.sh index 38659028f..6fcdb4c02 100644 --- a/images/linux/scripts/installers/1804/kubernetes-tools.sh +++ b/images/linux/scripts/installers/kubernetes-tools.sh @@ -9,12 +9,11 @@ source $HELPER_SCRIPTS/document.sh source $HELPER_SCRIPTS/apt.sh ## Install kubectl -apt-get install -y apt-transport-https curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - touch /etc/apt/sources.list.d/kubernetes.list -# Based on https://kubernetes.io/docs/tasks/tools/install-kubectl/, package is still called xenial -echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list +# Based on https://kubernetes.io/docs/tasks/tools/install-kubectl/, package is xenial for both OS versions. +echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list apt-get update apt-get install -y kubectl @@ -33,10 +32,7 @@ if ! command -v helm; then exit 1 fi -echo "Initializing helm" -helm init --client-only - # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" -DocumentInstalledItem "kubectl ($(kubectl version --short |& head -n 1))" +DocumentInstalledItem "kubectl ($(kubectl version --client --short |& head -n 1))" DocumentInstalledItem "helm ($(helm version --short |& head -n 1))" diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index a4f138db7..b4c1846c3 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -204,7 +204,7 @@ "{{template_dir}}/scripts/installers/image-magick.sh", "{{template_dir}}/scripts/installers/java-tools.sh", "{{template_dir}}/scripts/installers/kind.sh", - "{{template_dir}}/scripts/installers/1604/kubernetes-tools.sh", + "{{template_dir}}/scripts/installers/kubernetes-tools.sh", "{{template_dir}}/scripts/installers/leiningen.sh", "{{template_dir}}/scripts/installers/1604/mercurial.sh", "{{template_dir}}/scripts/installers/miniconda.sh", diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index f72233e61..51a6ff9ab 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -207,7 +207,7 @@ "{{template_dir}}/scripts/installers/image-magick.sh", "{{template_dir}}/scripts/installers/java-tools.sh", "{{template_dir}}/scripts/installers/kind.sh", - "{{template_dir}}/scripts/installers/1804/kubernetes-tools.sh", + "{{template_dir}}/scripts/installers/kubernetes-tools.sh", "{{template_dir}}/scripts/installers/leiningen.sh", "{{template_dir}}/scripts/installers/1804/mercurial.sh", "{{template_dir}}/scripts/installers/miniconda.sh", From 17a441ec8e1aebc2977989bb08a929e7a8851edb Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Wed, 6 May 2020 09:44:53 +0300 Subject: [PATCH 29/51] Disable crash reporting (#826) * disable jit debugger * override settings asfter vs installation --- images/win/Windows2016-Azure.json | 6 ++++++ images/win/Windows2019-Azure.json | 6 ++++++ .../scripts/Installers/Disable-JITDebugger.ps1 | 16 ++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 images/win/scripts/Installers/Disable-JITDebugger.ps1 diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 834de3afb..506073423 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -944,6 +944,12 @@ "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1" + ] + }, { "type": "powershell", "inline": [ diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 1b3e5f74f..2a89973ef 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -947,6 +947,12 @@ "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1" + ] + }, { "type": "powershell", "inline": [ diff --git a/images/win/scripts/Installers/Disable-JITDebugger.ps1 b/images/win/scripts/Installers/Disable-JITDebugger.ps1 new file mode 100644 index 000000000..1ae5d21bc --- /dev/null +++ b/images/win/scripts/Installers/Disable-JITDebugger.ps1 @@ -0,0 +1,16 @@ +Write-Host "Disable Just-In-Time Debugger" + +# Turn off Application Error Debugger +New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" -Name Debugger -Value "-" -Type String -Force +New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug" -Name Debugger -Value "-" -Type String -Force + +# Turn off the Debug dialog +New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework" -Name DbgManagedDebugger -Value "-" -Type String -Force +New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework" -Name DbgManagedDebugger -Value "-" -Type String -Force + +# Disable the WER UI +New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name DontShowUI -Value 1 -Type DWORD -Force +# Send all reports to the user's queue +New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name ForceQueue -Value 1 -Type DWORD -Force +# Default consent choice 1 - Always ask (default) +New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Consent" -Name DefaultConsent -Value 1 -Type DWORD -Force \ No newline at end of file From 1833395768823217b56402e71733dd7b111aabd4 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 6 May 2020 13:15:34 +0300 Subject: [PATCH 30/51] Fix maven environment variable (#831) --- images/win/scripts/Installers/Install-JavaTools.ps1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-JavaTools.ps1 b/images/win/scripts/Installers/Install-JavaTools.ps1 index 8ab75910c..455283d09 100644 --- a/images/win/scripts/Installers/Install-JavaTools.ps1 +++ b/images/win/scripts/Installers/Install-JavaTools.ps1 @@ -63,8 +63,7 @@ Choco-Install -PackageName maven -ArgumentList "-i", "--version=3.6.3" Choco-Install -PackageName gradle # Move maven variables to Machine. They may not be in the environment for this script so we need to read them from the registry. -$userSid = (Get-WmiObject win32_useraccount -Filter "name = '$env:USERNAME' AND domain = '$env:USERDOMAIN'").SID -$userEnvironmentKey = 'Registry::HKEY_USERS\' + $userSid + '\Environment' +$userEnvironmentKey = 'Registry::HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' $m2_home = (Get-ItemProperty -Path $userEnvironmentKey -Name M2_HOME).M2_HOME $m2 = $m2_home + '\bin' From 48f3964fe67be7ba20761c4c186ba00418c3bb86 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Thu, 7 May 2020 18:57:07 +0300 Subject: [PATCH 31/51] Updating readme file for macOS version 20200430.1 (#846) --- images/macos/macos-10.15-Readme.md | 122 +++++++++++++++-------------- 1 file changed, 63 insertions(+), 59 deletions(-) diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md index e708126b2..c0a030ad6 100644 --- a/images/macos/macos-10.15-Readme.md +++ b/images/macos/macos-10.15-Readme.md @@ -2,7 +2,7 @@ - System Version: macOS 10.15.4 (19E287) - Kernel Version: Darwin 19.4.0 - System Integrity Protection: Enabled -- Image Version: 20200425.1 +- Image Version: 20200430.1 # Installed Software ## Language and Runtime @@ -18,9 +18,9 @@ - gcc-9 (Homebrew GCC 9.3.0_1) 9.3.0 - GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 - GNU Fortran (Homebrew GCC 9.3.0_1) 9.3.0 -- Node.js v12.16.2 +- Node.js v12.16.3 - NVM 0.33.11 -- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.2 v13.13.0 +- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.3 v13.14.0 - PowerShell 7.0.0 - Python 2.7.17 - Python 3.7.7 @@ -36,7 +36,7 @@ - Bundler version 2.1.4 - Carthage 0.34.0 - CocoaPods 1.9.1 -- Homebrew 2.2.13 +- Homebrew 2.2.14 - NPM 6.14.4 - Yarn 1.22.4 - NuGet 5.5.0.6382 @@ -50,7 +50,7 @@ - Gradle 6.3 ## Utilities -- Curl 7.69.1 +- Curl 7.70.0 - Git: 2.26.2 - Git LFS: 2.10.0 - Hub CLI: 2.14.2 @@ -74,20 +74,20 @@ ## Tools - Fastlane 2.146.1 -- Cmake 3.17.1 +- Cmake 3.17.2 - App Center CLI 2.5.0 -- Azure CLI 2.4.0 -- AWS CLI 2.0.9 -- AWS SAM CLI 0.47.0 +- Azure CLI 2.5.1 +- AWS CLI 2.0.10 +- AWS SAM CLI 0.48.0 - Aliyun CLI 3.0.39 ## Browsers - Safari 13.1 (15609.1.20.111.8) - SafariDriver 13.1 (15609.1.20.111.8) -- Google Chrome 81.0.4044.122 +- Google Chrome 81.0.4044.129 - ChromeDriver 81.0.4044.69 -- Microsoft Edge 81.0.416.64 -- MSEdgeDriver 81.0.416.64 +- Microsoft Edge 81.0.416.68 +- MSEdgeDriver 81.0.416.68 - Mozilla Firefox 75.0 - geckodriver 0.26.0 @@ -99,10 +99,10 @@ - 2.7.1 ### Python -- 2.7.17 +- 2.7.18 - 3.5.9 - 3.6.10 -- 3.7.6 +- 3.7.7 - 3.8.2 ### PyPy @@ -145,17 +145,18 @@ - NUnit 3.6.1 ## Xcode -| Version | Build | Path | -| ---------------- | ------- | ------------------------------ | -| 11.4.1 (default) | 11E503a | /Applications/Xcode_11.4.1.app | -| 11.4 | 11E146 | /Applications/Xcode_11.4.app | -| 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app | -| 11.3 | 11C29 | /Applications/Xcode_11.3.app | -| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app | -| 11.2 | 11B52 | /Applications/Xcode_11.2.app | -| 11.1 | 11A1027 | /Applications/Xcode_11.1.app | -| 11.0 | 11A420a | /Applications/Xcode_11.app | -| 10.3 | 10G8 | /Applications/Xcode_10.3.app | +| Version | Build | Path | +| ---------------- | ------- | --------------------------------- | +| 11.5 (beta) | 11N605c | /Applications/Xcode_11.5_beta.app | +| 11.4.1 (default) | 11E503a | /Applications/Xcode_11.4.1.app | +| 11.4 | 11E146 | /Applications/Xcode_11.4.app | +| 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app | +| 11.3 | 11C29 | /Applications/Xcode_11.3.app | +| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app | +| 11.2 | 11B52 | /Applications/Xcode_11.2.app | +| 11.1 | 11A1027 | /Applications/Xcode_11.1.app | +| 11.0 | 11A420a | /Applications/Xcode_11.app | +| 10.3 | 10G8 | /Applications/Xcode_10.3.app | ### Xcode Support Tools - Nomad CLI 3.1.2 @@ -165,37 +166,39 @@ - xcversion 2.6.4 ### Installed SDKs -| SDK | SDK Name | Xcode Version | -| ----------------------- | -------------------- | ---------------------------------------------------- | -| macOS 10.14 | macosx10.14 | 10.3 | -| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1 | -| iOS 12.4 | iphoneos12.4 | 10.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, 11.3, 11.3.1 | -| iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 | -| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 | -| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 | -| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 | -| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | -| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 | -| tvOS 12.4 | appletvos12.4 | 10.3 | -| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 | -| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | -| tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1 | -| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 | -| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 | -| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | -| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1 | -| watchOS 5.3 | watchos5.3 | 10.3 | -| watchOS 6.0 | watchos6.0 | 11.0, 11.1 | -| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 | -| watchOS 6.2 | watchos6.2 | 11.4, 11.4.1 | -| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 | -| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 | -| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3, 11.3.1 | -| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1 | -| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1 | +| SDK | SDK Name | Xcode Version | +| ----------------------- | -------------------- | ---------------------------------------------------------- | +| macOS 10.14 | macosx10.14 | 10.3 | +| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1, 11.5 | +| iOS 12.4 | iphoneos12.4 | 10.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, 11.3, 11.3.1 | +| iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 | +| iOS 13.5 | iphoneos13.5 | 11.5 | +| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 | +| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 | +| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 | +| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | +| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 | +| Simulator - iOS 13.5 | iphonesimulator13.5 | 11.5 | +| tvOS 12.4 | appletvos12.4 | 10.3 | +| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 | +| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | +| tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1, 11.5 | +| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 | +| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 | +| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | +| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1, 11.5 | +| watchOS 5.3 | watchos5.3 | 10.3 | +| watchOS 6.0 | watchos6.0 | 11.0, 11.1 | +| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 | +| watchOS 6.2 | watchos6.2 | 11.4, 11.4.1, 11.5 | +| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 | +| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 | +| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3, 11.3.1 | +| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5 | +| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1, 11.5 | ### Installed Simulators | OS | Xcode Version | Simulators | @@ -205,16 +208,17 @@ | iOS 13.1 | 11.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | | iOS 13.2 | 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 Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | | iOS 13.3 | 11.3
11.3.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | -| iOS 13.4 | 11.4
11.4.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 (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Air (3rd generation)
iPhone SE (2nd generation) | +| iOS 13.4 | 11.4
11.4.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone SE (2nd generation)
iPad Pro (9.7-inch)
iPad (7th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Air (3rd generation) | +| iOS 13.5 | 11.5 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone SE (2nd generation)
iPad Pro (9.7-inch)
iPad (7th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Air (3rd generation) | | tvOS 12.4 | 10.3 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | | tvOS 13.0 | 11.0
11.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | | tvOS 13.2 | 11.2
11.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | | tvOS 13.3 | 11.3
11.3.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | -| tvOS 13.4 | 11.4
11.4.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| tvOS 13.4 | 11.4
11.4.1
11.5 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | | watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm
Apple Watch Series 2 - 42mm
Apple Watch Series 3 - 38mm
Apple Watch Series 3 - 42mm
Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm | | watchOS 6.0 | 11.0
11.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | | watchOS 6.1 | 11.2
11.2.1
11.3
11.3.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | -| watchOS 6.2 | 11.4
11.4.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | +| watchOS 6.2 | 11.4
11.4.1
11.5 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | ## Android ### Android SDK Tools From 68fdb181e5dde13a4d1880c6e7798f629a36aeb5 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Fri, 8 May 2020 11:14:27 +0000 Subject: [PATCH 32/51] Add nodejs toolcache for windows (#840) * add installation of nodejs Co-authored-by: Dmitry Shibanov --- images/win/scripts/Installers/Validate-Toolset.ps1 | 5 ++++- images/win/toolset-2016.json | 12 ++++++++++++ images/win/toolset-2019.json | 12 ++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Validate-Toolset.ps1 b/images/win/scripts/Installers/Validate-Toolset.ps1 index 28963b12a..34c613d93 100644 --- a/images/win/scripts/Installers/Validate-Toolset.ps1 +++ b/images/win/scripts/Installers/Validate-Toolset.ps1 @@ -62,7 +62,10 @@ $ErrorActionPreference = "Stop" Import-Module -Name ImageHelpers -Force # Define executables for cached tools -$toolsExecutables = @{ Python = @("python.exe", "Scripts\pip.exe") } +$toolsExecutables = @{ + Python = @("python.exe", "Scripts\pip.exe"); + node = @("node.exe", "npm") +} # Get toolcache content from toolset $tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache diff --git a/images/win/toolset-2016.json b/images/win/toolset-2016.json index da372c498..c1500a4a1 100644 --- a/images/win/toolset-2016.json +++ b/images/win/toolset-2016.json @@ -26,6 +26,18 @@ "3.7.*", "3.8.*" ] + }, + { + "name": "node", + "url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json", + "arch": "x64", + "platform" : "win32", + "versions": [ + "8.*", + "10.*", + "12.*", + "14.*" + ] } ] } \ No newline at end of file diff --git a/images/win/toolset-2019.json b/images/win/toolset-2019.json index da372c498..c1500a4a1 100644 --- a/images/win/toolset-2019.json +++ b/images/win/toolset-2019.json @@ -26,6 +26,18 @@ "3.7.*", "3.8.*" ] + }, + { + "name": "node", + "url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json", + "arch": "x64", + "platform" : "win32", + "versions": [ + "8.*", + "10.*", + "12.*", + "14.*" + ] } ] } \ No newline at end of file From 9b1143ddddc87e3924cc36a7cefc3d14c4bf10cb Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Sat, 9 May 2020 04:31:49 +0000 Subject: [PATCH 33/51] Add nodejs tool cache for linux. (#839) * add nodejs * 4 node versions Co-authored-by: Dmitry Shibanov --- images/linux/scripts/installers/Install-Toolset.ps1 | 3 ++- images/linux/scripts/installers/Validate-Toolset.ps1 | 5 ++++- images/linux/toolset-1604.json | 12 ++++++++++++ images/linux/toolset-1804.json | 12 ++++++++++++ images/linux/ubuntu1604.json | 12 ++++++------ images/linux/ubuntu1804.json | 12 ++++++------ 6 files changed, 42 insertions(+), 14 deletions(-) diff --git a/images/linux/scripts/installers/Install-Toolset.ps1 b/images/linux/scripts/installers/Install-Toolset.ps1 index 518a1f9bc..b6e4abbd9 100644 --- a/images/linux/scripts/installers/Install-Toolset.ps1 +++ b/images/linux/scripts/installers/Install-Toolset.ps1 @@ -52,4 +52,5 @@ foreach ($tool in $tools) { } } -chown -R "$($env:SUDO_USER):$($env:SUDO_USER)" /opt/hostedtoolcache/Python \ No newline at end of file +chown -R "$($env:SUDO_USER):$($env:SUDO_USER)" /opt/hostedtoolcache/Python +chown -R "$($env:SUDO_USER):$($env:SUDO_USER)" /opt/hostedtoolcache/node \ No newline at end of file diff --git a/images/linux/scripts/installers/Validate-Toolset.ps1 b/images/linux/scripts/installers/Validate-Toolset.ps1 index 13847465e..e0b42b644 100644 --- a/images/linux/scripts/installers/Validate-Toolset.ps1 +++ b/images/linux/scripts/installers/Validate-Toolset.ps1 @@ -26,7 +26,10 @@ function Run-ExecutableTests { $ErrorActionPreference = "Stop" # Define executables for cached tools -$toolsExecutables = @{ Python = @("python", "bin/pip") } +$toolsExecutables = @{ + Python = @("python", "bin/pip"); + node = @("bin/node", "bin/npm") +} # Get toolset content $toolsetJson = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw diff --git a/images/linux/toolset-1604.json b/images/linux/toolset-1604.json index e3953f81b..23393b663 100644 --- a/images/linux/toolset-1604.json +++ b/images/linux/toolset-1604.json @@ -13,6 +13,18 @@ "3.7.*", "3.8.*" ] + }, + { + "name": "node", + "url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json", + "platform" : "linux", + "arch": "x64", + "versions": [ + "8.*", + "10.*", + "12.*", + "14.*" + ] } ] } \ No newline at end of file diff --git a/images/linux/toolset-1804.json b/images/linux/toolset-1804.json index a854ae6b6..188062c48 100644 --- a/images/linux/toolset-1804.json +++ b/images/linux/toolset-1804.json @@ -13,6 +13,18 @@ "3.7.*", "3.8.*" ] + }, + { + "name": "node", + "url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json", + "platform" : "linux", + "arch": "x64", + "versions": [ + "8.*", + "10.*", + "12.*", + "14.*" + ] } ] } \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index b4c1846c3..fc47d0e91 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -324,12 +324,6 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, - { - "type": "shell", - "scripts":[ - "{{template_dir}}/scripts/installers/validate-disk-space.sh" - ] - }, { "type": "file", "source": "{{user `metadata_file`}}", @@ -345,6 +339,12 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/validate-disk-space.sh" + ] + }, { "type": "file", "source": "{{template_dir}}/config/ubuntu1604.conf", diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 51a6ff9ab..2471106f3 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -328,12 +328,6 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, - { - "type": "shell", - "scripts":[ - "{{template_dir}}/scripts/installers/validate-disk-space.sh" - ] - }, { "type": "file", "source": "{{user `metadata_file`}}", @@ -349,6 +343,12 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/validate-disk-space.sh" + ] + }, { "type": "file", "source": "{{template_dir}}/config/ubuntu1804.conf", From 09ed1695b209fb8aa276fa4f1774d70b749605bf Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Mon, 11 May 2020 10:39:09 +0300 Subject: [PATCH 34/51] Hide packages that are no longer required (#854) * Updating readme file for macOS version 20200430.1 * hide AutomaticRemove info --- images/linux/scripts/installers/dpkg-config.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/dpkg-config.sh b/images/linux/scripts/installers/dpkg-config.sh index e92e42700..67b200ed8 100644 --- a/images/linux/scripts/installers/dpkg-config.sh +++ b/images/linux/scripts/installers/dpkg-config.sh @@ -16,4 +16,10 @@ Dpkg::Options { "--force-confdef"; "--force-confold"; } -EOF \ No newline at end of file +EOF + +# hide information about packages that are no longer required +cat <> /etc/apt/apt.conf.d/10apt-autoremove +APT::Get::AutomaticRemove "0"; +APT::Get::HideAutoRemove "1"; +EOF From ceef6d41d62c5304bbf6ccff4788b8a4d1a5d8f0 Mon Sep 17 00:00:00 2001 From: Dariy Nurgaleev <50947177+Darleev@users.noreply.github.com> Date: Mon, 11 May 2020 16:30:59 +0700 Subject: [PATCH 35/51] added SSDT workload to VS 2019 (#844) --- images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 index 627ff18d5..128d2ae39 100644 --- a/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 +++ b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 @@ -33,6 +33,7 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + ` '--add Microsoft.VisualStudio.Component.EntityFramework ' + ` '--add Microsoft.VisualStudio.Component.FSharp.Desktop ' + ` '--add Microsoft.VisualStudio.Component.LinqToSql ' + ` + '--add Microsoft.VisualStudio.Component.SQL.SSDT ' + ` '--add Microsoft.VisualStudio.Component.PortableLibrary ' + ` '--add Microsoft.VisualStudio.Component.TeamOffice ' + ` '--add Microsoft.VisualStudio.Component.TestTools.CodedUITest ' + ` From fad0a6e41dd91851d69bcc2b26de0f07ff56f31a Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Mon, 11 May 2020 18:26:20 +0300 Subject: [PATCH 36/51] Install Go to hostedtoolcache directory on Ubuntu image (#848) * Move go location to the toolcache --- images/linux/scripts/installers/go.sh | 15 +++++++++------ images/linux/ubuntu1604.json | 26 +++++++++++++------------- images/linux/ubuntu1804.json | 26 +++++++++++++------------- 3 files changed, 35 insertions(+), 32 deletions(-) diff --git a/images/linux/scripts/installers/go.sh b/images/linux/scripts/installers/go.sh index 8a16eef84..c454f59ff 100644 --- a/images/linux/scripts/installers/go.sh +++ b/images/linux/scripts/installers/go.sh @@ -13,8 +13,8 @@ golangTags="/tmp/golang_tags.json" # $2=IsDefaultVersion (true or false) function InstallGo () { version=$( getFullGoVersion $1 ) - downloadVersion=$version.linux-amd64.tar.gz - goFolder=/usr/local/go$1 + downloadVersion="go$version.linux-amd64.tar.gz" + goFolder="$AGENT_TOOLSDIRECTORY/go/$version/x64" echo "Install Go $version" curl -sL https://dl.google.com/go/${downloadVersion} -o ${downloadVersion} @@ -22,7 +22,10 @@ function InstallGo () { tar -C $goFolder -xzf $downloadVersion --strip-components=1 go rm $downloadVersion echo "GOROOT_${1//./_}_X64=$goFolder" | tee -a /etc/environment - DocumentInstalledItem "Go $1 ($($goFolder/bin/go version))" + DocumentInstalledItem "Go $version ($($goFolder/bin/go version))" + + # Create symlink in old location /usr/local/go to new location + ln -s $goFolder /usr/local/go$version # If this version of Go is to be the default version, # symlink it into the path and point GOROOT to it. @@ -37,8 +40,8 @@ function getFullGoVersion () { local pattern="refs/tags/go$1([.0-9]{0,3})$" local query='[.[] | select( .ref | test($pattern))] | .[-1] | .ref' refValue=$(jq --arg pattern "$pattern" "$query" $golangTags) - version=$(echo "$refValue" | cut -d '/' -f 3) - version=$(echo "${version//\"}") # go1.12.17 + version=$(echo "$refValue" | cut -d '/' -f 3 | awk -F 'go' '{print $2}') + version=$(echo "${version//\"}") # 1.12.17 echo $version } @@ -52,4 +55,4 @@ for go in ${GO_VERSIONS}; do else InstallGo $go false fi -done \ No newline at end of file +done diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index fc47d0e91..5aa162f0d 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -251,19 +251,6 @@ ], "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/go.sh" - ], - "environment_vars": [ - "METADATA_FILE={{user `metadata_file`}}", - "HELPER_SCRIPTS={{user `helper_script_folder`}}", - "GO_VERSIONS={{user `go_versions`}}", - "GO_DEFAULT={{user `go_default`}}" - ], - "execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}" - }, { "type": "file", "source": "{{template_dir}}/toolcache-1604.json", @@ -292,6 +279,19 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts": [ + "{{template_dir}}/scripts/installers/go.sh" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "GO_VERSIONS={{user `go_versions`}}", + "GO_DEFAULT={{user `go_default`}}" + ], + "execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}" + }, { "type": "shell", "scripts":[ diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 2471106f3..8408704f5 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -255,19 +255,6 @@ ], "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/go.sh" - ], - "environment_vars": [ - "METADATA_FILE={{user `metadata_file`}}", - "HELPER_SCRIPTS={{user `helper_script_folder`}}", - "GO_VERSIONS={{user `go_versions`}}", - "GO_DEFAULT={{user `go_default`}}" - ], - "execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}" - }, { "type": "file", "source": "{{template_dir}}/toolcache-1804.json", @@ -296,6 +283,19 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts": [ + "{{template_dir}}/scripts/installers/go.sh" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "GO_VERSIONS={{user `go_versions`}}", + "GO_DEFAULT={{user `go_default`}}" + ], + "execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}" + }, { "type": "shell", "scripts":[ From a456ede464d5b9962e9a37ef33935e2fc4d80e82 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Mon, 11 May 2020 19:46:36 +0300 Subject: [PATCH 37/51] Install Go to hostedtoolcache directory on Windows image (#849) * Move installed go versions to toolcache directory --- images/win/scripts/Installers/Install-Go.ps1 | 26 +++++++++++-------- images/win/scripts/Installers/Validate-Go.ps1 | 6 ++--- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/images/win/scripts/Installers/Install-Go.ps1 b/images/win/scripts/Installers/Install-Go.ps1 index 6d98ef800..c5d4c144c 100644 --- a/images/win/scripts/Installers/Install-Go.ps1 +++ b/images/win/scripts/Installers/Install-Go.ps1 @@ -29,36 +29,40 @@ function Install-GoVersion # Extract the zip archive. It contains a single directory named "go". Write-Host "Extracting Go $latestVersion..." - Expand-Archive -Path $goArchPath -DestinationPath "C:\" -Force + $toolDirectory = Join-Path $env:AGENT_TOOLSDIRECTORY "go\$latestVersion" + 7z.exe x $goArchPath -o"$toolDirectory" -y | Out-Null + + # Rename the extracted "go" directory to "x64" for full path "C:\hostedtoolcache\windows\Go\1.14.2\x64\..." + Rename-Item -path "$toolDirectory\go" -newName "x64" + $fullArchPath = "$toolDirectory\x64" # Delete unnecessary files to conserve space Write-Host "Cleaning directories of Go $latestVersion..." - if (Test-Path "C:\go\doc") + if (Test-Path "$fullArchPath\doc") { - Remove-Item -Recurse -Force "C:\go\doc" + Remove-Item -Recurse -Force "$fullArchPath\doc" } - if (Test-Path "C:\go\blog") + if (Test-Path "$fullArchPath\blog") { - Remove-Item -Recurse -Force "C:\go\blog" + Remove-Item -Recurse -Force "$fullArchPath\blog" } - # Rename the extracted "go" directory to include the Go version number (to support side-by-side versions of Go). - $newDirName = "Go$latestVersion" - Rename-Item -path "C:\go" -newName $newDirName + # Create symlink in old location + New-Item -Path "C:\go$latestVersion" -ItemType SymbolicLink -Value $fullArchPath # Make this the default version of Go? if ($addToDefaultPath) { Write-Host "Adding Go $latestVersion to the path..." # Add the Go binaries to the path. - Add-MachinePathItem "C:\$newDirName\bin" | Out-Null + Add-MachinePathItem "$fullArchPath\bin" | Out-Null # Set the GOROOT environment variable. - setx GOROOT "C:\$newDirName" /M | Out-Null + setx GOROOT "$fullArchPath" /M | Out-Null } # Done Write-Host "Done installing Go $latestVersion." - return "C:\$newDirName" + return $fullArchPath } # Install Go diff --git a/images/win/scripts/Installers/Validate-Go.ps1 b/images/win/scripts/Installers/Validate-Go.ps1 index 059ea8fab..4c88cc1db 100644 --- a/images/win/scripts/Installers/Validate-Go.ps1 +++ b/images/win/scripts/Installers/Validate-Go.ps1 @@ -11,9 +11,9 @@ function Get-GoVersion [String]$goVersion ) Write-Host "Check if $goVersion is presented in the system" - $DestinationPath = "$($env:SystemDrive)\" - $goDirectory = Get-ChildItem -Path $DestinationPath -Filter "Go$goVersion*" | Select-Object -First 1 - $goPath = Join-Path $env:SystemDrive $goDirectory + $destinationPath = "$($env:AGENT_TOOLSDIRECTORY)\go" + $goDirectory = Get-ChildItem -Path $destinationPath -Filter "$goVersion*" | Select-Object -First 1 + $goPath = Join-Path $destinationPath "$goDirectory\x64" $env:Path = "$goPath\bin;" + $env:Path $version = $(go version) From 0f8578d80404cfd4a7bb75e96afe9803a345178d Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Mon, 11 May 2020 21:03:45 +0000 Subject: [PATCH 38/51] Updating readme file for win19 version 20200430.2 --- images/win/Windows2019-Readme.md | 39 ++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index bee43de27..13e5f4ec4 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -1,6 +1,7 @@ + # Windows Server 2019 -The following software is installed on machines with the 20200426.1 update. +The following software is installed on machines with the 20200430.2 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -170,7 +171,7 @@ _Version:_ 1.1.1809.18001
## AWS CLI -_Version:_ aws-cli 2.0.9
+_Version:_ aws-cli 2.0.10
## Android SDK Build Tools @@ -413,6 +414,10 @@ _Location:_ C:\Modules\az_3.1.0\Az\3.1.0\Az.psd1 This version is saved but not installed _Location:_ C:\Modules\az_3.5.0\Az\3.5.0\Az.psd1 +#### 3.8.0 + +This version is saved but not installed +_Location:_ C:\Modules\az_3.8.0\Az\3.8.0\Az.psd1 ## TLS12 @@ -421,21 +426,17 @@ _Description:_ .NET has been configured to use TLS 1.2 by default ## Azure CLI -_Version:_ 2.4.0 +_Version:_ 2.5.0 * _Environment:_ * PATH: contains location of az.cmd ## AWS SAM CLI -_Version:_ 0.47.0
+_Version:_ 0.48.0
## Azure DevOps Cli extension -_Version:_ azure-devops 0.18.0 - -## Python - -_Version:_ 2.7.17 (x64)
_Version:_ 3.5.4 (x64)
_Version:_ 3.6.8 (x64)
_Version:_ 3.7.6 (x64)
_Version:_ 3.8.2 (x64)
_Version:_ 2.7.17 (x86)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.6 (x86)
_Version:_ 3.8.2 (x86)

__System default version:__ Python 3.7.6
_Environment:_
* Location: C:\hostedtoolcache\windows\Python\3.7.6\x64
* PATH: contains the location of Python 3.7.6
+_Version:_ azure-devops 1.25.9 ## PyPy @@ -445,6 +446,14 @@ _Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 3.1.2
+## Python (x64) + +_Version:_ 2.7.18
_Version:_ 3.5.4
_Version:_ 3.6.8
_Version:_ 3.7.7
_Version:_ 3.8.2

__System default version:__ Python 3.7.7
_Environment:_
* Location: C:\hostedtoolcache\windows\Python\3.7.7\x64
* PATH: contains the location of Python 3.7.7
+ +## Python (x86) + +_Version:_ 2.7.18
_Version:_ 3.5.4
_Version:_ 3.6.8
_Version:_ 3.7.7
_Version:_ 3.8.2
+ ## OpenSSL _Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
_Version:_ 1.1.1d at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1f at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.1.1f at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
@@ -520,8 +529,8 @@ _Environment:_ ## Rust (64-bit) #### 1.43.0 -_Location:_ C:\Rust\.cargo\bin _Environment:_ +* _Location:_ C:\Rust\.cargo\bin * PATH: contains the location of rustc.exe ## Julia (x64) @@ -541,12 +550,12 @@ _Environment:_ ## Google Chrome _version:_ -81.0.4044.122 +81.0.4044.129 ## Microsoft Edge _version:_ -81.0.416.64 +81.0.416.68 ## Mozilla Firefox @@ -583,7 +592,7 @@ _Environment:_ #### Microsoft Edge Driver _version:_ -81.0.416.64 +81.0.416.68 _Environment:_ * EdgeWebDriver: location of msedgedriver.exe @@ -591,7 +600,7 @@ _Environment:_ ## Node.js -_Version:_ 12.16.2
+_Version:_ 12.16.3
_Architecture:_ x64
_Environment:_ * PATH: contains location of node.exe
@@ -645,7 +654,7 @@ _Environment:_ ## CMake -_Version:_ 3.17.1
+_Version:_ 3.17.2
_Environment:_ * PATH: contains location of cmake.exe From 6b8e0df7fc035f5c6e52de805349a78e75e4dadf Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Mon, 11 May 2020 22:51:55 +0000 Subject: [PATCH 39/51] Updating readme file for ubuntu16 version 20200430.2 --- images/linux/Ubuntu1604-README.md | 144 ++++++++++++++++-------------- 1 file changed, 77 insertions(+), 67 deletions(-) diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md index 8b0400432..2b08fe605 100644 --- a/images/linux/Ubuntu1604-README.md +++ b/images/linux/Ubuntu1604-README.md @@ -1,10 +1,13 @@ + # Ubuntu 16.04.6 LTS -The following software is installed on machines with the 20200406.2 update. +The following software is installed on machines with the 20200430.2 update. *** +- Homebrew on Linux (Homebrew 2.2.14 +Homebrew/linuxbrew-core (git revision 8abe3; last commit 2020-04-30)) - 7-Zip 9.20 -- Ansible (ansible 2.9.6) +- Ansible (ansible 2.9.7) - AzCopy (azcopy 7.3.0-netcore) -- Azure CLI (azure-cli 2.3.1) +- Azure CLI (azure-cli 2.5.1) - Azure CLI (azure-devops 0.18.0) - Basic CLI: - curl @@ -17,6 +20,7 @@ The following software is installed on machines with the 20200406.2 update. - libc++-dev - libc++abi-dev - libcurl3 + - libgbm-dev - libicu55 - libunwind8 - locales @@ -34,17 +38,19 @@ The following software is installed on machines with the 20200406.2 update. - wget - zip - zstd -- AWS CLI (aws-cli/1.18.37 Python/2.7.12 Linux/4.15.0-1075-azure botocore/1.15.37) +- Alibaba Cloud CLI (3.0.39) +- AWS CLI (aws-cli/1.18.49 Python/2.7.12 Linux/4.15.0-1082-azure botocore/1.15.49) - build-essential - nvm (0.35.3) - Clang 6.0 (6.0.0) - Clang 8 (8.0.0) - Clang 9 (9.0.1) -- Swift version 5.2.1 (swift-5.2.1-RELEASE) +- Swift version 5.2.3 (swift-5.2.3-RELEASE) Target: x86_64-unknown-linux-gnu -- CMake (cmake version 3.16.2) +- CMake (cmake version 3.17.0) - Docker Compose (docker-compose version 1.25.4, build 8d51620a) - Docker-Moby (Docker version 3.0.11+azure, build eb310fca49568dccd87c6136f774ef6fff2a1b51) +- Docker-Buildx (0.3.1+azure) - .NET Core SDK: - 3.1.201 - 3.1.200 @@ -111,20 +117,20 @@ Target: x86_64-unknown-linux-gnu - 2.1.302 - 2.1.301 - 2.1.300 -- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7) -- Firefox (Mozilla Firefox 74.0.1) +- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7.1) +- Firefox (Mozilla Firefox 75.0) - Geckodriver (0.26.0); Gecko Driver is available via GECKOWEBDRIVER environment variable -- GNU C++ 7.4.0 -- GNU C++ 8.3.0 -- GNU C++ 9.2.1 -- GNU Fortran 8.3.0 -- GNU Fortran 9.2.1 -- Git (2.26.0) +- GNU C++ 7.5.0 +- GNU C++ 8.4.0 +- GNU C++ 9.3.0 +- GNU Fortran 8.4.0 +- GNU Fortran 9.3.0 +- Git (2.26.2) - Git Large File Storage (LFS) (2.10.0) - Hub CLI (2.14.2) -- Google Chrome (Google Chrome 80.0.3987.163 ) -- ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}); Chrome Driver is available via CHROMEWEBDRIVER environment variable -- Google Cloud SDK (287.0.0) +- Google Chrome (Google Chrome 81.0.4044.129 ) +- ChromeDriver 81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}); Chrome Driver is available via CHROMEWEBDRIVER environment variable +- Google Cloud SDK (290.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 @@ -147,47 +153,48 @@ compiled using version 3.2.0.0 of the Cabal library ) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.3) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.1) - Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2) -- Heroku (heroku/7.39.2 linux-x64 node-v12.13.0) -- HHVM (HipHop VM 4.52.0 (rel)) +- Heroku (heroku/7.39.5 linux-x64 node-v12.16.2) +- HHVM (HipHop VM 4.55.0 (rel)) - ImageMagick - Azul Zulu OpenJDK: - - 7 (openjdk version "1.7.0_252") - - 8 (openjdk version "1.8.0_242") (default) - - 11 (openjdk version "11.0.6" 2020-01-14 LTS) + - 7 (openjdk version "1.7.0_262") + - 8 (openjdk version "1.8.0_252") (default) + - 11 (openjdk version "11.0.7" 2020-04-14 LTS) - 12 (openjdk version "12.0.2" 2019-07-16) - Ant (Apache Ant(TM) version 1.9.6 compiled on July 20 2018) - Gradle 6.3 - Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)) - Kind (kind v0.7.0 go1.13.6 linux/amd64) - kubectl (error: Missing or incomplete configuration info. Please point to an existing, complete config file:) -- helm (v3.1.2+gd878d4d) -- Leiningen (Leiningen 2.9.3 on Java 1.8.0_242 OpenJDK 64-Bit Server VM) +- helm (v3.2.0+ge11b7ce) +- Leiningen (Leiningen 2.9.3 on Java 1.8.0_252 OpenJDK 64-Bit Server VM) - Mercurial (Mercurial Distributed SCM (version 4.4.1)) - Miniconda (conda 4.8.2) - Mono (Mono JIT compiler version 6.8.0.105 (tarball Tue Feb 4 21:20:35 UTC 2020)) - MySQL (mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper) - MySQL Server (user:root password:root) - MS SQL Server Client Tools -- Node.js (v12.16.1) +- MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service' +- Node.js (v12.16.3) - Grunt (grunt-cli v1.2.0) - Gulp (CLI version: 2.2.0 Local version: Unknown) -- n (6.4.0) +- n (6.5.1) - Parcel (1.12.4) - TypeScript (Version 3.8.3) -- Webpack (4.42.1) +- Webpack (4.43.0) - Webpack CLI (3.3.11) - Yarn (1.22.4) -- Bazel (bazel 3.0.0) -- Bazelisk (1.3.0) +- Bazel (bazel 3.1.0) +- Bazelisk (1.4.0) - PhantomJS (2.1.1) -- PHP 5.6 (PHP 5.6.40-26+ubuntu16.04.1+deb.sury.org+1 (cli) ) -- PHP 7.0 (PHP 7.0.33-26+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 15:00:31) ( NTS )) -- PHP 7.1 (PHP 7.1.33-14+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:57:17) ( NTS )) -- PHP 7.2 (PHP 7.2.29-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:54:16) ( NTS )) -- PHP 7.3 (PHP 7.3.16-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:51:21) ( NTS )) -- PHP 7.4 (PHP 7.4.4 (cli) (built: Mar 20 2020 13:47:17) ( NTS )) -- Composer (Composer version 1.10.1 2020-03-13 20:34:27) +- PHP 5.6 (PHP 5.6.40-27+ubuntu16.04.1+deb.sury.org+1 (cli) ) +- PHP 7.0 (PHP 7.0.33-27+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 08:00:54) ( NTS )) +- PHP 7.1 (PHP 7.1.33-15+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:59:08) ( NTS )) +- PHP 7.2 (PHP 7.2.30-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:50:31) ( NTS )) +- PHP 7.3 (PHP 7.3.17-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:44:05) ( NTS )) +- PHP 7.4 (PHP 7.4.5 (cli) (built: Apr 19 2020 07:36:13) ( NTS )) +- Composer (Composer version 1.10.5 2020-04-10 11:44:22) - PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.) - Pollinate - psql (PostgreSQL) 9.5.21 @@ -195,29 +202,31 @@ Local version: Unknown) - ruby (2.3.1p112) - gem (3.1.2) - rustup (1.21.1) -- rust (1.42.0) -- cargo (1.42.0) -- rustfmt (1.4.11-stable) +- rust (1.43.0) +- cargo (1.43.0) +- rustfmt (1.4.12-stable) - clippy (0.0.212) -- rustdoc (1.42.0) +- rustdoc (1.43.0) - bindgen (0.53.2) -- cbindgen (0.14.0) -- Julia (julia version 1.4.0) -- sbt (1.3.9) +- cbindgen (0.14.1) +- Julia (julia version 1.4.1) +- sbt (1.3.10) - Selenium server standalone (available via SELENIUM_JAR_PATH environment variable) - Sphinx Open Source Search Server - Subversion (svn, version 1.9.3 (r1718519)) - Terraform (Terraform v0.12.24) - Packer (1.5.5) - Vcpkg 2020.02.04-unknownhash -- Zeit Now CLI (17.1.1) -- MongoDB on Linux (2020-04-07T01:29:52.795+0000 I CONTROL [initandlisten] db version v4.2.5 -2020-04-07T01:29:52.795+0000 I CONTROL [initandlisten] git version: 2261279b51ea13df08ae708ff278f0679c59dc32 -2020-04-07T01:29:52.795+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016) +- Zeit Now CLI (18.0.0) +- MongoDB on Linux (2020-04-30T12:21:47.651+0000 I CONTROL [initandlisten] db version v4.2.6 +2020-04-30T12:21:47.651+0000 I CONTROL [initandlisten] git version: 20364840b8f1af16917e4c23c1b5f5efd8b352f8 +2020-04-30T12:21:47.651+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016) +- Haveged 1.9.1-3 +- AWS SAM CLI, version 0.48.0 - Go 1.11 (go version go1.11.13 linux/amd64) - Go 1.12 (go version go1.12.17 linux/amd64) -- Go 1.13 (go version go1.13.9 linux/amd64) -- Go 1.14 (go version go1.14.1 linux/amd64) +- Go 1.13 (go version go1.13.10 linux/amd64) +- Go 1.14 (go version go1.14.2 linux/amd64) - Google Repository 58 - Google Play services 49 - Google APIs 24 @@ -229,7 +238,7 @@ Local version: Unknown) - Android Support Repository 47.0.0 - Android Solver for ConstraintLayout 1.0.2 - Android Solver for ConstraintLayout 1.0.1 -- Android SDK Platform-Tools 29.0.6 +- Android SDK Platform-Tools 30.0.0 - Android SDK Platform 29 - Android SDK Platform 28 - Android SDK Platform 27 @@ -275,7 +284,7 @@ Local version: Unknown) - Android SDK Build-Tools 20.0.0 - Android SDK Build-Tools 19.1.0 - Android SDK Build-Tools 17.0.0 -- Android NDK 21.0.6113669 +- Android NDK 21.1.6352462 - Android ConstraintLayout 1.0.2 - Android ConstraintLayout 1.0.1 - Az Module (1.0.0) @@ -286,25 +295,20 @@ Local version: Unknown) - Az Module (3.1.0) - Az Module (3.5.0) - Cached container images - - node:10 (Digest: sha256:816cfaee24dc2cea534e21d7f9c55f3b22c8bc6af61d8445f8d0178168ef3b28) - - node:12 (Digest: sha256:46f4c17e1edbde36d60a9f6362db7912cfe301bac89afef7cc92421ab3e7ca18) - - buildpack-deps:stretch (Digest: sha256:a711a64b26285b42cd02618a191ec6c99650449f698858e0e2cc0535ab85e4dd) - - debian:9 (Digest: sha256:344470192d10cf7cf0bedcb183effbe99065829a8dbe68e65e703faf46fc10c1) - - debian:8 (Digest: sha256:a77aa078ad4769799286bba5fc198deda5bfd4d0144a24e6aa0c8dddf0a22833) - - node:10-alpine (Digest: sha256:9a88e3bc3f845b74d2fd8adcbc64608736a8be4a3e9dc7aa34fa743e3677a552) - - node:12-alpine (Digest: sha256:6b5b783c9cfe229af0bd5b0b677dd32005bb22d58465f3d0fe7fbd1c60ce068c) + - node:12-alpine (Digest: sha256:84f5c9090cc741421b2376b2393e7d5fa2f89d36167c12eb57aef16dd64ecf6c) + - node:12 (Digest: sha256:5fe210262a6dc0c1f5555976356cf076c7a8c7645b0c781bc8a913881bbe7942) + - node:10-alpine (Digest: sha256:b2db1b026f1b01a6a91f39d8204b89c5c13d2b40a017dd4d9253ab066c9cf2cb) + - alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011) + - alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35) + - jekyll/builder:latest (Digest: sha256:89c952121d275ba475b6611060e2d917434ebe8e125049d647ffefdbef9ca859) + - node:10 (Digest: sha256:e0c512c52c3ca8797fc60ada3698004f5cba13af4a8a5968041edac1b5d98577) + - buildpack-deps:stretch (Digest: sha256:38353fdc334fa612f3dedb3d1e8172c3e63de706ca80260856e5708d0fd1146a) + - debian:9 (Digest: sha256:666ffd4fbcdff07edcbd65f0ec1dc86ed294f5e3be93eb26280575f77427df46) + - debian:8 (Digest: sha256:734728c8e411698485ae644fc988dad06f757565e292b5b85edc084befa37bbb) - alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14) - - alpine:3.9 (Digest: sha256:115731bab0862031b44766733890091c17924f9b7781b79997f5f163be262178) - - alpine:3.10 (Digest: sha256:7c3773f7bcc969f03f8f653910001d99a9d324b4b9caa008846ad2c3089f5a5f) - - jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e) + - ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4) - alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10) - mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a) -- Python: - - Python 2.7.17 - - Python 3.5.9 - - Python 3.6.10 - - Python 3.7.6 - - Python 3.8.2 - Ruby: - Ruby 2.4.10 - Ruby 2.5.8 @@ -317,5 +321,11 @@ Local version: Unknown) - 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)) +- Python: + - Python 2.7.18 + - Python 3.5.9 + - Python 3.6.10 + - Python 3.7.7 + - Python 3.8.2 - Boost C++ Libraries 1.69.0 - Boost C++ Libraries 1.72.0 From 3862d31b9666351fb9341e3a07e989959f7a0c32 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Tue, 12 May 2020 06:16:14 +0000 Subject: [PATCH 40/51] Install Windows 10 SDK (10.0.14393.795) via standalone installer (#862) * add win10 sdk 10.0.14393 * markdown changes --- .../Installers/Windows2019/Install-VS2019.ps1 | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 index 128d2ae39..4aeee12bd 100644 --- a/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 +++ b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 @@ -68,7 +68,6 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + ` '--add Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre ' + ` '--add Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre ' + ` '--add Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre ' + ` - '--add Microsoft.VisualStudio.Component.Windows10SDK.14393 ' + ` '--add Microsoft.VisualStudio.Component.Windows10SDK.16299 ' + ` '--add Microsoft.VisualStudio.Component.Windows10SDK.17134 ' + ` '--add Microsoft.VisualStudio.Component.Windows10SDK.17763 ' + ` @@ -127,6 +126,12 @@ Write-Host "Visual Studio version ${version} installed" $newContent = '{"Extensions":[{"Key":"1e906ff5-9da8-4091-a299-5c253c55fdc9","Value":{"ShouldAutoUpdate":false}},{"Key":"Microsoft.VisualStudio.Web.AzureFunctions","Value":{"ShouldAutoUpdate":false}}],"ShouldAutoUpdate":false,"ShouldCheckForUpdates":false}' Set-Content -Path "$VSInstallRoot\Common7\IDE\Extensions\MachineState.json" -Value $newContent +# Install Windows 10 SDK version 10.0.14393.795 +$sdkUrl = "https://go.microsoft.com/fwlink/p/?LinkId=838916" +$sdkFileName = "sdksetup14393.exe" +$argumentList = ("/q", "/norestart", "/ceip off", "/features OptionId.WindowsSoftwareDevelopmentKit") + +Install-Binary -Url $sdkUrl -Name $sdkFileName -ArgumentList $argumentList # Adding description of the software to Markdown @@ -142,4 +147,13 @@ The following workloads and components are installed with Visual Studio 2019: Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description # Adding explicitly added Workloads details to markdown by parsing $Workloads -Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } ) \ No newline at end of file +Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } ) + +# Adding additional SDKs to markdown +$SDKDescription = @" + +Additional Windows 10 SDKs: +* Windows 10 SDK version 10.0.14393.795 +"@ + +Add-ContentToMarkdown -Content $SDKDescription From d558a8f413ade29749d14a900ddd35229eb370e8 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Tue, 12 May 2020 12:50:42 +0300 Subject: [PATCH 41/51] Add msys2 installation and validation (#632) --- images/win/Windows2016-Azure.json | 14 ++++ images/win/Windows2019-Azure.json | 14 ++++ .../win/scripts/Installers/Install-Msys2.ps1 | 76 +++++++++++++++++++ .../win/scripts/Installers/Validate-Msys2.ps1 | 73 ++++++++++++++++++ 4 files changed, 177 insertions(+) create mode 100644 images/win/scripts/Installers/Install-Msys2.ps1 create mode 100644 images/win/scripts/Installers/Validate-Msys2.ps1 diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 506073423..3f51de41d 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -521,6 +521,14 @@ "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1" ] }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -648,6 +656,12 @@ "{{ template_dir }}/scripts/Installers/Validate-AzureDevOpsCli.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-Msys2.ps1" + ] + }, { "type": "powershell", "environment_vars":[ diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 2a89973ef..467f81e72 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -500,6 +500,14 @@ "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1" ] }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -645,6 +653,12 @@ "{{ template_dir }}/scripts/Installers/Validate-AzureDevOpsCli.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-Msys2.ps1" + ] + }, { "type": "powershell", "environment_vars":[ diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 new file mode 100644 index 000000000..49f75e430 --- /dev/null +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -0,0 +1,76 @@ +################################################################################ +## File: Install-Msys2.ps1 +## Desc: Install Msys2 and 64-bit gcc, cmake, & llvm (32-bit commented out) +################################################################################ + +# References +# https://github.com/msys2/MINGW-packages/blob/master/azure-pipelines.yml +# https://packages.msys2.org/group/ + +$origPath = $env:PATH +$gitPath = "$env:ProgramFiles\Git" + +# get info from https://sourceforge.net/projects/msys2/files/Base/x86_64/ +$msys2Uri = "http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz" +$msys2File = "$env:TEMP\msys2.tar.xz" + +# Download the latest msys2 x86_64 +Write-Host "Starting msys2 download" +(New-Object System.Net.WebClient).DownloadFile($msys2Uri, $msys2File) +Write-Host "Finished download" + +$msys2FileU = "/$msys2File".replace(':', '') + +$tar = "$gitPath\usr\bin\tar.exe" + +# extract tar.xz to C:\ +Write-Host "Starting msys2 extraction" +&$tar -Jxf $msys2FileU -C /c/ +Remove-Item $msys2File +Write-Host "Finished extraction" + +# Add msys2 bin tools folders to PATH temporary +$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath" + +Write-Host "bash pacman-key --init" +bash.exe -c "pacman-key --init 2>&1" + +Write-Host "bash pacman-key --populate msys2" +bash.exe -c "pacman-key --populate msys2 2>&1" + +Write-Host "pacman --noconfirm -Syyuu" +pacman.exe -Syyuu --noconfirm +pacman.exe -Syuu --noconfirm + +Write-Host "Install msys2 packages" +pacman.exe -S --noconfirm --needed --noprogressbar base-devel compression + +# mingw package list +$tools = "___clang ___cmake ___llvm ___toolchain ___ragel" + +# install mingw64 packages +Write-Host "Install mingw64 packages" +$pre = "mingw-w64-x86_64-" +pacman.exe -S --noconfirm --needed --noprogressbar $tools.replace('___', $pre).split(' ') + +# install mingw32 packages +Write-Host "Install mingw32 packages" +$pre = "mingw-w64-i686-" +pacman.exe -S --noconfirm --needed --noprogressbar $tools.replace('___', $pre).split(' ') + +# clean all packages to decrease image size +Write-Host "Clean packages" +pacman.exe -Scc --noconfirm + +Write-Host "Installed mingw64 packages" +pacman.exe -Qs --noconfirm mingw-w64-x86_64- + +Write-Host "Installed mingw32 packages" +pacman.exe -Qs --noconfirm mingw-w64-i686- + +Write-Host "Installed msys2 packages" +pacman.exe -Qs --noconfirm + +Write-Host "MSYS2 installation completed" + +exit 0 \ No newline at end of file diff --git a/images/win/scripts/Installers/Validate-Msys2.ps1 b/images/win/scripts/Installers/Validate-Msys2.ps1 new file mode 100644 index 000000000..e7d2142a8 --- /dev/null +++ b/images/win/scripts/Installers/Validate-Msys2.ps1 @@ -0,0 +1,73 @@ +################################################################################ +## File: Validate-Msys2.ps1 +## Desc: Validate Msys2 +################################################################################ + +$msys2BinDir = "C:\msys64\usr\bin" +$msys2mingwDir = "C:\msys64\mingw64\bin" + +$installedTools = @( + "bash", + "tar", + "make" +) + +$installedMinGWTools = @( + "gcc", + "cmake" +) + +Write-Host "Check installed tools in msys2/usr/bin directory" +$installedTools | ForEach-Object { + $toolName = $_ + try { + Invoke-Expression "$msys2BinDir\$_ --version" + } catch { + Write-Host "$toolName was not installed in MSYS2 bin directory" + Write-Error $_ + exit 1 + } +} + +Write-Host "Check installed tools in msys2/mingw/bin directory" +$installedMinGWTools | ForEach-Object { + $toolName = $_ + try { + Invoke-Expression "$msys2mingwDir\$_ --version" + } catch { + Write-Error "$toolName was not installed in MSYS2 mingw bin directory" + Write-Error $_ + exit 1 + } +} + +# Adding description of the software to Markdown + +function Get-ToolVersion { + param( + [string] $ToolPath, + [int] $VersionLineNumber + ) + + $toolRawVersion = Invoke-Expression "$ToolPath --version" + $toolRawVersion.Split([System.Environment]::NewLine)[$VersionLineNumber] -match "\d+\.\d+(\.\d+)?" | Out-Null + $toolVersion = $matches[0] + return $toolVersion +} + +$SoftwareName = "MSYS2" +$pacmanVersion = Get-ToolVersion -ToolPath "$msys2BinDir/pacman" -VersionLineNumber 1 +$bashVersion = Get-ToolVersion -ToolPath "$msys2BinDir/bash" -VersionLineNumber 0 +$gccVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/gcc" -VersionLineNumber 0 +$tarVersion = Get-ToolVersion -ToolPath "$msys2BinDir/tar" -VersionLineNumber 0 + +$Description = @" +_Tool versions_ +_pacman:_ $pacmanVersion
+_bash:_ $bashVersion
+_gcc:_ $gccVersion
+_tar:_ $tarVersion
+MSYS2 location: C:\msys64 +"@ + +Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description From 084ff7e1e4a632899526a5d40e373dd6d2f7371c Mon Sep 17 00:00:00 2001 From: Dariy Nurgaleev <50947177+Darleev@users.noreply.github.com> Date: Tue, 12 May 2020 17:51:21 +0700 Subject: [PATCH 42/51] SQL Server Data-Tier Application Framework latest upgrade. (#863) * DACFx_latest_version_install --- images/win/scripts/Installers/Install-DACFx.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-DACFx.ps1 b/images/win/scripts/Installers/Install-DACFx.ps1 index aa3deff72..7a470cbf5 100644 --- a/images/win/scripts/Installers/Install-DACFx.ps1 +++ b/images/win/scripts/Installers/Install-DACFx.ps1 @@ -6,6 +6,6 @@ Import-Module -Name ImageHelpers -Force $InstallerName = "DacFramework.msi" -$InstallerUrl = "https://download.microsoft.com/download/f/1/9/f19eaee6-0728-4a0b-9755-9808acc8af0b/EN/x64/${InstallerName}" +$InstallerUrl = "https://go.microsoft.com/fwlink/?linkid=2128142" Install-Binary -Url $InstallerUrl -Name $InstallerName \ No newline at end of file From ac5e5e3bbcf6d0decb6962a7148f8a1373eafd1d Mon Sep 17 00:00:00 2001 From: cage200 Date: Tue, 12 May 2020 17:47:44 +0200 Subject: [PATCH 43/51] Fix the cleanup script. (#856) * Fix the cleanup script.The result is not returned to the variable because of the output redirect * Added the cancel timeout. --- images.CI/azure-pipelines/image-generation.yml | 3 ++- images.CI/cleanup.ps1 | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/images.CI/azure-pipelines/image-generation.yml b/images.CI/azure-pipelines/image-generation.yml index 03b084ca8..d2adc15ae 100644 --- a/images.CI/azure-pipelines/image-generation.yml +++ b/images.CI/azure-pipelines/image-generation.yml @@ -8,6 +8,7 @@ jobs: - job: pool: ci-agent-pool timeoutInMinutes: 600 + cancelTimeoutInMinutes: 30 variables: - group: Image Generation Variables @@ -74,4 +75,4 @@ jobs: -ClientSecret $(CLIENT_SECRET) ` -Image ${{ parameters.image_type }} ` -SubscriptionId $(AZURE_SUBSCRIPTION) ` - -TenantId $(AZURE_TENANT) \ No newline at end of file + -TenantId $(AZURE_TENANT) diff --git a/images.CI/cleanup.ps1 b/images.CI/cleanup.ps1 index 00050d551..31abcb56a 100644 --- a/images.CI/cleanup.ps1 +++ b/images.CI/cleanup.ps1 @@ -11,7 +11,7 @@ az login --service-principal --username $ClientId --password $ClientSecret --ten $TempResourceGroupName = "${ResourcesNamePrefix}_${Image}" -$groupExist = az group exists --name $TempResourceGroupName --subscription $SubscriptionId | Out-Null +$groupExist = az group exists --name $TempResourceGroupName --subscription $SubscriptionId if ($groupExist -eq "true") { Write-Host "Found a match, deleting temporary files" az group delete --name $TempResourceGroupName --subscription $SubscriptionId --yes | Out-Null From e750d5df738beabae964c75038b260980330b627 Mon Sep 17 00:00:00 2001 From: Junyoung Clare Jang Date: Tue, 12 May 2020 11:48:39 -0400 Subject: [PATCH 44/51] Update Haskell tool Stack (#860) * Update Haskell tool Stack * Update haskell script to install stack from get.haskellstack.org --- images/linux/scripts/installers/haskell.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/linux/scripts/installers/haskell.sh b/images/linux/scripts/installers/haskell.sh index 1e36069a6..1335c504e 100644 --- a/images/linux/scripts/installers/haskell.sh +++ b/images/linux/scripts/installers/haskell.sh @@ -33,8 +33,8 @@ apt-get install -y \ cabal-install-3.0 \ cabal-install-3.2 -# Install haskell stack, pinned to v2.1.3 -curl -sSL https://raw.githubusercontent.com/commercialhaskell/stack/v2.1.3/etc/scripts/get-stack.sh | sh +# Install the latest stable release of haskell stack +curl -sSL https://get.haskellstack.org/ | sh # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" From 5356fcd43b8252111b00b76fe4502081e63abc8f Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Tue, 12 May 2020 20:29:07 +0000 Subject: [PATCH 45/51] Updating readme file for win16 version 20200505.1 --- images/win/Windows2016-Readme.md | 49 ++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md index 36540bef7..6f6ac6d8f 100644 --- a/images/win/Windows2016-Readme.md +++ b/images/win/Windows2016-Readme.md @@ -1,6 +1,7 @@ + # Windows Server 2016 -The following software is installed on machines with the 20200426.1 update. +The following software is installed on machines with the 20200505.1 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -177,7 +178,7 @@ _Version:_ 1.1.1809.18001
## AWS CLI -_Version:_ aws-cli 2.0.9
+_Version:_ aws-cli 2.0.10
## Android SDK Build Tools @@ -420,6 +421,10 @@ _Location:_ C:\Modules\az_3.1.0\Az\3.1.0\Az.psd1 This version is saved but not installed _Location:_ C:\Modules\az_3.5.0\Az\3.5.0\Az.psd1 +#### 3.8.0 + +This version is saved but not installed +_Location:_ C:\Modules\az_3.8.0\Az\3.8.0\Az.psd1 ## TLS12 @@ -428,29 +433,33 @@ _Description:_ .NET has been configured to use TLS 1.2 by default ## Azure CLI -_Version:_ 2.4.0 +_Version:_ 2.5.1 _Environment:_ * PATH: contains location of az.cmd ## AWS SAM CLI -_Version:_ 0.47.0
+_Version:_ 0.48.0
## Azure DevOps Cli extension _Version:_ azure-devops 0.18.0 -## Python - -_Version:_ 2.7.17 (x64)
_Version:_ 3.5.4 (x64)
_Version:_ 3.6.8 (x64)
_Version:_ 3.7.6 (x64)
_Version:_ 3.8.2 (x64)
_Version:_ 2.7.17 (x86)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.6 (x86)
_Version:_ 3.8.2 (x86)

__System default version:__ Python 3.7.6
_Environment:_
* Location: C:\hostedtoolcache\windows\Python\3.7.6\x64
* PATH: contains the location of Python 3.7.6
- ## PyPy _Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
## Ruby -_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 3.1.2
+_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 3.1.3
+ +## Python (x64) + +_Version:_ 2.7.18
_Version:_ 3.5.4
_Version:_ 3.6.8
_Version:_ 3.7.7
_Version:_ 3.8.2

__System default version:__ Python 3.7.7
_Environment:_
* Location: C:\hostedtoolcache\windows\Python\3.7.7\x64
* PATH: contains the location of Python 3.7.7
+ +## Python (x86) + +_Version:_ 2.7.18
_Version:_ 3.5.4
_Version:_ 3.6.8
_Version:_ 3.7.7
_Version:_ 3.8.2
## OpenSSL @@ -527,8 +536,8 @@ _Environment:_ ## Rust (64-bit) #### 1.43.0 -_Location:_ C:\Rust\.cargo\bin _Environment:_ +* _Location:_ C:\Rust\.cargo\bin * PATH: contains the location of rustc.exe ## Julia (x64) @@ -548,12 +557,12 @@ _Environment:_ ## Google Chrome _version:_ -81.0.4044.122 +81.0.4044.129 ## Microsoft Edge _version:_ -81.0.416.64 +81.0.416.68 ## Mozilla Firefox @@ -590,7 +599,7 @@ _Environment:_ #### Microsoft Edge Driver _version:_ -81.0.416.64 +81.0.416.68 _Environment:_ * EdgeWebDriver: location of msedgedriver.exe @@ -598,7 +607,7 @@ _Environment:_ ## Node.js -_Version:_ 12.16.2
+_Version:_ 12.16.3
_Architecture:_ x64
_Environment:_ * PATH: contains location of node.exe
@@ -637,9 +646,13 @@ _Environment:_ _Location:_ C:\Program Files\Java\zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64 -#### 11.0.4 +#### 13.0.3 -_Location:_ C:\Program Files\Java\zulu-11-azure-jdk_11.33.15-11.0.4-win_x64 +_Location:_ C:\Program Files\Java\zulu-13-azure-jdk_13.31.11-13.0.3-win_x64 + +#### 13.0.3 + +_Location:_ C:\Program Files\Java\zulu-13-azure-jdk_13.31.11-13.0.3-win_x64 ## Ant @@ -664,7 +677,7 @@ _Environment:_ ## CMake -_Version:_ 3.17.1
+_Version:_ 3.17.2
_Environment:_ * PATH: contains location of cmake.exe @@ -843,7 +856,7 @@ _Version:_ 6.0.4
## GitVersion -_Version:_ 5.2.4.0
+_Version:_ 5.3.2.0
## Nullsoft Install System (NSIS) From ffa2110464ecda1cc62b477f29609525de24e570 Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Tue, 12 May 2020 20:55:01 +0000 Subject: [PATCH 46/51] Updating readme file for ubuntu18 version 20200430.1 --- images/linux/Ubuntu1804-README.md | 137 ++++++++++++++++-------------- 1 file changed, 75 insertions(+), 62 deletions(-) diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md index c48f5caa5..952b97690 100644 --- a/images/linux/Ubuntu1804-README.md +++ b/images/linux/Ubuntu1804-README.md @@ -1,10 +1,13 @@ + # Ubuntu 18.04.4 LTS -The following software is installed on machines with the 20200406.2 update. +The following software is installed on machines with the 20200430.1 update. *** +- Homebrew on Linux (Homebrew 2.2.14 +Homebrew/linuxbrew-core (git revision d5a54e; last commit 2020-04-30)) - 7-Zip 16.02 -- Ansible (ansible 2.9.6) +- Ansible (ansible 2.9.7) - AzCopy (azcopy 7.3.0-netcore) -- Azure CLI (azure-cli 2.3.1) +- Azure CLI (azure-cli 2.5.1) - Azure CLI (azure-devops 0.18.0) - Basic CLI: - curl @@ -15,6 +18,7 @@ The following software is installed on machines with the 20200406.2 update. - iputils-ping - jq - libcurl3 + - libgbm-dev - libicu55 - libunwind8 - locales @@ -32,16 +36,21 @@ The following software is installed on machines with the 20200406.2 update. - wget - zip - zstd -- AWS CLI (aws-cli/1.18.37 Python/2.7.17 Linux/5.0.0-1035-azure botocore/1.15.37) +- Alibaba Cloud CLI (3.0.39) +- AWS CLI (aws-cli/1.18.49 Python/2.7.17 Linux/5.3.0-1020-azure botocore/1.15.49) - build-essential - Clang 6.0 (6.0.0) - Clang 8 (8.0.0) - Clang 9 (9.0.0) -- Swift version 5.2.1 (swift-5.2.1-RELEASE) +- Swift version 5.2.3 (swift-5.2.3-RELEASE) Target: x86_64-unknown-linux-gnu -- CMake (cmake version 3.16.2) +- CMake (cmake version 3.17.0) +- Podman (podman --version) +Buildah (buildah --version) +Skopeo (skopeo --version) - Docker Compose (docker-compose version 1.25.4, build 8d51620a) - Docker-Moby (Docker version 3.0.11+azure, build eb310fca49568dccd87c6136f774ef6fff2a1b51) +- Docker-Buildx (0.3.1+azure) - .NET Core SDK: - 3.1.201 - 3.1.200 @@ -108,20 +117,20 @@ Target: x86_64-unknown-linux-gnu - 2.1.302 - 2.1.301 - 2.1.300 -- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7) -- Firefox (Mozilla Firefox 74.0.1) +- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7.1) +- Firefox (Mozilla Firefox 75.0) - Geckodriver (0.26.0); Gecko Driver is available via GECKOWEBDRIVER environment variable - GNU C++ 7.5.0 - GNU C++ 8.4.0 -- GNU C++ 9.2.1 +- GNU C++ 9.3.0 - GNU Fortran 8.4.0 -- GNU Fortran 9.2.1 -- Git (2.26.0) +- GNU Fortran 9.3.0 +- Git (2.26.2) - Git Large File Storage (LFS) (2.10.0) - Hub CLI (2.14.2) -- Google Chrome (Google Chrome 80.0.3987.163 ) -- ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}); Chrome Driver is available via CHROMEWEBDRIVER environment variable -- Google Cloud SDK (287.0.0) +- Google Chrome (Google Chrome 81.0.4044.129 ) +- ChromeDriver 81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}); Chrome Driver is available via CHROMEWEBDRIVER environment variable +- Google Cloud SDK (290.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 @@ -144,46 +153,47 @@ compiled using version 3.2.0.0 of the Cabal library ) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.3) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.1) - Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2) -- Heroku (heroku/7.39.2 linux-x64 node-v12.13.0) -- HHVM (HipHop VM 4.52.0 (rel)) +- Heroku (heroku/7.39.5 linux-x64 node-v12.16.2) +- HHVM (HipHop VM 4.55.0 (rel)) - ImageMagick - Azul Zulu OpenJDK: - - 7 (openjdk version "1.7.0_252") - - 8 (openjdk version "1.8.0_242") (default) - - 11 (openjdk version "11.0.6" 2020-01-14 LTS) + - 7 (openjdk version "1.7.0_262") + - 8 (openjdk version "1.8.0_252") (default) + - 11 (openjdk version "11.0.7" 2020-04-14 LTS) - 12 (openjdk version "12.0.2" 2019-07-16) - Ant (Apache Ant(TM) version 1.10.5 compiled on March 28 2019) - Gradle 6.3 - Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)) - Kind (kind v0.7.0 go1.13.6 linux/amd64) - kubectl (error: Missing or incomplete configuration info. Please point to an existing, complete config file:) -- helm (v3.1.2+gd878d4d) -- Leiningen (Leiningen 2.9.3 on Java 1.8.0_242 OpenJDK 64-Bit Server VM) +- helm (v3.2.0+ge11b7ce) +- Leiningen (Leiningen 2.9.3 on Java 1.8.0_252 OpenJDK 64-Bit Server VM) - Mercurial (Mercurial Distributed SCM (version 4.5.3)) - Miniconda (conda 4.8.2) - Mono (Mono JIT compiler version 6.8.0.105 (tarball Tue Feb 4 21:20:20 UTC 2020)) - MySQL (mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper) - MySQL Server (user:root password:root) - MS SQL Server Client Tools +- MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service' - nvm (0.35.3) -- Node.js (v12.16.1) +- Node.js (v12.16.3) - Grunt (grunt-cli v1.2.0) - Gulp (CLI version: 2.2.0 Local version: Unknown) -- n (6.4.0) +- n (6.5.1) - Parcel (1.12.4) - TypeScript (Version 3.8.3) -- Webpack (4.42.1) +- Webpack (4.43.0) - Webpack CLI (3.3.11) - Yarn (1.22.4) -- Bazel (bazel 3.0.0) -- Bazelisk (1.3.0) +- Bazel (bazel 3.1.0) +- Bazelisk (1.4.0) - PhantomJS (2.1.1) -- PHP 7.1 (PHP 7.1.33-14+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:57:43) ( NTS )) -- PHP 7.2 (PHP 7.2.29-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:54:39) ( NTS )) -- PHP 7.3 (PHP 7.3.16-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:51:46) ( NTS )) -- PHP 7.4 (PHP 7.4.4 (cli) (built: Mar 20 2020 13:47:45) ( NTS )) -- Composer (Composer version 1.10.1 2020-03-13 20:34:27) +- PHP 7.1 (PHP 7.1.33-15+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:59:27) ( NTS )) +- PHP 7.2 (PHP 7.2.30-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:50:50) ( NTS )) +- PHP 7.3 (PHP 7.3.17-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:44:26) ( NTS )) +- PHP 7.4 (PHP 7.4.5 (cli) (built: Apr 19 2020 07:36:30) ( NTS )) +- Composer (Composer version 1.10.5 2020-04-10 11:44:22) - PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.) - Pollinate - psql (PostgreSQL) 10.12 @@ -191,29 +201,31 @@ Local version: Unknown) - ruby (2.5.1p57) - gem (3.1.2) - rustup (1.21.1) -- rust (1.42.0) -- cargo (1.42.0) -- rustfmt (1.4.11-stable) +- rust (1.43.0) +- cargo (1.43.0) +- rustfmt (1.4.12-stable) - clippy (0.0.212) -- rustdoc (1.42.0) +- rustdoc (1.43.0) - bindgen (0.53.2) -- cbindgen (0.14.0) -- Julia (julia version 1.4.0) -- sbt (1.3.9) +- cbindgen (0.14.1) +- Julia (julia version 1.4.1) +- sbt (1.3.10) - Selenium server standalone (available via SELENIUM_JAR_PATH environment variable) - Sphinx Open Source Search Server - Subversion (svn, version 1.9.7 (r1800392)) - Terraform (Terraform v0.12.24) - Packer (1.5.5) - Vcpkg 2020.02.04-unknownhash -- Zeit Now CLI (17.1.1) -- MongoDB on Linux (2020-04-07T01:27:09.357+0000 I CONTROL [initandlisten] db version v4.2.5 -2020-04-07T01:27:09.357+0000 I CONTROL [initandlisten] git version: 2261279b51ea13df08ae708ff278f0679c59dc32 -2020-04-07T01:27:09.357+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019) +- Zeit Now CLI (18.0.0) +- MongoDB on Linux (2020-04-30T20:19:37.962+0000 I CONTROL [initandlisten] db version v4.2.6 +2020-04-30T20:19:37.962+0000 I CONTROL [initandlisten] git version: 20364840b8f1af16917e4c23c1b5f5efd8b352f8 +2020-04-30T20:19:37.962+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1g 21 Apr 2020) +- Haveged 1.9.1-6 +- AWS SAM CLI, version 0.48.0 - Go 1.11 (go version go1.11.13 linux/amd64) - Go 1.12 (go version go1.12.17 linux/amd64) -- Go 1.13 (go version go1.13.9 linux/amd64) -- Go 1.14 (go version go1.14.1 linux/amd64) +- Go 1.13 (go version go1.13.10 linux/amd64) +- Go 1.14 (go version go1.14.2 linux/amd64) - Google Repository 58 - Google Play services 49 - Google APIs 24 @@ -223,7 +235,7 @@ Local version: Unknown) - CMake 3.10.2.4988404 3.6.4111459 - Android Support Repository 47.0.0 -- Android SDK Platform-Tools 29.0.6 +- Android SDK Platform-Tools 30.0.0 - Android SDK Platform 29 - Android SDK Platform 28 - Android SDK Platform 27 @@ -267,7 +279,7 @@ Local version: Unknown) - Android SDK Build-Tools 20.0.0 - Android SDK Build-Tools 19.1.0 - Android SDK Build-Tools 17.0.0 -- Android NDK 21.0.6113669 +- Android NDK 21.1.6352462 - Az Module (1.0.0) - Az Module (1.6.0) - Az Module (2.3.2) @@ -276,25 +288,20 @@ Local version: Unknown) - Az Module (3.1.0) - Az Module (3.5.0) - Cached container images - - node:10 (Digest: sha256:816cfaee24dc2cea534e21d7f9c55f3b22c8bc6af61d8445f8d0178168ef3b28) - - node:12 (Digest: sha256:46f4c17e1edbde36d60a9f6362db7912cfe301bac89afef7cc92421ab3e7ca18) - - buildpack-deps:stretch (Digest: sha256:a711a64b26285b42cd02618a191ec6c99650449f698858e0e2cc0535ab85e4dd) - - debian:9 (Digest: sha256:344470192d10cf7cf0bedcb183effbe99065829a8dbe68e65e703faf46fc10c1) - - debian:8 (Digest: sha256:a77aa078ad4769799286bba5fc198deda5bfd4d0144a24e6aa0c8dddf0a22833) - - node:10-alpine (Digest: sha256:9a88e3bc3f845b74d2fd8adcbc64608736a8be4a3e9dc7aa34fa743e3677a552) - - node:12-alpine (Digest: sha256:6b5b783c9cfe229af0bd5b0b677dd32005bb22d58465f3d0fe7fbd1c60ce068c) + - jekyll/builder:latest (Digest: sha256:c97cebe5f614888d61bebf234c1c93399aa74463ffdb175fd9b975a4b0fa8f13) + - node:12-alpine (Digest: sha256:84f5c9090cc741421b2376b2393e7d5fa2f89d36167c12eb57aef16dd64ecf6c) + - node:12 (Digest: sha256:5fe210262a6dc0c1f5555976356cf076c7a8c7645b0c781bc8a913881bbe7942) + - node:10-alpine (Digest: sha256:b2db1b026f1b01a6a91f39d8204b89c5c13d2b40a017dd4d9253ab066c9cf2cb) + - alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011) + - alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35) + - node:10 (Digest: sha256:e0c512c52c3ca8797fc60ada3698004f5cba13af4a8a5968041edac1b5d98577) + - buildpack-deps:stretch (Digest: sha256:38353fdc334fa612f3dedb3d1e8172c3e63de706ca80260856e5708d0fd1146a) + - debian:9 (Digest: sha256:666ffd4fbcdff07edcbd65f0ec1dc86ed294f5e3be93eb26280575f77427df46) + - debian:8 (Digest: sha256:734728c8e411698485ae644fc988dad06f757565e292b5b85edc084befa37bbb) - alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14) - - alpine:3.9 (Digest: sha256:115731bab0862031b44766733890091c17924f9b7781b79997f5f163be262178) - - alpine:3.10 (Digest: sha256:7c3773f7bcc969f03f8f653910001d99a9d324b4b9caa008846ad2c3089f5a5f) - - jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e) + - ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4) - alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10) - mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a) -- Python: - - Python 2.7.17 - - Python 3.5.9 - - Python 3.6.10 - - Python 3.7.6 - - Python 3.8.2 - Ruby: - Ruby 2.4.10 - Ruby 2.5.8 @@ -307,5 +314,11 @@ Local version: Unknown) - 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)) +- Python: + - Python 2.7.18 + - Python 3.5.9 + - Python 3.6.10 + - Python 3.7.7 + - Python 3.8.2 - Boost C++ Libraries 1.69.0 - Boost C++ Libraries 1.72.0 From 3e9c8e5afc2041d616cfebfcf1187bdd60550acc Mon Sep 17 00:00:00 2001 From: Dibir Magomedsaygitov <61747324+dibir-magomedsaygitov@users.noreply.github.com> Date: Wed, 13 May 2020 08:02:08 +0300 Subject: [PATCH 47/51] Switch Expand-Archive to 7zip on Windows image generation (#861) * switch expand-archive to 7zip on windows --- .../scripts/ImageHelpers/ImageHelpers.psm1 | 1 + .../scripts/ImageHelpers/InstallHelpers.ps1 | 19 +++++++++++++++++++ .../win/scripts/Installers/Install-Chrome.ps1 | 2 +- .../Installers/Install-CloudFoundryCli.ps1 | 2 +- .../win/scripts/Installers/Install-Edge.ps1 | 2 +- .../scripts/Installers/Install-Firefox.ps1 | 2 +- images/win/scripts/Installers/Install-Go.ps1 | 4 ++-- .../Installers/Install-IEWebDriver.ps1 | 18 +++++++++--------- .../scripts/Installers/Install-JavaTools.ps1 | 2 +- .../scripts/Installers/Install-MysqlCli.ps1 | 2 +- 10 files changed, 37 insertions(+), 17 deletions(-) diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 index 94ff7b204..c2007855a 100644 --- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 +++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 @@ -29,4 +29,5 @@ Export-ModuleMember -Function @( 'Test-IsWin19' 'Test-IsWin16' 'Choco-Install' + 'Extract-7Zip' ) diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index 8ec49e0d4..7f3806a13 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -386,3 +386,22 @@ function Test-IsWin16 { (Get-WinVersion) -match "2016" } + +function Extract-7Zip { + param + ( + [Parameter(Mandatory=$true)] + [string]$Path, + [Parameter(Mandatory=$true)] + [string]$DestinationPath + ) + + Write-Host "Expand archive '$PATH' to '$DestinationPath' directory" + 7z.exe x "$Path" -o"$DestinationPath" -y | Out-Null + + if ($LASTEXITCODE -ne 0) + { + Write-Host "There is an error during expanding '$Path' to '$DestinationPath' directory" + exit 1 + } +} diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1 index 22b477b28..f0eecc4c2 100644 --- a/images/win/scripts/Installers/Install-Chrome.ps1 +++ b/images/win/scripts/Installers/Install-Chrome.ps1 @@ -66,7 +66,7 @@ $ChromeDriverZipDownloadUrl = "https://chromedriver.storage.googleapis.com/${Chr $ChromeDriverArchPath = Start-DownloadWithRetry -Url $ChromeDriverZipDownloadUrl -Name $ChromeDriverArchName Write-Host "Expand Chrome WebDriver archive..." -Expand-Archive -Path $ChromeDriverArchPath -DestinationPath $ChromeDriverPath -Force +Extract-7Zip -Path $ChromeDriverArchPath -DestinationPath $ChromeDriverPath Write-Host "Setting the environment variables..." setx ChromeWebDriver "$ChromeDriverPath" /M diff --git a/images/win/scripts/Installers/Install-CloudFoundryCli.ps1 b/images/win/scripts/Installers/Install-CloudFoundryCli.ps1 index 194ed5a38..6f9ea886b 100644 --- a/images/win/scripts/Installers/Install-CloudFoundryCli.ps1 +++ b/images/win/scripts/Installers/Install-CloudFoundryCli.ps1 @@ -17,7 +17,7 @@ New-Item -Path $CloudFoundryCliPath -ItemType Directory -Force # Extract the zip archive Write-Host "Extracting cf cli..." -Expand-Archive -Path $CloudFoundryArchPath -DestinationPath $CloudFoundryCliPath -Force +Extract-7Zip -Path $CloudFoundryArchPath -DestinationPath $CloudFoundryCliPath # Add cf to path Add-MachinePathItem $CloudFoundryCliPath \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Edge.ps1 b/images/win/scripts/Installers/Install-Edge.ps1 index c10f24226..85b828fb6 100644 --- a/images/win/scripts/Installers/Install-Edge.ps1 +++ b/images/win/scripts/Installers/Install-Edge.ps1 @@ -29,7 +29,7 @@ $EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVer $EdgeDriverArchPath = Start-DownloadWithRetry -Url $EdgeDriverDownloadUrl -Name $EdgeDriverArchName Write-Host "Expand Microsoft Edge WebDriver archive..." -Expand-Archive -Path $EdgeDriverArchPath -DestinationPath $EdgeDriverPath -Force +Extract-7Zip -Path $EdgeDriverArchPath -DestinationPath $EdgeDriverPath Write-Host "Setting the environment variables..." setx EdgeWebDriver "$EdgeDriverPath" /M diff --git a/images/win/scripts/Installers/Install-Firefox.ps1 b/images/win/scripts/Installers/Install-Firefox.ps1 index efd3fe8b4..8817bf013 100644 --- a/images/win/scripts/Installers/Install-Firefox.ps1 +++ b/images/win/scripts/Installers/Install-Firefox.ps1 @@ -45,7 +45,7 @@ $GeckoDriverDownloadUrl = $GeckoDriverWindowsAsset.browser_download_url $GeckoDriverArchPath = Start-DownloadWithRetry -Url $GeckoDriverDownloadUrl -Name $GeckoDriverArchName Write-Host "Expand Gecko WebDriver archive..." -Expand-Archive -Path $GeckoDriverArchPath -DestinationPath $GeckoDriverPath -Force +Extract-7Zip -Path $GeckoDriverArchPath -DestinationPath $GeckoDriverPath Write-Host "Setting the environment variables..." Add-MachinePathItem -PathItem $GeckoDriverPath diff --git a/images/win/scripts/Installers/Install-Go.ps1 b/images/win/scripts/Installers/Install-Go.ps1 index c5d4c144c..c37c54cf8 100644 --- a/images/win/scripts/Installers/Install-Go.ps1 +++ b/images/win/scripts/Installers/Install-Go.ps1 @@ -15,7 +15,7 @@ function Install-GoVersion [Switch] $addToDefaultPath ) - $latestVersionObject = $refsJson | Where-Object { $_.ref -Match "refs/tags/go$goVersion[./d]*" } | Select-Object -Last 1 + $latestVersionObject = $refsJson | Where-Object { $_.ref -Match "refs/tags/go$goVersion[./d]*" } | Select-Object -Last 1 $latestVersion = $latestVersionObject.ref.replace('refs/tags/go','') # Download the Go zip archive. @@ -30,7 +30,7 @@ function Install-GoVersion # Extract the zip archive. It contains a single directory named "go". Write-Host "Extracting Go $latestVersion..." $toolDirectory = Join-Path $env:AGENT_TOOLSDIRECTORY "go\$latestVersion" - 7z.exe x $goArchPath -o"$toolDirectory" -y | Out-Null + Extract-7Zip -Path $goArchPath -DestinationPath $toolDirectory # Rename the extracted "go" directory to "x64" for full path "C:\hostedtoolcache\windows\Go\1.14.2\x64\..." Rename-Item -path "$toolDirectory\go" -newName "x64" diff --git a/images/win/scripts/Installers/Install-IEWebDriver.ps1 b/images/win/scripts/Installers/Install-IEWebDriver.ps1 index 7dfd8b42f..87104c1aa 100644 --- a/images/win/scripts/Installers/Install-IEWebDriver.ps1 +++ b/images/win/scripts/Installers/Install-IEWebDriver.ps1 @@ -2,21 +2,21 @@ ## File: Install-SeleniumWebDrivers.ps1 ## Desc: Install Selenium Web Drivers ################################################################################ -$DestinationPath = "$($env:SystemDrive)\"; +$DestinationPath = "$($env:SystemDrive)\" $DriversZipFile = "SeleniumWebDrivers.zip" -Write-Host "Destination path: [$DestinationPath]"; -Write-Host "Selenium drivers download and install..."; +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; + Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/${DriversZipFile}" -OutFile $DriversZipFile } catch { - Write-Error "[!] Failed to download $DriversZipFile"; - exit 1; + Write-Error "[!] Failed to download $DriversZipFile" + exit 1 } $TempSeleniumDir = Join-Path $Env:TEMP "SeleniumWebDrivers" -Expand-Archive -Path $DriversZipFile -DestinationPath $Env:TEMP -Force; -Remove-Item $DriversZipFile; +Extract-7Zip -Path $DriversZipFile -DestinationPath $Env:TEMP +Remove-Item $DriversZipFile $SeleniumWebDriverPath = Join-Path $DestinationPath "SeleniumWebDrivers" $IEDriverPathTemp = Join-Path $TempSeleniumDir 'IEDriver' @@ -29,4 +29,4 @@ Move-Item -Path "$IEDriverPathTemp" -Destination $SeleniumWebDriverPath Write-Host "Setting the environment variables" -setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M; +setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M diff --git a/images/win/scripts/Installers/Install-JavaTools.ps1 b/images/win/scripts/Installers/Install-JavaTools.ps1 index 455283d09..34e9fb886 100644 --- a/images/win/scripts/Installers/Install-JavaTools.ps1 +++ b/images/win/scripts/Installers/Install-JavaTools.ps1 @@ -82,6 +82,6 @@ $uri = 'https://ayera.dl.sourceforge.net/project/cobertura/cobertura/2.1.1/cober $coberturaPath = "C:\cobertura-2.1.1" $archivePath = Start-DownloadWithRetry -Url $uri -Name "cobertura.zip" -Expand-Archive -Path $archivePath -DestinationPath "C:\" +Extract-7Zip -Path $archivePath -DestinationPath "C:\" setx COBERTURA_HOME $coberturaPath /M diff --git a/images/win/scripts/Installers/Install-MysqlCli.ps1 b/images/win/scripts/Installers/Install-MysqlCli.ps1 index a9db2f429..360976437 100644 --- a/images/win/scripts/Installers/Install-MysqlCli.ps1 +++ b/images/win/scripts/Installers/Install-MysqlCli.ps1 @@ -22,7 +22,7 @@ Install-Binary -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentLi $mysqlArchPath = Start-DownloadWithRetry -Url $MysqlVersionUrl -Name "mysql.zip" # Expand the zip -Expand-Archive -Path $mysqlArchPath -DestinationPath "C:\" -Force +Extract-7Zip -Path $mysqlArchPath -DestinationPath "C:\" # Adding mysql in system environment path Add-MachinePathItem $mysqlPath \ No newline at end of file From 6b08235b41de35951eccf60af84d78516eb04aeb Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Wed, 13 May 2020 10:01:02 +0300 Subject: [PATCH 48/51] [Ubuntu] Add Azcopy10 (#871) * Add azcopy10 * Add spaces after azcopy --- images/linux/scripts/installers/azcopy.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/images/linux/scripts/installers/azcopy.sh b/images/linux/scripts/installers/azcopy.sh index 9e97a3ec1..3efe54d11 100644 --- a/images/linux/scripts/installers/azcopy.sh +++ b/images/linux/scripts/installers/azcopy.sh @@ -7,19 +7,32 @@ # Source the helpers for use with the script source $HELPER_SCRIPTS/document.sh -# Install AzCopy +# Install AzCopy7 wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64 tar -xf azcopy.tar.gz rm azcopy.tar.gz ./install.sh +# Install AzCopy10 +wget -O /tmp/azcopy.tar.gz https://aka.ms/downloadazcopy-v10-linux +tar zxvf /tmp/azcopy.tar.gz --strip-components=1 -C /tmp +mv /tmp/azcopy /usr/local/bin/azcopy10 + # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" if ! command -v azcopy; then - echo "azcopy was not installed" + echo "azcopy7 was not installed" + exit 1 +fi + +if ! command -v azcopy10; then + echo "azcopy10 was not installed" exit 1 fi # Document what was added to the image +azcopy7Version=$(azcopy --version | awk '{print $2}' | cut -d '-' -f 1) +azcopy10Version=$(azcopy10 --version | awk '{print $3}') echo "Lastly, documenting what we added to the metadata file" -DocumentInstalledItem "AzCopy ($(azcopy --version))" +DocumentInstalledItem "AzCopy7 (available by azcopy alias) $azcopy7Version" +DocumentInstalledItem "AzCopy10 (available by azcopy10 alias) $azcopy10Version" From 5abcc104b2d27650a716e8ec1b4e823c1fbae30a Mon Sep 17 00:00:00 2001 From: Alena Sviridenko Date: Wed, 13 May 2020 13:26:04 +0300 Subject: [PATCH 49/51] Update Boost documentation (#866) * added note for boost_root * updated note --- images/win/scripts/Installers/Validate-Boost.ps1 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/images/win/scripts/Installers/Validate-Boost.ps1 b/images/win/scripts/Installers/Validate-Boost.ps1 index e9b7554e3..97464b775 100644 --- a/images/win/scripts/Installers/Validate-Boost.ps1 +++ b/images/win/scripts/Installers/Validate-Boost.ps1 @@ -55,6 +55,10 @@ foreach ($BoostTool in $BoostTools) $CMakeFindBoostInfo = @" #### _Notes:_ + +> ``BOOST_ROOT`` is not set on images but it is required by CMake. Please make sure you set this variable +> value to either ``BOOST_ROOT_1_69_0`` or ``BOOST_ROOT_1_72_0`` depending on the Boost version you are using. + Link: https://cmake.org/cmake/help/latest/module/FindBoost.html If Boost was built using the ``boost-cmake`` project or from ``Boost 1.70.0`` on it provides a package From 96100ea49b8f6a86e0431e73fe6ddda785300896 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Wed, 13 May 2020 17:15:18 +0300 Subject: [PATCH 50/51] Updating readme file for macOS1015 version 20200507.1 (#867) --- images/macos/macos-10.15-Readme.md | 103 ++++++++++++++--------------- 1 file changed, 51 insertions(+), 52 deletions(-) diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md index c0a030ad6..583844939 100644 --- a/images/macos/macos-10.15-Readme.md +++ b/images/macos/macos-10.15-Readme.md @@ -1,26 +1,26 @@ -# OS X info +# macOS info - System Version: macOS 10.15.4 (19E287) - Kernel Version: Darwin 19.4.0 - System Integrity Protection: Enabled -- Image Version: 20200430.1 +- Image Version: 20200507.1 -# Installed Software -## Language and Runtime +## Installed Software +### Language and Runtime - Java 1.7: (Zulu 7.38.0.11-CA-macosx) (build 1.7.0_262-b10) - Java 1.8: (Zulu 8.46.0.19-CA-macosx) (build 1.8.0_252-b14) (default) - Java 11: Zulu11.39+15-CA (build 11.0.7+10-LTS) - Java 12: Zulu12.3+11-CA (build 12.0.2+3) - Java 13: Zulu13.31+11-CA (build 13.0.3+3-MTS) - Java 14: Zulu14.28+21-CA (build 14.0.1+8) -- Rust 1.43.0 +- Rust 1.43.1 - Clang/LLVM 10.0.0 - gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 - gcc-9 (Homebrew GCC 9.3.0_1) 9.3.0 - GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 - GNU Fortran (Homebrew GCC 9.3.0_1) 9.3.0 - Node.js v12.16.3 -- NVM 0.33.11 -- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.3 v13.14.0 +- NVM 0.35.3 +- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.3 v13.14.0 v14.2.0 - PowerShell 7.0.0 - Python 2.7.17 - Python 3.7.7 @@ -30,33 +30,33 @@ - PHP 7.4.5 - julia 1.4.1 -## Package Management +### Package Management - Rustup 1.21.1 - Vcpkg 2020.02.04 - Bundler version 2.1.4 - Carthage 0.34.0 - CocoaPods 1.9.1 -- Homebrew 2.2.14 +- Homebrew 2.2.15 - NPM 6.14.4 - Yarn 1.22.4 - NuGet 5.5.0.6382 - Pip 19.3.1 (python 2.7) - Pip 20.0.2 (python 3.7) - Miniconda 4.8.2 -- RubyGems 3.1.2 +- RubyGems 3.1.3 -## Project Management +### Project Management - Apache Maven 3.6.3 -- Gradle 6.3 +- Gradle 6.4 -## Utilities +### Utilities - Curl 7.70.0 - Git: 2.26.2 - Git LFS: 2.10.0 - Hub CLI: 2.14.2 - GNU Wget 1.20.3 - Subversion (SVN) 1.13.0 -- Packer 1.5.5 +- Packer 1.5.6 - GNU parallel 20200422 - OpenSSL 1.0.2t 10 Sep 2019 - jq 1.6 @@ -64,61 +64,61 @@ - psql (PostgreSQL) 12.2 - PostgreSQL 12.2 - aria2 1.35.0 -- azcopy 10.4.1 +- azcopy 10.4.3 - zstd 1.4.4 - bazel 3.1.0 - bazelisk v1.4.0 - helm v3.2.0+ge11b7ce - virtualbox 6.1.6r137129 -- Vagrant 2.2.7 +- Vagrant 2.2.8 -## Tools +### Tools - Fastlane 2.146.1 - Cmake 3.17.2 -- App Center CLI 2.5.0 +- App Center CLI 2.5.1 - Azure CLI 2.5.1 - AWS CLI 2.0.10 - AWS SAM CLI 0.48.0 - Aliyun CLI 3.0.39 -## Browsers +### Browsers - Safari 13.1 (15609.1.20.111.8) - SafariDriver 13.1 (15609.1.20.111.8) -- Google Chrome 81.0.4044.129 -- ChromeDriver 81.0.4044.69 -- Microsoft Edge 81.0.416.68 +- Google Chrome 81.0.4044.138 +- ChromeDriver 81.0.4044.138 +- Microsoft Edge 81.0.416.68 - MSEdgeDriver 81.0.416.68 -- Mozilla Firefox 75.0 +- Mozilla Firefox 76.0 - geckodriver 0.26.0 -## Toolcache -### Ruby +### Toolcache +#### Ruby - 2.4.10 - 2.5.8 - 2.6.6 - 2.7.1 -### Python +#### Python - 2.7.18 - 3.5.9 - 3.6.10 - 3.7.7 - 3.8.2 -### PyPy +#### PyPy - 2.7.17 - 3.6.9 -## Xamarin -### Visual Studio for Mac -- 8.5.4.12 +### Xamarin +#### Visual Studio for Mac +- 8.5.5.7 -### Mono +#### Mono - 6.8.0.123 - 6.6.0.166 - 6.4.0.208 -### Xamarin.iOS +#### Xamarin.iOS - 13.16.0.13 - 13.14.1.39 - 13.10.0.21 @@ -127,7 +127,7 @@ - 13.4.0.2 - 13.2.0.47 -### Xamarin.Mac +#### Xamarin.Mac - 6.16.0.13 - 6.14.1.39 - 6.10.0.21 @@ -136,18 +136,18 @@ - 6.4.0.2 - 6.2.0.47 -### Xamarin.Android +#### Xamarin.Android - 10.2.0 - 10.1.3 - 10.0.6 -### Unit Test Framework +#### Unit Test Framework - NUnit 3.6.1 -## Xcode +### Xcode | Version | Build | Path | | ---------------- | ------- | --------------------------------- | -| 11.5 (beta) | 11N605c | /Applications/Xcode_11.5_beta.app | +| 11.5 (beta) | 11N605f | /Applications/Xcode_11.5_beta.app | | 11.4.1 (default) | 11E503a | /Applications/Xcode_11.4.1.app | | 11.4 | 11E146 | /Applications/Xcode_11.4.app | | 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app | @@ -158,14 +158,14 @@ | 11.0 | 11A420a | /Applications/Xcode_11.app | | 10.3 | 10G8 | /Applications/Xcode_10.3.app | -### Xcode Support Tools -- Nomad CLI 3.1.2 +#### Xcode Support Tools +- Nomad CLI 3.1.3 - Nomad CLI IPA ipa 0.14.3 - xcpretty 0.3.0 - xctool 0.3.7 - xcversion 2.6.4 -### Installed SDKs +#### Installed SDKs | SDK | SDK Name | Xcode Version | | ----------------------- | -------------------- | ---------------------------------------------------------- | | macOS 10.14 | macosx10.14 | 10.3 | @@ -200,7 +200,7 @@ | Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5 | | DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1, 11.5 | -### Installed Simulators +#### Installed Simulators | OS | Xcode Version | Simulators | | ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | iOS 12.4 | 10.3 | iPhone 5s
iPhone 6 Plus
iPhone 6
iPhone 6s
iPhone 6s Plus
iPhone SE
iPhone 7
iPhone 7 Plus
iPhone 8
iPhone 8 Plus
iPhone X
iPhone Xs
iPhone Xs Max
iPhone Xʀ
iPad Air
iPad Air 2
iPad Pro (9.7-inch)
iPad Pro (12.9-inch)
iPad (5th generation)
iPad Pro (12.9-inch) (2nd generation)
iPad Pro (10.5-inch)
iPad (6th generation)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | @@ -220,18 +220,18 @@ | watchOS 6.1 | 11.2
11.2.1
11.3
11.3.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | | watchOS 6.2 | 11.4
11.4.1
11.5 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | -## Android -### Android SDK Tools +### Android +#### Android SDK Tools | Package Name | Description | | ------------ | ---------------------------------- | | tools | Android SDK Tools, Revision 26.1.1 | -### Android SDK Platform-Tools +#### Android SDK Platform-Tools | Package Name | Description | | -------------- | ------------------------------------------- | -| platform-tools | Android SDK Platform-Tools, Revision 30.0.0 | +| platform-tools | Android SDK Platform-Tools, Revision 30.0.1 | -### Android SDK Platforms +#### Android SDK Platforms | Package Name | Description | | ------------ | ----------------------------------- | | android-24 | Android SDK Platform 24, Revision 2 | @@ -241,7 +241,7 @@ | android-28 | Android SDK Platform 28, Revision 6 | | android-29 | Android SDK Platform 29, Revision 4 | -### Android SDK Build-Tools +#### Android SDK Build-Tools | Package Name | Description | | ---------------------- | -------------------------------------------- | | build-tools-24.0.0 | Android SDK Build-Tools, Revision 24.0.0 | @@ -268,17 +268,16 @@ | build-tools-29.0.1 | Android SDK Build-Tools, Revision 29.0.1 | | build-tools-29.0.2 | Android SDK Build-Tools, Revision 29.0.2 | | build-tools-29.0.3 | Android SDK Build-Tools, Revision 29.0.3 | -| build-tools-30.0.0-rc1 | Android SDK Build-Tools, Revision 30.0.0 rc1 | +| build-tools-30.0.0-rc4 | Android SDK Build-Tools, Revision 30.0.0 rc4 | -### Android Utils +#### Android Utils | Package Name | Version | | ---------------- | ------------ | | cmake | 3.6.4111459 | -| lldb | 3.1.4508709 | | ndk-bundle | 21.1.6352462 | | Android Emulator | 30.0.5 | -### Android Google APIs +#### Android Google APIs | Package Name | Description | | --------------------------- | ----------------------- | | addon-google_apis-google-21 | Google APIs, Revision 1 | @@ -286,7 +285,7 @@ | addon-google_apis-google-23 | Google APIs, Revision 1 | | addon-google_apis-google-24 | Google APIs, Revision 1 | -### Extra Packages +#### Extra Packages | Package Name | Version | | ----------------------------------------------- | ------- | | Android Support Repository | 47.0.0 | From 0e7d6a75c6c2a7463b0c2b3ea80f87b34a529cd1 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Thu, 14 May 2020 09:08:27 +0300 Subject: [PATCH 51/51] [Ubuntu] Add /tmp cleanup (#878) * add tmp cleanup * low min to 17800 --- images/linux/scripts/installers/cleanup.sh | 1 + images/linux/scripts/installers/validate-disk-space.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/cleanup.sh b/images/linux/scripts/installers/cleanup.sh index fe284f339..954e51fc9 100644 --- a/images/linux/scripts/installers/cleanup.sh +++ b/images/linux/scripts/installers/cleanup.sh @@ -6,6 +6,7 @@ before=$(df / -Pm | awk 'NR==2{print $4}') # clears out the local repository of retrieved package files # It removes everything but the lock file from /var/cache/apt/archives/ and /var/cache/apt/archives/partial apt-get clean +rm -rf /tmp/* # after cleanup after=$(df / -Pm | awk 'NR==2{print $4}') diff --git a/images/linux/scripts/installers/validate-disk-space.sh b/images/linux/scripts/installers/validate-disk-space.sh index 5201848d7..79a589ddc 100644 --- a/images/linux/scripts/installers/validate-disk-space.sh +++ b/images/linux/scripts/installers/validate-disk-space.sh @@ -5,7 +5,7 @@ ################################################################################ availableSpaceMB=$(df / -hm | sed 1d | awk '{ print $4}') -minimumFreeSpaceMB=18000 +minimumFreeSpaceMB=17800 echo "Available disk space: $availableSpaceMB MB" if [ $availableSpaceMB -le $minimumFreeSpaceMB ]; then