mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-27 03:47:24 +08:00
Merge branch 'master' into v-danurg/revert_systemd_workaround_fix
This commit is contained in:
@@ -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*
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
WriteItem "<!--- DO NOT EDIT - This markdown file is autogenerated. -->"
|
||||
AddTitle "$(lsb_release -ds)"
|
||||
WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
|
||||
WriteItem "***"
|
||||
|
||||
@@ -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:"
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
WriteItem "<!--- DO NOT EDIT - This markdown file is autogenerated. -->"
|
||||
AddTitle "$(lsb_release -ds)"
|
||||
WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
|
||||
WriteItem "***"
|
||||
WriteItem "***"
|
||||
55
images/linux/scripts/installers/Install-Toolset.ps1
Normal file
55
images/linux/scripts/installers/Install-Toolset.ps1
Normal 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
|
||||
62
images/linux/scripts/installers/Validate-Toolset.ps1
Normal file
62
images/linux/scripts/installers/Validate-Toolset.ps1
Normal 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)'`""
|
||||
}
|
||||
}
|
||||
@@ -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 \
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
14
images/linux/scripts/installers/validate-disk-space.sh
Normal file
14
images/linux/scripts/installers/validate-disk-space.sh
Normal 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
|
||||
@@ -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"
|
||||
],
|
||||
|
||||
@@ -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"
|
||||
],
|
||||
|
||||
18
images/linux/toolset-1604.json
Normal file
18
images/linux/toolset-1604.json
Normal 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.*"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
18
images/linux/toolset-1804.json
Normal file
18
images/linux/toolset-1804.json
Normal 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.*"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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":[
|
||||
@@ -306,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`}}",
|
||||
|
||||
@@ -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":[
|
||||
@@ -310,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`}}",
|
||||
|
||||
@@ -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<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.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.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.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.0 | 11.0<br>11.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) |
|
||||
| tvOS 13.3 | 11.3<br>11.3.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) |
|
||||
| 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 |
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 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.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.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.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.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) |
|
||||
| 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 12.4 | 10.3 | 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.2 | 11.2<br>11.2.1 | 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.4 | 11.4<br>11.4.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| 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 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 |
|
||||
|
||||
|
||||
|
||||
@@ -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":[
|
||||
@@ -883,6 +907,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Kind.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "C:\\InstalledSoftware.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<br/>
|
||||
_Version:_ v3.2.0+ge11b7ce<br/>
|
||||
_Environment:_
|
||||
* 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/>
|
||||
|
||||
## Azure Service Fabric
|
||||
|
||||
_SDK Version:_ 4.0.470.9590<br/>
|
||||
|
||||
_SDK Version:_ 4.1.409.9590<br/>
|
||||
_Runtime Version:_ 7.1.409.9590
|
||||
|
||||
## WinAppDriver
|
||||
@@ -177,7 +177,7 @@ _Version:_ 1.1.1809.18001<br/>
|
||||
_Version:_ 1.1.1809.18001<br/>
|
||||
|
||||
## AWS CLI
|
||||
|
||||
|
||||
_Version:_ aws-cli 2.0.9<br/>
|
||||
|
||||
## 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
|
||||
|
||||
## Azure CLI
|
||||
|
||||
|
||||
_Version:_ 2.4.0
|
||||
_Environment:_
|
||||
* PATH: contains location of az.cmd
|
||||
|
||||
## AWS SAM CLI
|
||||
|
||||
_Version:_ 0.47.0<br/>
|
||||
|
||||
## 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/>
|
||||
|
||||
## 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/>
|
||||
|
||||
## OpenSSL
|
||||
@@ -458,7 +462,7 @@ _Version:_ v5.30.2<br/>
|
||||
_Version:_ v5.30.2<br/>
|
||||
|
||||
## Git
|
||||
|
||||
|
||||
_Version:_ 2.26.2<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of git.exe
|
||||
@@ -522,14 +526,14 @@ _Environment:_
|
||||
* PHPROOT: root directory of the PHP 7.4.5 installation
|
||||
|
||||
## Rust (64-bit)
|
||||
|
||||
|
||||
#### 1.43.0
|
||||
_Location:_ C:\Rust\.cargo\bin
|
||||
_Environment:_
|
||||
* PATH: contains the location of rustc.exe
|
||||
|
||||
## Julia (x64)
|
||||
|
||||
|
||||
_Version:_ 1.4.1<br/>
|
||||
|
||||
## sbt
|
||||
@@ -544,12 +548,12 @@ _Environment:_
|
||||
|
||||
## Google Chrome
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.4044.122
|
||||
|
||||
## Microsoft Edge
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.64
|
||||
|
||||
## Mozilla Firefox
|
||||
@@ -586,7 +590,7 @@ _Environment:_
|
||||
|
||||
#### Microsoft Edge Driver
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.64
|
||||
|
||||
_Environment:_
|
||||
@@ -611,11 +615,11 @@ _Environment:_
|
||||
* PATH: contains location of npm.cmd
|
||||
|
||||
## bazel
|
||||
|
||||
|
||||
_Version:_ bazel 3.1.0<br/>
|
||||
|
||||
## bazelisk
|
||||
|
||||
|
||||
_Version:_ 1.4.0<br/>
|
||||
|
||||
## Alibaba Cloud CLI
|
||||
@@ -678,7 +682,9 @@ _Environment:_
|
||||
* PATH: contains location of dotnet.exe
|
||||
|
||||
_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
|
||||
@@ -742,6 +748,7 @@ _SDK:_
|
||||
* 1.1.14 C:\Program Files\dotnet\sdk\1.1.14
|
||||
|
||||
_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
|
||||
@@ -855,7 +862,7 @@ _Environment:_
|
||||
* VCPKG_INSTALLATION_ROOT: root directory of the vcpkg installation
|
||||
|
||||
## Kubectl
|
||||
|
||||
|
||||
_Version:_ Client Version: v1.18.2<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of kubectl.exe
|
||||
|
||||
@@ -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":[
|
||||
@@ -886,6 +910,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-AliyunCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "C:\\InstalledSoftware.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<br/>
|
||||
_Version:_ v3.2.0+ge11b7ce<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of helm
|
||||
|
||||
@@ -145,8 +145,8 @@ _Environment:_
|
||||
* WIX: Installation root of WIX
|
||||
|
||||
## 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/>
|
||||
_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/>
|
||||
|
||||
## Azure Service Fabric
|
||||
|
||||
_SDK Version:_ 4.0.470.9590<br/>
|
||||
|
||||
_SDK Version:_ 4.1.409.9590<br/>
|
||||
_Runtime Version:_ 7.1.409.9590
|
||||
|
||||
## WinAppDriver
|
||||
@@ -170,7 +170,7 @@ _Version:_ 1.1.1809.18001<br/>
|
||||
_Version:_ 1.1.1809.18001<br/>
|
||||
|
||||
## AWS CLI
|
||||
|
||||
|
||||
_Version:_ aws-cli 2.0.9<br/>
|
||||
|
||||
## 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
|
||||
|
||||
## Azure CLI
|
||||
|
||||
|
||||
_Version:_ 2.4.0
|
||||
_Environment:_
|
||||
* PATH: contains location of az.cmd
|
||||
|
||||
## AWS SAM CLI
|
||||
|
||||
_Version:_ 0.47.0<br/>
|
||||
|
||||
## 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/>
|
||||
|
||||
## 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/>
|
||||
|
||||
## OpenSSL
|
||||
@@ -451,7 +455,7 @@ _Version:_ v5.30.2<br/>
|
||||
_Version:_ v5.30.2<br/>
|
||||
|
||||
## Git
|
||||
|
||||
|
||||
_Version:_ 2.26.2<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of git.exe
|
||||
@@ -515,14 +519,14 @@ _Environment:_
|
||||
* PHPROOT: root directory of the PHP 7.4.5 installation
|
||||
|
||||
## Rust (64-bit)
|
||||
|
||||
|
||||
#### 1.43.0
|
||||
_Location:_ C:\Rust\.cargo\bin
|
||||
_Environment:_
|
||||
* PATH: contains the location of rustc.exe
|
||||
|
||||
## Julia (x64)
|
||||
|
||||
|
||||
_Version:_ 1.4.1<br/>
|
||||
|
||||
## Subversion
|
||||
@@ -537,12 +541,12 @@ _Environment:_
|
||||
|
||||
## Google Chrome
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.4044.122
|
||||
|
||||
## Microsoft Edge
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.64
|
||||
|
||||
## Mozilla Firefox
|
||||
@@ -579,7 +583,7 @@ _Environment:_
|
||||
|
||||
#### Microsoft Edge Driver
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.64
|
||||
|
||||
_Environment:_
|
||||
@@ -659,7 +663,9 @@ _Environment:_
|
||||
* PATH: contains location of dotnet.exe
|
||||
|
||||
_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
|
||||
@@ -721,6 +727,7 @@ _SDK:_
|
||||
* 2.1.300 C:\Program Files\dotnet\sdk\2.1.300
|
||||
|
||||
_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
|
||||
@@ -836,7 +843,7 @@ _Version_: 2.8.4+ff0de50053 - shim 0.8.1<br/>
|
||||
* PATH: contains location of vswhere.exe
|
||||
|
||||
## Kubectl
|
||||
|
||||
|
||||
_Version:_ Client Version: v1.18.2<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of kubectl.exe
|
||||
@@ -848,11 +855,11 @@ _Environment:_
|
||||
* PATH: contains location of kind.exe
|
||||
|
||||
## bazel
|
||||
|
||||
|
||||
_Version:_ bazel 3.1.0<br/>
|
||||
|
||||
## bazelisk
|
||||
|
||||
|
||||
_Version:_ 1.4.0<br/>
|
||||
|
||||
## Alibaba Cloud CLI
|
||||
|
||||
@@ -15,6 +15,7 @@ Export-ModuleMember -Function @(
|
||||
'Set-SystemVariable'
|
||||
'Install-Binary'
|
||||
'Get-ToolcachePackages'
|
||||
'Get-ToolsetContent'
|
||||
'Get-ToolsByName'
|
||||
'Add-ContentToMarkdown'
|
||||
'Add-SoftwareDetailsToMarkdown'
|
||||
|
||||
@@ -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)]
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
|
||||
76
images/win/scripts/Installers/Install-Toolset.ps1
Normal file
76
images/win/scripts/Installers/Install-Toolset.ps1
Normal 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
|
||||
14
images/win/scripts/Installers/Validate-DiskSpace.ps1
Normal file
14
images/win/scripts/Installers/Validate-DiskSpace.ps1
Normal 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
|
||||
}
|
||||
@@ -36,6 +36,12 @@ if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<v
|
||||
$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.*' )
|
||||
{
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
111
images/win/scripts/Installers/Validate-Toolset.ps1
Normal file
111
images/win/scripts/Installers/Validate-Toolset.ps1
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -135,6 +144,7 @@ wmic logicaldisk get size,freespace,caption
|
||||
# Adding description of the software to Markdown
|
||||
|
||||
$Content = @"
|
||||
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
||||
# Windows Server 2016
|
||||
|
||||
The following software is installed on machines with the $env:ImageVersion update.
|
||||
|
||||
@@ -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
|
||||
@@ -129,6 +137,7 @@ wmic logicaldisk get size,freespace,caption
|
||||
# Adding description of the software to Markdown
|
||||
|
||||
$Content = @"
|
||||
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
||||
# Windows Server 2019
|
||||
|
||||
The following software is installed on machines with the $env:ImageVersion update.
|
||||
|
||||
@@ -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"
|
||||
],
|
||||
|
||||
@@ -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"
|
||||
],
|
||||
|
||||
31
images/win/toolset-2016.json
Normal file
31
images/win/toolset-2016.json
Normal 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.*"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
31
images/win/toolset-2019.json
Normal file
31
images/win/toolset-2019.json
Normal 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.*"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user