Merge branch 'master' into v-danurg/revert_systemd_workaround_fix

This commit is contained in:
Darii Nurgaleev
2020-05-05 23:58:24 +07:00
40 changed files with 707 additions and 156 deletions

View File

@@ -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. - 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 - 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. 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 ## Updates to virtual environments
*Cadence* *Cadence*

View File

@@ -26,7 +26,7 @@ function replaceEtcEnvironmentVariable {
variable_value="$2" variable_value="$2"
# modify /etc/environemnt in place by replacing a string that begins with variable_name # 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 { function setEtcEnvironmentVariable {

View File

@@ -283,6 +283,9 @@ prependEtcEnvironmentPath /home/runner/.config/composer/vendor/bin
# Add composer bin folder to path # Add composer bin folder to path
echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> /etc/skel/.bashrc 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) # Install phpunit (for PHP)
wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar
chmod +x phpunit chmod +x phpunit

View File

@@ -7,6 +7,7 @@
source $HELPER_SCRIPTS/document.sh source $HELPER_SCRIPTS/document.sh
WriteItem "<!--- DO NOT EDIT - This markdown file is autogenerated. -->"
AddTitle "$(lsb_release -ds)" AddTitle "$(lsb_release -ds)"
WriteItem "The following software is installed on machines with the $IMAGE_VERSION update." WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
WriteItem "***" WriteItem "***"

View File

@@ -139,6 +139,10 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim
fi fi
done 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 # Document what was added to the image
echo "Lastly, documenting what we added to the metadata file" echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Basic CLI:" DocumentInstalledItem "Basic CLI:"

View File

@@ -18,7 +18,9 @@ echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | tee /etc/
## Add version information to the metadata file ## Add version information to the metadata file
echo "Documenting container tools version" echo "Documenting container tools version"
PODMAN_VERSION='podman --version' PODMAN_VERSION="$(podman --version | cut -d " " -f 3)"
BUILDAH_VERSION='buildah --version' BUILDAH_VERSION="$(buildah --version | cut -d " " -f 3)"
SKOPEO_VERSION='skopeo --version' SKOPEO_VERSION="$(skopeo --version | cut -d " " -f 3)"
DocumentInstalledItem "Podman ($PODMAN_VERSION)\nBuildah ($BUILDAH_VERSION)\nSkopeo ($SKOPEO_VERSION)" DocumentInstalledItem "Podman ($PODMAN_VERSION)"
DocumentInstalledItem "Buildah ($BUILDAH_VERSION)"
DocumentInstalledItem "Skopeo ($SKOPEO_VERSION)"

View File

@@ -200,6 +200,9 @@ prependEtcEnvironmentPath /home/runner/.config/composer/vendor/bin
# Add composer bin folder to path # Add composer bin folder to path
echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> /etc/skel/.bashrc 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) # Install phpunit (for PHP)
wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar
chmod +x phpunit chmod +x phpunit

View File

@@ -7,6 +7,7 @@
source $HELPER_SCRIPTS/document.sh source $HELPER_SCRIPTS/document.sh
WriteItem "<!--- DO NOT EDIT - This markdown file is autogenerated. -->"
AddTitle "$(lsb_release -ds)" AddTitle "$(lsb_release -ds)"
WriteItem "The following software is installed on machines with the $IMAGE_VERSION update." WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
WriteItem "***" WriteItem "***"

View File

@@ -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

View File

@@ -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)'`""
}
}

View File

@@ -10,7 +10,7 @@ source $HELPER_SCRIPTS/document.sh
# Test to see if the software in question is already installed, if not install it # 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" echo "Checking to see if the installer script has already been run"
if command -v cmake; then if command -v cmake; then
echo "Example variable already set to $EXAMPLE_VAR" echo "cmake is already installed"
else else
curl -sL https://cmake.org/files/v3.17/cmake-3.17.0-Linux-x86_64.sh -o cmakeinstall.sh \ curl -sL https://cmake.org/files/v3.17/cmake-3.17.0-Linux-x86_64.sh -o cmakeinstall.sh \
&& chmod +x cmakeinstall.sh \ && chmod +x cmakeinstall.sh \

View File

@@ -49,12 +49,6 @@ done;
popd popd
DocumentInstalledItem "Python:"
pythons=$(ls $AGENT_TOOLSDIRECTORY/Python)
for python in $pythons; do
DocumentInstalledItemIndent "Python $python"
done;
DocumentInstalledItem "Ruby:" DocumentInstalledItem "Ruby:"
rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby) rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby)
for ruby in $rubys; do for ruby in $rubys; do

View File

@@ -69,6 +69,5 @@ done;
AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache 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 "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" 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"

View File

@@ -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=18000
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

View File

@@ -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": [ "@actions/toolcache-ruby-ubuntu-1604-x64": [
"2.4", "2.5", "2.6", "2.7" "2.4", "2.5", "2.6", "2.7"
], ],

View File

@@ -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": [ "@actions/toolcache-ruby-ubuntu-1804-x64": [
"2.4", "2.5", "2.6", "2.7" "2.4", "2.5", "2.6", "2.7"
], ],

View File

@@ -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.*"
]
}
]
}

View File

@@ -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.*"
]
}
]
}

View File

@@ -269,6 +269,11 @@
"source": "{{template_dir}}/toolcache-1604.json", "source": "{{template_dir}}/toolcache-1604.json",
"destination": "{{user `installer_script_folder`}}/toolcache.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", "type": "shell",
"scripts":[ "scripts":[
@@ -287,6 +292,19 @@
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "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", "type": "shell",
"scripts":[ "scripts":[
@@ -306,6 +324,12 @@
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
}, },
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
]
},
{ {
"type": "file", "type": "file",
"source": "{{user `metadata_file`}}", "source": "{{user `metadata_file`}}",

View File

@@ -273,6 +273,11 @@
"source": "{{template_dir}}/toolcache-1804.json", "source": "{{template_dir}}/toolcache-1804.json",
"destination": "{{user `installer_script_folder`}}/toolcache.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", "type": "shell",
"scripts":[ "scripts":[
@@ -291,6 +296,19 @@
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "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", "type": "shell",
"scripts":[ "scripts":[
@@ -310,6 +328,12 @@
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
}, },
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
]
},
{ {
"type": "file", "type": "file",
"source": "{{user `metadata_file`}}", "source": "{{user `metadata_file`}}",

View File

@@ -1,10 +1,8 @@
# macOS Catalina 10.15.4 (19E266) # OS X info
The following software is installed on machines with the 20200328.1 update. - System Version: macOS 10.15.4 (19E287)
- Kernel Version: Darwin 19.4.0
#### Xcode 11.3.1 set by default - System Integrity Protection: Enabled
## Operating System - Image Version: 20200425.1
- OS X 10.15.4 (19E287) **Catalina**
# Installed Software # Installed Software
## Language and Runtime ## 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 12: Zulu12.3+11-CA (build 12.0.2+3)
- Java 13: Zulu13.31+11-CA (build 13.0.3+3-MTS) - Java 13: Zulu13.31+11-CA (build 13.0.3+3-MTS)
- Java 14: Zulu14.28+21-CA (build 14.0.1+8) - Java 14: Zulu14.28+21-CA (build 14.0.1+8)
- Rust 1.42.0 - Rust 1.43.0
- Clang/LLVM 10.0.0 - Clang/LLVM 10.0.0
- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 - gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0
- gcc-9 (Homebrew GCC 9.3.0_1) 9.3.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 - GNU Fortran (Homebrew GCC 9.3.0_1) 9.3.0
- Node.js v12.16.2 - Node.js v12.16.2
- NVM 0.33.11 - 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 - PowerShell 7.0.0
- Python 2.7.17 - Python 2.7.17
- Python 3.7.7 - Python 3.7.7
@@ -53,43 +51,43 @@ The following software is installed on machines with the 20200328.1 update.
## Utilities ## Utilities
- Curl 7.69.1 - Curl 7.69.1
- Git: 2.26.1 - Git: 2.26.2
- Git LFS: 2.10.0 - Git LFS: 2.10.0
- Hub CLI: 2.14.2 - Hub CLI: 2.14.2
- GNU Wget 1.20.3 - GNU Wget 1.20.3
- Subversion (SVN) 1.13.0 - Subversion (SVN) 1.13.0
- Packer 1.5.5 - Packer 1.5.5
- GNU parallel 20200322 - GNU parallel 20200422
- OpenSSL 1.0.2t 10 Sep 2019 - OpenSSL 1.0.2t 10 Sep 2019
- jq 1.6 - jq 1.6
- gpg (GnuPG) 2.2.20 - gpg (GnuPG) 2.2.20
- psql (PostgreSQL) 12.2 - psql (PostgreSQL) 12.2
- PostgreSQL 12.2 - PostgreSQL 12.2
- aria2 1.35.0 - aria2 1.35.0
- azcopy 10.4.0 - azcopy 10.4.1
- zstd 1.4.4 - zstd 1.4.4
- bazel 3.0.0 - bazel 3.1.0
- bazelisk v1.4.0 - bazelisk v1.4.0
- helm v3.1.2+gd878d4d - helm v3.2.0+ge11b7ce
- virtualbox 6.1.6r137129 - virtualbox 6.1.6r137129
- Vagrant 2.2.7 - Vagrant 2.2.7
## Tools ## Tools
- Fastlane 2.145.0 - Fastlane 2.146.1
- Cmake 3.17.1 - Cmake 3.17.1
- App Center CLI 2.4.1 - App Center CLI 2.5.0
- Azure CLI 2.3.1 - Azure CLI 2.4.0
- AWS CLI 2.0.8 - AWS CLI 2.0.9
- AWS SAM CLI 0.47.0 - AWS SAM CLI 0.47.0
- Aliyun CLI 3.0.37 - Aliyun CLI 3.0.39
## Browsers ## Browsers
- Safari 13.1 (15609.1.20.111.8) - Safari 13.1 (15609.1.20.111.8)
- SafariDriver 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 - ChromeDriver 81.0.4044.69
- Microsoft Edge 81.0.416.53 - Microsoft Edge 81.0.416.64
- MSEdgeDriver 81.0.416.58 - MSEdgeDriver 81.0.416.64
- Mozilla Firefox 75.0 - Mozilla Firefox 75.0
- geckodriver 0.26.0 - geckodriver 0.26.0
@@ -113,7 +111,7 @@ The following software is installed on machines with the 20200328.1 update.
## Xamarin ## Xamarin
### Visual Studio for Mac ### Visual Studio for Mac
- 8.5.3.16 - 8.5.4.12
### Mono ### Mono
- 6.8.0.123 - 6.8.0.123
@@ -149,14 +147,15 @@ The following software is installed on machines with the 20200328.1 update.
## Xcode ## Xcode
| Version | Build | Path | | 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.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.3 | 11C29 | /Applications/Xcode_11.3.app |
| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app | | 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app |
| 11.2 | 11B52 | /Applications/Xcode_11.2.app | | 11.2 | 11B52 | /Applications/Xcode_11.2.app |
| 11.1 | 11A1027 | /Applications/Xcode_11.1.app | | 11.1 | 11A1027 | /Applications/Xcode_11.1.app |
| 11.0 | 11A420a | /Applications/Xcode_11.app | | 11.0 | 11A420a | /Applications/Xcode_11.app |
| 10.3 | 10G8 | /Applications/Xcode_10.3.app |
### Xcode Support Tools ### Xcode Support Tools
- Nomad CLI 3.1.2 - Nomad CLI 3.1.2
@@ -168,44 +167,54 @@ The following software is installed on machines with the 20200328.1 update.
### Installed SDKs ### Installed SDKs
| SDK | SDK Name | Xcode Version | | 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 | | 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.0 | iphoneos13.0 | 11.0 |
| iOS 13.1 | iphoneos13.1 | 11.1 | | iOS 13.1 | iphoneos13.1 | 11.1 |
| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3, 11.3.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.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.0 | iphonesimulator13.0 | 11.0 |
| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 | | 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.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.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.0 | appletvos13.0 | 11.0, 11.1 |
| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.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 | | 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.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.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.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.0 | watchos6.0 | 11.0, 11.1 |
| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.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 | | 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.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.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.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 | | 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 ### Installed Simulators
| OS | Xcode Version | Simulators | | OS | Xcode Version | Simulators |
| ----------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 13.0 | 11.0 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) | | iOS 12.4 | 10.3 | iPhone 5s<br>iPhone 6 Plus<br>iPhone 6<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone SE<br>iPhone 7<br>iPhone 7 Plus<br>iPhone 8<br>iPhone 8 Plus<br>iPhone X<br>iPhone Xs<br>iPhone Xs Max<br>iPhone Xʀ<br>iPad Air<br>iPad Air 2<br>iPad Pro (9.7-inch)<br>iPad Pro (12.9-inch)<br>iPad (5th generation)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (10.5-inch)<br>iPad (6th generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.1 | 11.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) | | iOS 13.0 | 11.0 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.2 | 11.2<br>11.2.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) | | iOS 13.1 | 11.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.3 | 11.3<br>11.3.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) | | iOS 13.2 | 11.2<br>11.2.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.4 | 11.4<br>11.4.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Air (3rd generation)<br>iPhone SE (2nd generation) | | iOS 13.3 | 11.3<br>11.3.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| tvOS 13.0 | 11.0<br>11.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) | | iOS 13.4 | 11.4<br>11.4.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Air (3rd generation)<br>iPhone SE (2nd generation) |
| tvOS 13.2 | 11.2<br>11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) | | tvOS 12.4 | 10.3 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.3 | 11.3<br>11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) | | tvOS 13.0 | 11.0<br>11.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.4 | 11.4<br>11.4.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) | | tvOS 13.2 | 11.2<br>11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| watchOS 6.0 | 11.0<br>11.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm | | tvOS 13.3 | 11.3<br>11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| watchOS 6.1 | 11.2<br>11.2.1<br>11.3<br>11.3.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm | | tvOS 13.4 | 11.4<br>11.4.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| watchOS 6.2 | 11.4<br>11.4.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm | | watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm<br>Apple Watch Series 2 - 42mm<br>Apple Watch Series 3 - 38mm<br>Apple Watch Series 3 - 42mm<br>Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm |
| watchOS 6.0 | 11.0<br>11.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| watchOS 6.1 | 11.2<br>11.2.1<br>11.3<br>11.3.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| watchOS 6.2 | 11.4<br>11.4.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
## Android ## Android
### Android SDK Tools ### Android SDK Tools
@@ -216,7 +225,7 @@ The following software is installed on machines with the 20200328.1 update.
### Android SDK Platform-Tools ### Android SDK Platform-Tools
| Package Name | Description | | 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 ### Android SDK Platforms
| Package Name | Description | | Package Name | Description |
@@ -262,7 +271,7 @@ The following software is installed on machines with the 20200328.1 update.
| ---------------- | ------------ | | ---------------- | ------------ |
| cmake | 3.6.4111459 | | cmake | 3.6.4111459 |
| lldb | 3.1.4508709 | | lldb | 3.1.4508709 |
| ndk-bundle | 21.0.6113669 | | ndk-bundle | 21.1.6352462 |
| Android Emulator | 30.0.5 | | Android Emulator | 30.0.5 |
### Android Google APIs ### Android Google APIs
@@ -280,3 +289,5 @@ The following software is installed on machines with the 20200328.1 update.
| Google Play services | 49 | | Google Play services | 49 |
| Google Repository | 58 | | Google Repository | 58 |
| Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 | | Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 |

View File

@@ -18,6 +18,7 @@
"run_scan_antivirus": "false", "run_scan_antivirus": "false",
"root_folder": "C:", "root_folder": "C:",
"toolset_json_path": "{{env `TEMP`}}\\toolset.json",
"image_folder": "C:\\image", "image_folder": "C:\\image",
"commit_file": "C:\\image\\commit.txt", "commit_file": "C:\\image\\commit.txt",
"imagedata_file": "C:\\imagedata.json", "imagedata_file": "C:\\imagedata.json",
@@ -318,6 +319,11 @@
"source": "{{template_dir}}/toolcache-2016.json", "source": "{{template_dir}}/toolcache-2016.json",
"destination": "{{user `root_folder`}}/toolcache.json" "destination": "{{user `root_folder`}}/toolcache.json"
}, },
{
"type": "file",
"source": "{{template_dir}}/toolset-2016.json",
"destination": "{{user `toolset_json_path`}}"
},
{ {
"type": "powershell", "type": "powershell",
"environment_vars":[ "environment_vars":[
@@ -328,6 +334,15 @@
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1" "{{ 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", "type": "powershell",
"scripts":[ "scripts":[
@@ -642,6 +657,15 @@
"{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1" "{{ 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", "type": "powershell",
"scripts":[ "scripts":[
@@ -883,6 +907,12 @@
"{{ template_dir }}/scripts/Installers/Validate-Kind.ps1" "{{ template_dir }}/scripts/Installers/Validate-Kind.ps1"
] ]
}, },
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1"
]
},
{ {
"type": "file", "type": "file",
"source": "C:\\InstalledSoftware.md", "source": "C:\\InstalledSoftware.md",

View File

@@ -1,6 +1,6 @@
# Windows Server 2016 # 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. Components marked with **\*** have been upgraded since the previous version of the image.
@@ -25,7 +25,7 @@ _Environment:_
## Helm ## Helm
_Version:_ v3.1.2+gd878d4d<br/> _Version:_ v3.2.0+ge11b7ce<br/>
_Environment:_ _Environment:_
* PATH: contains location of helm * PATH: contains location of helm
@@ -168,8 +168,8 @@ _WDK Visual Studio Extension Version:_ 10.0.17740.0<br/>
_WDK Visual Studio Extension Version:_ 10.0.17740.0<br/> _WDK Visual Studio Extension Version:_ 10.0.17740.0<br/>
## Azure Service Fabric ## Azure Service Fabric
_SDK Version:_ 4.0.470.9590<br/> _SDK Version:_ 4.1.409.9590<br/>
_Runtime Version:_ 7.1.409.9590 _Runtime Version:_ 7.1.409.9590
## WinAppDriver ## WinAppDriver
@@ -177,7 +177,7 @@ _Version:_ 1.1.1809.18001<br/>
_Version:_ 1.1.1809.18001<br/> _Version:_ 1.1.1809.18001<br/>
## AWS CLI ## AWS CLI
_Version:_ aws-cli 2.0.9<br/> _Version:_ aws-cli 2.0.9<br/>
## Android SDK Build Tools ## Android SDK Build Tools
@@ -428,10 +428,14 @@ _Description:_ .NET has been configured to use TLS 1.2 by default
_Description:_ .NET has been configured to use TLS 1.2 by default _Description:_ .NET has been configured to use TLS 1.2 by default
## Azure CLI ## Azure CLI
_Version:_ 2.4.0 _Version:_ 2.4.0
_Environment:_ _Environment:_
* PATH: contains location of az.cmd * PATH: contains location of az.cmd
## AWS SAM CLI
_Version:_ 0.47.0<br/>
## Azure DevOps Cli extension ## Azure DevOps Cli extension
@@ -446,7 +450,7 @@ _Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/>
_Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/> _Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/>
## Ruby ## Ruby
_Version:_ 2.4.10 (x64)<br/>_Version:_ 2.5.8 (x64)<br/>_Version:_ 2.6.6 (x64)<br/>_Version:_ 2.7.1 (x64)<br/><br/>__System default version:__ Ruby 2.5.8p224<br/>_Environment:_<br/>* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin<br/>* PATH: contains the location of Ruby 2.5.8p224<br/>* Gem Version: 3.1.2<br/> _Version:_ 2.4.10 (x64)<br/>_Version:_ 2.5.8 (x64)<br/>_Version:_ 2.6.6 (x64)<br/>_Version:_ 2.7.1 (x64)<br/><br/>__System default version:__ Ruby 2.5.8p224<br/>_Environment:_<br/>* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin<br/>* PATH: contains the location of Ruby 2.5.8p224<br/>* Gem Version: 3.1.2<br/>
## OpenSSL ## OpenSSL
@@ -458,7 +462,7 @@ _Version:_ v5.30.2<br/>
_Version:_ v5.30.2<br/> _Version:_ v5.30.2<br/>
## Git ## Git
_Version:_ 2.26.2<br/> _Version:_ 2.26.2<br/>
_Environment:_ _Environment:_
* PATH: contains location of git.exe * PATH: contains location of git.exe
@@ -522,14 +526,14 @@ _Environment:_
* PHPROOT: root directory of the PHP 7.4.5 installation * PHPROOT: root directory of the PHP 7.4.5 installation
## Rust (64-bit) ## Rust (64-bit)
#### 1.43.0 #### 1.43.0
_Location:_ C:\Rust\.cargo\bin _Location:_ C:\Rust\.cargo\bin
_Environment:_ _Environment:_
* PATH: contains the location of rustc.exe * PATH: contains the location of rustc.exe
## Julia (x64) ## Julia (x64)
_Version:_ 1.4.1<br/> _Version:_ 1.4.1<br/>
## sbt ## sbt
@@ -544,12 +548,12 @@ _Environment:_
## Google Chrome ## Google Chrome
_version:_ _version:_
81.0.4044.122 81.0.4044.122
## Microsoft Edge ## Microsoft Edge
_version:_ _version:_
81.0.416.64 81.0.416.64
## Mozilla Firefox ## Mozilla Firefox
@@ -586,7 +590,7 @@ _Environment:_
#### Microsoft Edge Driver #### Microsoft Edge Driver
_version:_ _version:_
81.0.416.64 81.0.416.64
_Environment:_ _Environment:_
@@ -611,11 +615,11 @@ _Environment:_
* PATH: contains location of npm.cmd * PATH: contains location of npm.cmd
## bazel ## bazel
_Version:_ bazel 3.1.0<br/> _Version:_ bazel 3.1.0<br/>
## bazelisk ## bazelisk
_Version:_ 1.4.0<br/> _Version:_ 1.4.0<br/>
## Alibaba Cloud CLI ## Alibaba Cloud CLI
@@ -678,7 +682,9 @@ _Environment:_
* PATH: contains location of dotnet.exe * PATH: contains location of dotnet.exe
_SDK:_ _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.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.102 C:\Program Files\dotnet\sdk\3.1.102
* 3.1.101 C:\Program Files\dotnet\sdk\3.1.101 * 3.1.101 C:\Program Files\dotnet\sdk\3.1.101
* 3.1.100 C:\Program Files\dotnet\sdk\3.1.100 * 3.1.100 C:\Program Files\dotnet\sdk\3.1.100
@@ -742,6 +748,7 @@ _SDK:_
* 1.1.14 C:\Program Files\dotnet\sdk\1.1.14 * 1.1.14 C:\Program Files\dotnet\sdk\1.1.14
_Runtime:_ _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.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.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 * 3.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.0
@@ -855,7 +862,7 @@ _Environment:_
* VCPKG_INSTALLATION_ROOT: root directory of the vcpkg installation * VCPKG_INSTALLATION_ROOT: root directory of the vcpkg installation
## Kubectl ## Kubectl
_Version:_ Client Version: v1.18.2<br/> _Version:_ Client Version: v1.18.2<br/>
_Environment:_ _Environment:_
* PATH: contains location of kubectl.exe * PATH: contains location of kubectl.exe

View File

@@ -18,6 +18,7 @@
"run_scan_antivirus": "false", "run_scan_antivirus": "false",
"root_folder": "C:", "root_folder": "C:",
"toolset_json_path": "{{env `TEMP`}}\\toolset.json",
"image_folder": "C:\\image", "image_folder": "C:\\image",
"commit_file": "C:\\image\\commit.txt", "commit_file": "C:\\image\\commit.txt",
"imagedata_file": "C:\\imagedata.json", "imagedata_file": "C:\\imagedata.json",
@@ -291,6 +292,11 @@
"source": "{{template_dir}}/toolcache-2019.json", "source": "{{template_dir}}/toolcache-2019.json",
"destination": "{{user `root_folder`}}/toolcache.json" "destination": "{{user `root_folder`}}/toolcache.json"
}, },
{
"type": "file",
"source": "{{template_dir}}/toolset-2019.json",
"destination": "{{user `toolset_json_path`}}"
},
{ {
"type": "powershell", "type": "powershell",
"environment_vars":[ "environment_vars":[
@@ -301,6 +307,15 @@
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1" "{{ 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", "type": "powershell",
"scripts":[ "scripts":[
@@ -639,6 +654,15 @@
"{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1" "{{ 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", "type": "powershell",
"scripts":[ "scripts":[
@@ -886,6 +910,12 @@
"{{ template_dir }}/scripts/Installers/Validate-AliyunCli.ps1" "{{ template_dir }}/scripts/Installers/Validate-AliyunCli.ps1"
] ]
}, },
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1"
]
},
{ {
"type": "file", "type": "file",
"source": "C:\\InstalledSoftware.md", "source": "C:\\InstalledSoftware.md",

View File

@@ -1,6 +1,6 @@
# Windows Server 2019 # 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. Components marked with **\*** have been upgraded since the previous version of the image.
@@ -25,7 +25,7 @@ _Environment:_
## Helm ## Helm
_Version:_ v3.1.2+gd878d4d<br/> _Version:_ v3.2.0+ge11b7ce<br/>
_Environment:_ _Environment:_
* PATH: contains location of helm * PATH: contains location of helm
@@ -145,8 +145,8 @@ _Environment:_
* WIX: Installation root of WIX * WIX: Installation root of WIX
## Microsoft SSDT Visual Studio 2019 Extensions ## Microsoft SSDT Visual Studio 2019 Extensions
_Microsoft Analysis Services Projects Version:_ 2.9.7<br/> _Microsoft Analysis Services Projects Version:_ 2.9.8<br/>
_SQL Server Integration Services Projects Version:_ 3.6<br/> _SQL Server Integration Services Projects Version:_ 3.6<br/>
_Microsoft Reporting Services Projects Version:_ 2.6.5<br/> _Microsoft Reporting Services Projects Version:_ 2.6.5<br/>
@@ -161,8 +161,8 @@ _WDK Visual Studio Extension Version:_ 10.0.18346.0<br/>
_WDK Visual Studio Extension Version:_ 10.0.18346.0<br/> _WDK Visual Studio Extension Version:_ 10.0.18346.0<br/>
## Azure Service Fabric ## Azure Service Fabric
_SDK Version:_ 4.0.470.9590<br/> _SDK Version:_ 4.1.409.9590<br/>
_Runtime Version:_ 7.1.409.9590 _Runtime Version:_ 7.1.409.9590
## WinAppDriver ## WinAppDriver
@@ -170,7 +170,7 @@ _Version:_ 1.1.1809.18001<br/>
_Version:_ 1.1.1809.18001<br/> _Version:_ 1.1.1809.18001<br/>
## AWS CLI ## AWS CLI
_Version:_ aws-cli 2.0.9<br/> _Version:_ aws-cli 2.0.9<br/>
## Android SDK Build Tools ## Android SDK Build Tools
@@ -421,10 +421,14 @@ _Description:_ .NET has been configured to use TLS 1.2 by default
_Description:_ .NET has been configured to use TLS 1.2 by default _Description:_ .NET has been configured to use TLS 1.2 by default
## Azure CLI ## Azure CLI
_Version:_ 2.4.0 _Version:_ 2.4.0
_Environment:_ _Environment:_
* PATH: contains location of az.cmd * PATH: contains location of az.cmd
## AWS SAM CLI
_Version:_ 0.47.0<br/>
## Azure DevOps Cli extension ## Azure DevOps Cli extension
@@ -439,7 +443,7 @@ _Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/>
_Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/> _Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/>
## Ruby ## Ruby
_Version:_ 2.4.10 (x64)<br/>_Version:_ 2.5.8 (x64)<br/>_Version:_ 2.6.6 (x64)<br/>_Version:_ 2.7.1 (x64)<br/><br/>__System default version:__ Ruby 2.5.8p224<br/>_Environment:_<br/>* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin<br/>* PATH: contains the location of Ruby 2.5.8p224<br/>* Gem Version: 3.1.2<br/> _Version:_ 2.4.10 (x64)<br/>_Version:_ 2.5.8 (x64)<br/>_Version:_ 2.6.6 (x64)<br/>_Version:_ 2.7.1 (x64)<br/><br/>__System default version:__ Ruby 2.5.8p224<br/>_Environment:_<br/>* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin<br/>* PATH: contains the location of Ruby 2.5.8p224<br/>* Gem Version: 3.1.2<br/>
## OpenSSL ## OpenSSL
@@ -451,7 +455,7 @@ _Version:_ v5.30.2<br/>
_Version:_ v5.30.2<br/> _Version:_ v5.30.2<br/>
## Git ## Git
_Version:_ 2.26.2<br/> _Version:_ 2.26.2<br/>
_Environment:_ _Environment:_
* PATH: contains location of git.exe * PATH: contains location of git.exe
@@ -515,14 +519,14 @@ _Environment:_
* PHPROOT: root directory of the PHP 7.4.5 installation * PHPROOT: root directory of the PHP 7.4.5 installation
## Rust (64-bit) ## Rust (64-bit)
#### 1.43.0 #### 1.43.0
_Location:_ C:\Rust\.cargo\bin _Location:_ C:\Rust\.cargo\bin
_Environment:_ _Environment:_
* PATH: contains the location of rustc.exe * PATH: contains the location of rustc.exe
## Julia (x64) ## Julia (x64)
_Version:_ 1.4.1<br/> _Version:_ 1.4.1<br/>
## Subversion ## Subversion
@@ -537,12 +541,12 @@ _Environment:_
## Google Chrome ## Google Chrome
_version:_ _version:_
81.0.4044.122 81.0.4044.122
## Microsoft Edge ## Microsoft Edge
_version:_ _version:_
81.0.416.64 81.0.416.64
## Mozilla Firefox ## Mozilla Firefox
@@ -579,7 +583,7 @@ _Environment:_
#### Microsoft Edge Driver #### Microsoft Edge Driver
_version:_ _version:_
81.0.416.64 81.0.416.64
_Environment:_ _Environment:_
@@ -659,7 +663,9 @@ _Environment:_
* PATH: contains location of dotnet.exe * PATH: contains location of dotnet.exe
_SDK:_ _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.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.102 C:\Program Files\dotnet\sdk\3.1.102
* 3.1.101 C:\Program Files\dotnet\sdk\3.1.101 * 3.1.101 C:\Program Files\dotnet\sdk\3.1.101
* 3.1.100 C:\Program Files\dotnet\sdk\3.1.100 * 3.1.100 C:\Program Files\dotnet\sdk\3.1.100
@@ -721,6 +727,7 @@ _SDK:_
* 2.1.300 C:\Program Files\dotnet\sdk\2.1.300 * 2.1.300 C:\Program Files\dotnet\sdk\2.1.300
_Runtime:_ _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.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.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 * 3.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.0
@@ -836,7 +843,7 @@ _Version_: 2.8.4+ff0de50053 - shim 0.8.1<br/>
* PATH: contains location of vswhere.exe * PATH: contains location of vswhere.exe
## Kubectl ## Kubectl
_Version:_ Client Version: v1.18.2<br/> _Version:_ Client Version: v1.18.2<br/>
_Environment:_ _Environment:_
* PATH: contains location of kubectl.exe * PATH: contains location of kubectl.exe
@@ -848,11 +855,11 @@ _Environment:_
* PATH: contains location of kind.exe * PATH: contains location of kind.exe
## bazel ## bazel
_Version:_ bazel 3.1.0<br/> _Version:_ bazel 3.1.0<br/>
## bazelisk ## bazelisk
_Version:_ 1.4.0<br/> _Version:_ 1.4.0<br/>
## Alibaba Cloud CLI ## Alibaba Cloud CLI

View File

@@ -15,6 +15,7 @@ Export-ModuleMember -Function @(
'Set-SystemVariable' 'Set-SystemVariable'
'Install-Binary' 'Install-Binary'
'Get-ToolcachePackages' 'Get-ToolcachePackages'
'Get-ToolsetContent'
'Get-ToolsByName' 'Get-ToolsByName'
'Add-ContentToMarkdown' 'Add-ContentToMarkdown'
'Add-SoftwareDetailsToMarkdown' 'Add-SoftwareDetailsToMarkdown'

View File

@@ -283,6 +283,11 @@ function Get-ToolcachePackages {
Get-Content -Raw $toolcachePath | ConvertFrom-Json 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 { function Get-ToolsByName {
param ( param (
[Parameter(Mandatory = $True)] [Parameter(Mandatory = $True)]

View File

@@ -44,21 +44,6 @@ Function NPMFeed-AuthSetup {
$npmrcContent | Out-File -FilePath "$($env:TEMP)/.npmrc" -Encoding utf8 $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 { Function Set-DefaultRubyVersion {
param( param(
[Parameter(Mandatory=$true)] [Parameter(Mandatory=$true)]
@@ -106,5 +91,4 @@ $ToolVersions.PSObject.Properties | ForEach-Object {
} }
} }
Set-DefaultPythonVersion -Version "3.7"
Set-DefaultRubyVersion -Version "2.5" Set-DefaultRubyVersion -Version "2.5"

View File

@@ -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' $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' $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' $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 cd $env:TEMP
Invoke-WebRequest -UseBasicParsing -Uri $azulJDK7Uri -OutFile azulJDK7.zip Invoke-WebRequest -UseBasicParsing -Uri $azulJDK7Uri -OutFile azulJDK7.zip
Invoke-WebRequest -UseBasicParsing -Uri $azulJDK8Uri -OutFile azulJDK8.zip Invoke-WebRequest -UseBasicParsing -Uri $azulJDK8Uri -OutFile azulJDK8.zip
Invoke-WebRequest -UseBasicParsing -Uri $azulJDK11Uri -OutFile azulJDK11.zip Invoke-WebRequest -UseBasicParsing -Uri $azulJDK11Uri -OutFile azulJDK11.zip
Invoke-WebRequest -UseBasicParsing -Uri $azulJDK13Uri -OutFile azulJDK13.zip
# Expand the zips # Expand the zips
Expand-Archive -Path azulJDK7.zip -DestinationPath "C:\Program Files\Java\" -Force 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 azulJDK8.zip -DestinationPath "C:\Program Files\Java\" -Force
Expand-Archive -Path azulJDK11.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 # Deleting zip folders
Remove-Item -Recurse -Force azulJDK7.zip Remove-Item -Recurse -Force azulJDK7.zip
Remove-Item -Recurse -Force azulJDK8.zip Remove-Item -Recurse -Force azulJDK8.zip
Remove-Item -Recurse -Force azulJDK11.zip Remove-Item -Recurse -Force azulJDK11.zip
Remove-Item -Recurse -Force azulJDK13.zip
Import-Module -Name ImageHelpers -Force 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 $java11Installs = Get-ChildItem -Path 'C:\Program Files\Java' -Filter '*azure-jdk*11*' | Sort-Object -Property Name -Descending | Select-Object -First 1
$latestJava11Install = $java11Installs.FullName; $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 = [string]::Join(';', $newPathSegments)
$newPath = $latestJava8Install + '\bin;' + $newPath $newPath = $latestJava8Install + '\bin;' + $newPath
@@ -58,6 +65,7 @@ setx JAVA_HOME $latestJava8Install /M
setx JAVA_HOME_7_X64 $latestJava7Install /M setx JAVA_HOME_7_X64 $latestJava7Install /M
setx JAVA_HOME_8_X64 $latestJava8Install /M setx JAVA_HOME_8_X64 $latestJava8Install /M
setx JAVA_HOME_11_X64 $latestJava11Install /M setx JAVA_HOME_11_X64 $latestJava11Install /M
setx JAVA_HOME_13_X64 $latestJava13Install /M
# Install Java tools # Install Java tools
# Force chocolatey to ignore dependencies on Ant and Maven or else they will download the Oracle JDK # Force chocolatey to ignore dependencies on Ant and Maven or else they will download the Oracle JDK

View File

@@ -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

View File

@@ -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
}

View File

@@ -36,6 +36,12 @@ if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<v
$java11Version = $Matches.version $java11Version = $Matches.version
} }
$env:Path = $env:JAVA_HOME_13_X64 + "\bin;" + $env:Path
if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*' )
{
$java13Version = $Matches.version
}
if( $(ant -version) -match 'Apache Ant\(TM\) version (?<version>.*) compiled.*' ) if( $(ant -version) -match 'Apache Ant\(TM\) version (?<version>.*) compiled.*' )
{ {
@@ -69,6 +75,10 @@ _Location:_ $env:JAVA_HOME_7_X64
#### $java11Version #### $java11Version
_Location:_ $env:JAVA_HOME_11_X64 _Location:_ $env:JAVA_HOME_11_X64
#### $java13Version
_Location:_ $env:JAVA_HOME_13_X64
"@ "@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description

View File

@@ -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 { function Get-SystemDefaultRuby {
Write-Host "Validate system Ruby..." Write-Host "Validate system Ruby..."
@@ -196,9 +170,6 @@ function ToolcacheTest {
} }
} }
if ($SoftwareName -contains "Python") {
$markdownDescription += Get-SystemDefaultPython
}
if ($SoftwareName -contains "Ruby") { if ($SoftwareName -contains "Ruby") {
$markdownDescription += Get-SystemDefaultRuby $markdownDescription += Get-SystemDefaultRuby
} }
@@ -206,10 +177,6 @@ function ToolcacheTest {
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $markdownDescription Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $markdownDescription
} }
# Python test
$PythonTests = @("python.exe", "Scripts\pip.exe")
ToolcacheTest -SoftwareName "Python" -ExecTests $PythonTests
# PyPy test # PyPy test
$PyPyTests = @("python.exe", "bin\pip.exe") $PyPyTests = @("python.exe", "bin\pip.exe")
ToolcacheTest -SoftwareName "PyPy" -ExecTests $PyPyTests ToolcacheTest -SoftwareName "PyPy" -ExecTests $PyPyTests

View File

@@ -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 = "<br/>__System default version:__ $versionOnPath<br/>"
$description += "_Environment:_<br/>"
$description += "* Location: $versionBinPath<br/>"
$description += "* PATH: contains the location of $versionOnPath<br/>"
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)<br/>"
}
# 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
}

View File

@@ -61,6 +61,15 @@ Install-WindowsFeature -Name NET-Framework-45-Features -IncludeAllSubFeature
Install-WindowsFeature -Name BITS -IncludeAllSubFeature Install-WindowsFeature -Name BITS -IncludeAllSubFeature
Install-WindowsFeature -Name DSC-Service 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" Write-Host "Disable UAC"
Disable-UserAccessControl Disable-UserAccessControl
@@ -135,6 +144,7 @@ wmic logicaldisk get size,freespace,caption
# Adding description of the software to Markdown # Adding description of the software to Markdown
$Content = @" $Content = @"
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
# Windows Server 2016 # Windows Server 2016
The following software is installed on machines with the $env:ImageVersion update. The following software is installed on machines with the $env:ImageVersion update.

View File

@@ -57,6 +57,14 @@ Install-WindowsFeature -Name NET-Framework-Features -IncludeAllSubFeature
# Explicitly install all 4.7 sub features to include ASP.Net. # 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 # 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-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" Write-Host "Disable UAC"
Disable-UserAccessControl Disable-UserAccessControl
@@ -129,6 +137,7 @@ wmic logicaldisk get size,freespace,caption
# Adding description of the software to Markdown # Adding description of the software to Markdown
$Content = @" $Content = @"
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
# Windows Server 2019 # Windows Server 2019
The following software is installed on machines with the $env:ImageVersion update. The following software is installed on machines with the $env:ImageVersion update.

View File

@@ -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": [ "@actions/toolcache-ruby-windows-x64": [
"2.4", "2.5", "2.6", "2.7" "2.4", "2.5", "2.6", "2.7"
], ],

View File

@@ -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": [ "@actions/toolcache-ruby-windows-x64": [
"2.4", "2.5", "2.6", "2.7" "2.4", "2.5", "2.6", "2.7"
], ],

View File

@@ -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.*"
]
}
]
}

View File

@@ -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.*"
]
}
]
}