This commit is contained in:
Drew Skwiers-Koballa
2020-10-05 08:08:28 -07:00
41 changed files with 408 additions and 234 deletions

25
.github/workflows/linter.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
# CI Validation
name: CI
on:
pull_request:
branches: [$default-branch]
jobs:
build:
name: Lint JSON & MD files
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Lint Code Base
uses: github/super-linter@v3
env:
VALIDATE_ALL_CODEBASE: false
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VALIDATE_JSON: true
VALIDATE_MD: true
DEFAULT_BRANCH: ${{ github.base_ref }}

View File

@@ -167,7 +167,9 @@ Function GenerateResourcesAndImage {
New-AzStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS" New-AzStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS"
$spDisplayName = [System.GUID]::NewGuid().ToString().ToUpper() $spDisplayName = [System.GUID]::NewGuid().ToString().ToUpper()
$sp = New-AzADServicePrincipal -DisplayName $spDisplayName -Password (ConvertTo-SecureString $ServicePrincipalClientSecret -AsPlainText -Force) $credentialProperties = @{ StartDate=Get-Date; EndDate=Get-Date -Year 2024; Password=$ServicePrincipalClientSecret }
$credentials = New-Object -TypeName Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential -Property $credentialProperties
$sp = New-AzADServicePrincipal -DisplayName $spDisplayName -PasswordCredential $credentials
$spAppId = $sp.ApplicationId $spAppId = $sp.ApplicationId
$spClientId = $sp.ApplicationId $spClientId = $sp.ApplicationId

View File

@@ -6,9 +6,8 @@ function Get-OSName {
function Get-CPPVersions { function Get-CPPVersions {
$cppVersions = apt list --installed 2>&1 | Where-Object { $_ -match "g\+\+-\d+"} | ForEach-Object { $cppVersions = apt list --installed 2>&1 | Where-Object { $_ -match "g\+\+-\d+"} | ForEach-Object {
$_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null & $_.Split("/")[0] --version | Select-Object -First 1 | Take-OutputPart -Part 3
$Matches.version } | Sort-Object {[Version]$_}
}
return "GNU C++ " + ($cppVersions -Join ", ") return "GNU C++ " + ($cppVersions -Join ", ")
} }
@@ -16,7 +15,7 @@ function Get-FortranVersions {
$fortranVersions = apt list --installed 2>&1 | Where-Object { $_ -match "^gfortran-\d+"} | ForEach-Object { $fortranVersions = apt list --installed 2>&1 | Where-Object { $_ -match "^gfortran-\d+"} | ForEach-Object {
$_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null $_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null
$Matches.version $Matches.version
} } | Sort-Object {[Version]$_}
return "GNU Fortran " + ($fortranVersions -Join ", ") return "GNU Fortran " + ($fortranVersions -Join ", ")
} }
@@ -28,7 +27,7 @@ function Get-ClangVersions {
$_ -match "clang version (?<version>\d+\.\d+\.\d+)-" | Out-Null $_ -match "clang version (?<version>\d+\.\d+\.\d+)-" | Out-Null
$Matches.version $Matches.version
} }
} } | Sort-Object {[Version]$_}
return "Clang " + ($clangVersions -Join ", ") return "Clang " + ($clangVersions -Join ", ")
} }

View File

@@ -29,7 +29,7 @@ function Get-BazeliskVersion {
} }
function Get-CodeQLBundleVersion { function Get-CodeQLBundleVersion {
$CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "codeql" | Join-Path -ChildPath "*" $CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
$CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName $CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName
$CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql" $CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql"
$CodeQLVersion = & $CodeQLPath version --quiet $CodeQLVersion = & $CodeQLPath version --quiet

View File

@@ -12,7 +12,7 @@ function InstallClang {
local version=$1 local version=$1
echo "Installing clang-$version..." echo "Installing clang-$version..."
if [[ $version =~ (9|10) ]]; then if [[ $version =~ 9 ]] && isUbuntu16; then
./llvm.sh $version ./llvm.sh $version
apt-get install -y "clang-format-$version" apt-get install -y "clang-format-$version"
else else

View File

@@ -4,6 +4,10 @@
## Desc: Installs GNU C++ ## Desc: Installs GNU C++
################################################################################ ################################################################################
set -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
function InstallGcc { function InstallGcc {
version=$1 version=$1
@@ -29,7 +33,10 @@ versions=(
"g++-9" "g++-9"
) )
for version in ${versions[*]} if ! isUbuntu16; then
do versions+=("g++-10")
fi
for version in ${versions[*]}; do
InstallGcc $version InstallGcc $version
done done

View File

@@ -4,21 +4,20 @@
## Desc: Installs Python 2/3 ## Desc: Installs Python 2/3
################################################################################ ################################################################################
set -e
# Source the helpers for use with the script # Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/os.sh
# Install Python, Python 3, pip, pip3 # Install Python, Python 3, pip, pip3
if isUbuntu20 ; then
apt-get install -y --no-install-recommends python3 python3-dev python3-pip
curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
python2 get-pip.py
fi
if isUbuntu16 || isUbuntu18; then if isUbuntu16 || isUbuntu18; then
apt-get install -y --no-install-recommends python python-dev python-pip python3 python3-dev python3-pip apt-get install -y --no-install-recommends python python-dev python-pip python3 python3-dev python3-pip
fi fi
if isUbuntu20; then
apt-get install -y --no-install-recommends python3 python3-dev python3-pip
ln -s /usr/bin/pip3 /usr/bin/pip
fi
# Run tests to determine that the software installed as expected # Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work" echo "Testing to make sure that script performed as expected, and basic scenarios work"
for cmd in python pip python3 pip3; do for cmd in python pip python3 pip3; do

View File

@@ -109,7 +109,8 @@
"3.8.0", "3.8.0",
"4.3.0", "4.3.0",
"4.4.0", "4.4.0",
"4.6.0" "4.6.0",
"4.7.0"
] ]
} }
], ],

View File

@@ -105,7 +105,8 @@
"3.8.0", "3.8.0",
"4.3.0", "4.3.0",
"4.4.0", "4.4.0",
"4.6.0" "4.6.0",
"4.7.0"
] ]
} }
], ],

View File

@@ -96,7 +96,7 @@
"locales", "locales",
"openssh-client", "openssh-client",
"pkg-config", "pkg-config",
"python-is-python2", "python-is-python3",
"rpm", "rpm",
"texinfo", "texinfo",
"tk", "tk",

View File

@@ -24,7 +24,10 @@
"run_validation_diskspace": "false", "run_validation_diskspace": "false",
"announcements": "{{env `ANNOUNCEMENTS`}}" "announcements": "{{env `ANNOUNCEMENTS`}}"
}, },
"sensitive-variables": ["client_secret", "github_feed_token"], "sensitive-variables": [
"client_secret",
"github_feed_token"
],
"builders": [ "builders": [
{ {
"type": "azure-arm", "type": "azure-arm",
@@ -32,7 +35,6 @@
"client_secret": "{{user `client_secret`}}", "client_secret": "{{user `client_secret`}}",
"subscription_id": "{{user `subscription_id`}}", "subscription_id": "{{user `subscription_id`}}",
"tenant_id": "{{user `tenant_id`}}", "tenant_id": "{{user `tenant_id`}}",
"location": "{{user `location`}}", "location": "{{user `location`}}",
"vm_size": "{{user `vm_size`}}", "vm_size": "{{user `vm_size`}}",
"resource_group_name": "{{user `resource_group`}}", "resource_group_name": "{{user `resource_group`}}",

View File

@@ -24,7 +24,10 @@
"run_validation_diskspace": "false", "run_validation_diskspace": "false",
"announcements": "{{env `ANNOUNCEMENTS`}}" "announcements": "{{env `ANNOUNCEMENTS`}}"
}, },
"sensitive-variables": ["client_secret", "github_feed_token"], "sensitive-variables": [
"client_secret",
"github_feed_token"
],
"builders": [ "builders": [
{ {
"type": "azure-arm", "type": "azure-arm",
@@ -32,7 +35,6 @@
"client_secret": "{{user `client_secret`}}", "client_secret": "{{user `client_secret`}}",
"subscription_id": "{{user `subscription_id`}}", "subscription_id": "{{user `subscription_id`}}",
"tenant_id": "{{user `tenant_id`}}", "tenant_id": "{{user `tenant_id`}}",
"location": "{{user `location`}}", "location": "{{user `location`}}",
"vm_size": "{{user `vm_size`}}", "vm_size": "{{user `vm_size`}}",
"resource_group_name": "{{user `resource_group`}}", "resource_group_name": "{{user `resource_group`}}",

View File

@@ -26,7 +26,10 @@
"go_versions": "1.14", "go_versions": "1.14",
"announcements": "{{env `ANNOUNCEMENTS`}}" "announcements": "{{env `ANNOUNCEMENTS`}}"
}, },
"sensitive-variables": ["client_secret", "github_feed_token"], "sensitive-variables": [
"client_secret",
"github_feed_token"
],
"builders": [ "builders": [
{ {
"type": "azure-arm", "type": "azure-arm",
@@ -34,7 +37,6 @@
"client_secret": "{{user `client_secret`}}", "client_secret": "{{user `client_secret`}}",
"subscription_id": "{{user `subscription_id`}}", "subscription_id": "{{user `subscription_id`}}",
"tenant_id": "{{user `tenant_id`}}", "tenant_id": "{{user `tenant_id`}}",
"location": "{{user `location`}}", "location": "{{user `location`}}",
"vm_size": "{{user `vm_size`}}", "vm_size": "{{user `vm_size`}}",
"resource_group_name": "{{user `resource_group`}}", "resource_group_name": "{{user `resource_group`}}",

View File

@@ -45,6 +45,17 @@ function Switch-Xcode {
Invoke-Expression "sudo xcode-select --switch ${XcodeRootPath}" Invoke-Expression "sudo xcode-select --switch ${XcodeRootPath}"
} }
function Test-XcodeStableRelease {
param(
[Parameter(Mandatory)]
[string] $XcodeRootPath
)
$licenseInfoPlistPath = Join-Path $XcodeRootPath "Contents" "Resources" "LicenseInfo.plist"
$releaseType = & defaults read $licenseInfoPlistPath "licenseType"
return -not ($releaseType -match "beta")
}
function Get-XcodeSimulatorsInfo { function Get-XcodeSimulatorsInfo {
param( param(
[string] $Filter [string] $Filter

View File

@@ -1,15 +1,15 @@
# macOS 10.15 info # macOS 10.15 info
- System Version: macOS 10.15.6 (19G2021) - System Version: macOS 10.15.6 (19G2021)
- Kernel Version: Darwin 19.6.0 - Kernel Version: Darwin 19.6.0
- Image Version: 20200916.1 - Image Version: 20200918.1
## Installed Software ## Installed Software
### Language and Runtime ### Language and Runtime
- Clang/LLVM 10.0.1 - Clang/LLVM 10.0.1
- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 available by `gcc-8` alias - gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gcc-8` alias
- gcc-9 (Homebrew GCC 9.3.0) 9.3.0 available by `gcc-9` alias - gcc-9 (Homebrew GCC 9.3.0) 9.3.0 - available by `gcc-9` alias
- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 available by `gfortran-8` alias - GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gfortran-8` alias
- GNU Fortran (Homebrew GCC 9.3.0) 9.3.0 available by `gfortran-9` alias - GNU Fortran (Homebrew GCC 9.3.0) 9.3.0 - available by `gfortran-9` alias
- Node.js v12.18.3 - Node.js v12.18.3
- NVM 0.35.3 - NVM 0.35.3
- NVM - Cached node versions: v6.17.1 v8.17.0 v10.22.1 v12.18.4 v13.14.0 v14.11.0 - NVM - Cached node versions: v6.17.1 v8.17.0 v10.22.1 v12.18.4 v13.14.0 v14.11.0
@@ -24,15 +24,15 @@
### Package Management ### Package Management
- Vcpkg 2020.06.15 - Vcpkg 2020.06.15
- Pip 19.3.1 (python 2.7)
- Pip 20.1.1 (python 3.8)
- Bundler version 2.1.4 - Bundler version 2.1.4
- Carthage 0.35.0 - Carthage 0.36.0
- CocoaPods 1.9.3 - CocoaPods 1.9.3
- Homebrew 2.5.1 - Homebrew 2.5.1
- NPM 6.14.6 - NPM 6.14.6
- Yarn 1.22.5 - Yarn 1.22.5
- NuGet 5.6.0.6489 - NuGet 5.6.0.6489
- Pip 19.3.1 (python 2.7)
- Pip 20.1.1 (python 3.8)
- Miniconda 4.8.3 - Miniconda 4.8.3
- RubyGems 3.1.4 - RubyGems 3.1.4
- Composer 1.10.13 - Composer 1.10.13
@@ -46,12 +46,11 @@
- Curl 7.72.0 - Curl 7.72.0
- Git: 2.28.0 - Git: 2.28.0
- Git LFS: 2.12.0 - Git LFS: 2.12.0
- GitHub CLI: 0.12.0 - GitHub CLI: 1.0.0
- Hub CLI: 2.14.2 - Hub CLI: 2.14.2
- GNU Wget 1.20.3 - GNU Wget 1.20.3
- Subversion (SVN) 1.14.0 - Subversion (SVN) 1.14.0
- Packer 1.6.2 - Packer 1.6.2
- GNU parallel 20200722
- OpenSSL 1.0.2t 10 Sep 2019 `(/usr/local/opt/openssl -> /usr/local/Cellar/openssl@1.0.2t/1.0.2t)` - OpenSSL 1.0.2t 10 Sep 2019 `(/usr/local/opt/openssl -> /usr/local/Cellar/openssl@1.0.2t/1.0.2t)`
- jq 1.6 - jq 1.6
- gpg (GnuPG) 2.2.23 - gpg (GnuPG) 2.2.23
@@ -62,24 +61,25 @@
- zstd 1.4.5 - zstd 1.4.5
- bazel 3.5.0 - bazel 3.5.0
- bazelisk 1.6.1 - bazelisk 1.6.1
- helm v3.3.1+g249e521 - helm v3.3.2+ge507725
- virtualbox 6.1.14r140239 - virtualbox 6.1.14r140239
- mongo v4.4.0 - mongo v4.4.0
- mongod v4.4.0 - mongod v4.4.0
- Vagrant 2.2.10 - Vagrant 2.2.10
- 7-Zip 16.02 - 7-Zip 16.02
- Newman 5.2.0 - Newman 5.2.0
- GNU parallel 20200722
### Tools ### Tools
- Fastlane 2.159.0 - Fastlane 2.160.0
- Cmake 3.18.2 - Cmake 3.18.2
- App Center CLI 2.7.0 - App Center CLI 2.7.0
- Azure CLI 2.11.1 - Azure CLI 2.11.1
- AWS CLI 2.0.48 - AWS CLI 2.0.48
- AWS SAM CLI 1.2.0 - AWS SAM CLI 1.2.0
- AWS Session Manager CLI 1.1.61.0 - AWS Session Manager CLI 1.1.61.0
- Aliyun CLI 3.0.56 - Aliyun CLI 3.0.58
- GHCup v0.1.10 - GHCup v0.1.10
- GHC 8.10.2 - GHC 8.10.2
- Cabal 3.2.0.0 - Cabal 3.2.0.0
@@ -90,8 +90,8 @@
- SwiftLint 0.40.2 - SwiftLint 0.40.2
### Browsers ### Browsers
- Safari 13.1.2 (15609.3.5.1.3) - Safari 14.0 (15610.1.28.1.9)
- SafariDriver 13.1.2 (15609.3.5.1.3) - SafariDriver 14.0 (15610.1.28.1.9)
- Google Chrome 85.0.4183.102 - Google Chrome 85.0.4183.102
- ChromeDriver 85.0.4183.87 - ChromeDriver 85.0.4183.87
- Microsoft Edge 85.0.564.51 - Microsoft Edge 85.0.564.51
@@ -161,7 +161,7 @@
### Xamarin ### Xamarin
#### Visual Studio for Mac #### Visual Studio for Mac
- 8.7.5.19 - 8.7.7.10
#### Mono #### Mono
- 6.12.0.93 - 6.12.0.93
@@ -205,6 +205,7 @@
### Xcode ### Xcode
| Version | Build | Path | | Version | Build | Path |
| -------------- | -------- | ------------------------------- | | -------------- | -------- | ------------------------------- |
| 12.2 | 12B5018i | /Applications/Xcode_12.2.app |
| 12.0 | 12A8189n | /Applications/Xcode_12_beta.app | | 12.0 | 12A8189n | /Applications/Xcode_12_beta.app |
| 12.0 | 12A7209 | /Applications/Xcode_12.app | | 12.0 | 12A7209 | /Applications/Xcode_12.app |
| 11.7 (default) | 11E801a | /Applications/Xcode_11.7.app | | 11.7 (default) | 11E801a | /Applications/Xcode_11.7.app |
@@ -219,18 +220,18 @@
| 10.3 | 10G8 | /Applications/Xcode_10.3.app | | 10.3 | 10G8 | /Applications/Xcode_10.3.app |
#### Xcode Support Tools #### Xcode Support Tools
- xcpretty 0.3.0
- xcversion 2.6.6
- Nomad CLI 3.1.4 - Nomad CLI 3.1.4
- Nomad CLI IPA ipa 0.14.3 - Nomad CLI IPA ipa 0.14.3
- xcpretty 0.3.0
- xctool 0.3.7 - xctool 0.3.7
- xcversion 2.6.6
#### Installed SDKs #### Installed SDKs
| SDK | SDK Name | Xcode Version | | SDK | SDK Name | Xcode Version |
| ----------------------- | -------------------- | ---------------------------------------------------------------- | | ----------------------- | -------------------- | ---------------------------------------------------------------- |
| macOS 10.14 | macosx10.14 | 10.3 | | macOS 10.14 | macosx10.14 | 10.3 |
| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7, 12.0 | | macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7, 12.0 |
| macOS 11.0 | macosx11.0 | 12.0 | | macOS 11.0 | macosx11.0 | 12.0, 12.2 |
| iOS 12.4 | iphoneos12.4 | 10.3 | | 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 |
@@ -240,6 +241,7 @@
| iOS 13.6 | iphoneos13.6 | 11.6 | | iOS 13.6 | iphoneos13.6 | 11.6 |
| iOS 13.7 | iphoneos13.7 | 11.7 | | iOS 13.7 | iphoneos13.7 | 11.7 |
| iOS 14.0 | iphoneos14.0 | 12.0, 12.0 | | iOS 14.0 | iphoneos14.0 | 12.0, 12.0 |
| iOS 14.2 | iphoneos14.2 | 12.2 |
| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 | | 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 |
@@ -249,28 +251,33 @@
| Simulator - iOS 13.6 | iphonesimulator13.6 | 11.6 | | Simulator - iOS 13.6 | iphonesimulator13.6 | 11.6 |
| Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 | | Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 |
| Simulator - iOS 14.0 | iphonesimulator14.0 | 12.0, 12.0 | | Simulator - iOS 14.0 | iphonesimulator14.0 | 12.0, 12.0 |
| Simulator - iOS 14.2 | iphonesimulator14.2 | 12.2 |
| tvOS 12.4 | appletvos12.4 | 10.3 | | 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.1, 11.3.1 | | tvOS 13.2 | appletvos13.2 | 11.2.1, 11.3.1 |
| tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 | | tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
| tvOS 14.0 | appletvos14.0 | 12.0, 12.0 | | tvOS 14.0 | appletvos14.0 | 12.0, 12.0 |
| tvOS 14.2 | appletvos14.2 | 12.2 |
| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 | | 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.1, 11.3.1 | | Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2.1, 11.3.1 |
| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 | | Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
| Simulator - tvOS 14.0 | appletvsimulator14.0 | 12.0, 12.0 | | Simulator - tvOS 14.0 | appletvsimulator14.0 | 12.0, 12.0 |
| Simulator - tvOS 14.2 | appletvsimulator14.2 | 12.2 |
| watchOS 5.3 | watchos5.3 | 10.3 | | 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.1, 11.3.1 | | watchOS 6.1 | watchos6.1 | 11.2.1, 11.3.1 |
| watchOS 6.2 | watchos6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 | | watchOS 6.2 | watchos6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
| watchOS 7.0 | watchos7.0 | 12.0, 12.0 | | watchOS 7.0 | watchos7.0 | 12.0, 12.0 |
| watchOS 7.1 | watchos7.1 | 12.2 |
| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 | | 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.1, 11.3.1 | | Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2.1, 11.3.1 |
| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 | | Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
| Simulator - watchOS 7.0 | watchsimulator7.0 | 12.0, 12.0 | | Simulator - watchOS 7.0 | watchsimulator7.0 | 12.0, 12.0 |
| Simulator - watchOS 7.1 | watchsimulator7.1 | 12.2 |
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7, 12.0 | | DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7, 12.0 |
| DriverKit 20.0 | driverkit.macosx20.0 | 12.0 | | DriverKit 20.0 | driverkit.macosx20.0 | 12.0, 12.2 |
#### Installed Simulators #### Installed Simulators
| OS | Xcode Version | Simulators | | OS | Xcode Version | Simulators |
@@ -284,18 +291,18 @@
| iOS 13.5 | 11.5 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) | | iOS 13.5 | 11.5 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
| iOS 13.6 | 11.6 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) | | iOS 13.6 | 11.6 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
| iOS 13.7 | 11.7 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) | | iOS 13.7 | 11.7 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
| iOS 14.0 | 12.0 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) | | iOS 14.0 | 12.0<br>12.0 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
| tvOS 12.4 | 10.3 | 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.0 | 11.0<br>11.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.2 | 11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) | | tvOS 13.2 | 11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.3 | 11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) | | tvOS 13.3 | 11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.4 | 11.4<br>11.4.1<br>11.5<br>11.6<br>11.7 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) | | tvOS 13.4 | 11.4<br>11.4.1<br>11.5<br>11.6<br>11.7 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 14.0 | 12.0 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) | | tvOS 14.0 | 12.0<br>12.0 | 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 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.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.1<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.1 | 11.2.1<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<br>11.5<br>11.6<br>11.7 | 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<br>11.5<br>11.6<br>11.7 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| watchOS 7.0 | 12.0 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm | | watchOS 7.0 | 12.0<br>12.0 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm |
### Android ### Android
#### Android SDK Tools #### Android SDK Tools

View File

@@ -28,3 +28,6 @@ sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885
curl https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer --output $HOME/AppleWWDRCAG3.cer --silent curl https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer --output $HOME/AppleWWDRCAG3.cer --silent
sudo security add-trusted-cert -d -r unspecified -k /Library/Keychains/System.keychain $HOME/AppleWWDRCAG3.cer sudo security add-trusted-cert -d -r unspecified -k /Library/Keychains/System.keychain $HOME/AppleWWDRCAG3.cer
rm $HOME/AppleWWDRCAG3.cer rm $HOME/AppleWWDRCAG3.cer
# Disable spotlight indexing to prevent possible high CPU usage after startup
sudo mdutil -ai off

View File

@@ -3,6 +3,7 @@ export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8 export LANG=en_US.UTF-8
export ANDROID_HOME=${HOME}/Library/Android/sdk export ANDROID_HOME=${HOME}/Library/Android/sdk
export ANDROID_SDK_ROOT=${HOME}/Library/Android/sdk
export ANDROID_NDK_HOME=${ANDROID_HOME}/ndk-bundle export ANDROID_NDK_HOME=${ANDROID_HOME}/ndk-bundle
export NUNIT_BASE_PATH=/Library/Developer/nunit export NUNIT_BASE_PATH=/Library/Developer/nunit

View File

@@ -12,8 +12,3 @@ brew install sox
echo "set Soundflower (2ch) as input/output device" echo "set Soundflower (2ch) as input/output device"
SwitchAudioSource -s "Soundflower (2ch)" -t input SwitchAudioSource -s "Soundflower (2ch)" -t input
SwitchAudioSource -s "Soundflower (2ch)" -t output SwitchAudioSource -s "Soundflower (2ch)" -t output
echo "grant microphone permission for simulators"
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "insert into access values('kTCCServiceMicrophone','com.apple.CoreSimulator.SimulatorTrampoline', 0,1,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576347152)"
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "insert into access values('kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh', 1,1,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342)"
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "insert into access values('kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh', 1,1,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342)"

View File

@@ -66,16 +66,20 @@ function InstallPyPy
rm -f $PACKAGE_TAR_TEMP_PATH rm -f $PACKAGE_TAR_TEMP_PATH
} }
# PyPy 7.3.1 relies on system libffi.6.dylib, which is not existed in in libffi 3.3 release. As a workaround symlink can be created
ln -s libffi.7.dylib /usr/local/opt/libffi/lib/libffi.6.dylib
uri="https://downloads.python.org/pypy/" uri="https://downloads.python.org/pypy/"
pypyVersions=$(curl -4 -s --compressed $uri | grep 'osx64' | awk -v uri="$uri" -F'>|<' '{print uri$5}') pypyVersions=$(curl -4 -s --compressed $uri | grep 'osx64' | awk -v uri="$uri" -F'>|<' '{print uri$5}')
toolsetVersions=$(get_toolset_value '.toolcache[] | select(.name | contains("PyPy")) | .versions[]') toolsetVersions=$(get_toolset_value '.toolcache[] | select(.name | contains("PyPy")) | .versions[]')
versionPattern="v[0-9]+\.[0-9]+\.[0-9]+-"
# PyPy 7.3.2 for High Sierra is broken, use 7.3.1 instead https://foss.heptapod.net/pypy/pypy/-/issues/3311
if is_HighSierra; then
versionPattern="v7.3.1-"
# PyPy 7.3.1 relies on system libffi.6.dylib, which is not existed in in libffi 3.3 release. As a workaround symlink can be created
ln -s libffi.7.dylib /usr/local/opt/libffi/lib/libffi.6.dylib
fi
for toolsetVersion in $toolsetVersions; do for toolsetVersion in $toolsetVersions; do
latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[0-9]+\.[0-9]+\.[0-9]+-" | head -1) latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-${versionPattern}" | head -1)
if [[ -z "$latestMajorPyPyVersion" ]]; then if [[ -z "$latestMajorPyPyVersion" ]]; then
echo "Failed to get PyPy version '$toolsetVersion'" echo "Failed to get PyPy version '$toolsetVersion'"
exit 1 exit 1

View File

@@ -3,6 +3,9 @@ source ~/utils/utils.sh
source ~/utils/xamarin-utils.sh source ~/utils/xamarin-utils.sh
VSMAC_VERSION=$(get_toolset_value '.xamarin.vsmac') VSMAC_VERSION=$(get_toolset_value '.xamarin.vsmac')
if [ $VSMAC_VERSION == "latest" ]; then
VSMAC_VERSION=$(curl https://formulae.brew.sh/api/cask/visual-studio.json 2>/dev/null | jq .version | tr -d \")
fi
VSMAC_DOWNLOAD_URL=$(buildVSMacDownloadUrl $VSMAC_VERSION) VSMAC_DOWNLOAD_URL=$(buildVSMacDownloadUrl $VSMAC_VERSION)
TMPMOUNT=`/usr/bin/mktemp -d /tmp/visualstudio.XXXX` TMPMOUNT=`/usr/bin/mktemp -d /tmp/visualstudio.XXXX`

View File

@@ -289,6 +289,8 @@ $markdown += New-MDList -Lines (Build-XamarinAndroidList) -Style Unordered
$markdown += New-MDHeader "Unit Test Framework" -Level 4 $markdown += New-MDHeader "Unit Test Framework" -Level 4
$markdown += New-MDList -Lines @(Get-NUnitVersion) -Style Unordered $markdown += New-MDList -Lines @(Get-NUnitVersion) -Style Unordered
# First run doesn't provide full data about devices and runtimes
Get-XcodeInfoList | Out-Null
# Xcode section # Xcode section
$xcodeInfo = Get-XcodeInfoList $xcodeInfo = Get-XcodeInfoList
$markdown += New-MDHeader "Xcode" -Level 3 $markdown += New-MDHeader "Xcode" -Level 3
@@ -301,12 +303,9 @@ $markdown += New-MDHeader "Installed SDKs" -Level 4
$markdown += Build-XcodeSDKTable $xcodeInfo | New-MDTable $markdown += Build-XcodeSDKTable $xcodeInfo | New-MDTable
$markdown += New-MDNewLine $markdown += New-MDNewLine
# Disable simulators table on 11.0 beta for now since "simctl" tool doesn't work properly
if (-not $os.IsBigSur) {
$markdown += New-MDHeader "Installed Simulators" -Level 4 $markdown += New-MDHeader "Installed Simulators" -Level 4
$markdown += Build-XcodeSimulatorsTable $xcodeInfo | New-MDTable $markdown += Build-XcodeSimulatorsTable $xcodeInfo | New-MDTable
$markdown += New-MDNewLine $markdown += New-MDNewLine
}
# Android section # Android section
$markdown += New-MDHeader "Android" -Level 3 $markdown += New-MDHeader "Android" -Level 3

View File

@@ -46,6 +46,7 @@ function Get-XcodeInfoList {
$versionInfo = Get-XcodeVersionInfo $versionInfo = Get-XcodeVersionInfo
$versionInfo.Path = $xcodeRootPath $versionInfo.Path = $xcodeRootPath
$versionInfo.IsDefault = ($xcodeRootPath -eq $defaultXcodeRootPath) $versionInfo.IsDefault = ($xcodeRootPath -eq $defaultXcodeRootPath)
$versionInfo.IsStable = Test-XcodeStableRelease -XcodeRootPath $xcodeRootPath
$xcodeInfo.Add($xcodeRootPath, [PSCustomObject] @{ $xcodeInfo.Add($xcodeRootPath, [PSCustomObject] @{
VersionInfo = $versionInfo VersionInfo = $versionInfo
@@ -91,6 +92,7 @@ function Build-XcodeTable {
$xcodeList = $xcodeInfo.Values | ForEach-Object { $_.VersionInfo } | Sort-Object $sortRules $xcodeList = $xcodeInfo.Values | ForEach-Object { $_.VersionInfo } | Sort-Object $sortRules
return $xcodeList | ForEach-Object { return $xcodeList | ForEach-Object {
$defaultPostfix = If ($_.IsDefault) { " (default)" } else { "" } $defaultPostfix = If ($_.IsDefault) { " (default)" } else { "" }
$betaPostfix = If ($_.IsStable) { "" } else { " (beta)" }
return [PSCustomObject] @{ return [PSCustomObject] @{
"Version" = $_.Version.ToString() + $betaPostfix + $defaultPostfix "Version" = $_.Version.ToString() + $betaPostfix + $defaultPostfix
"Build" = $_.Build "Build" = $_.Build

View File

@@ -6,7 +6,7 @@
] ]
}, },
"xamarin": { "xamarin": {
"vsmac": "8.7.8.4", "vsmac": "latest",
"mono-versions": [ "mono-versions": [
"6.12.0.93", "6.10.0.106", "6.8.0.123", "6.6.0.166", "6.4.0.208" "6.12.0.93", "6.10.0.106", "6.8.0.123", "6.6.0.166", "6.4.0.208"
], ],
@@ -19,7 +19,7 @@
"android-versions": [ "android-versions": [
"11.0.2.0", "10.3.1.4", "10.2.0.100", "10.1.3.7", "10.0.6.2" "11.0.2.0", "10.3.1.4", "10.2.0.100", "10.1.3.7", "10.0.6.2"
], ],
"bundle-default": "latest", "bundle-default": "6_12_0",
"bundles": [ "bundles": [
{ {
"symlink": "6_12_1", "symlink": "6_12_1",

View File

@@ -6,7 +6,7 @@
] ]
}, },
"xamarin": { "xamarin": {
"vsmac": "8.7.8.4", "vsmac": "latest",
"mono-versions": [ "mono-versions": [
"6.12.0.93" "6.12.0.93"
], ],
@@ -19,7 +19,7 @@
"android-versions": [ "android-versions": [
"11.0.2.0" "11.0.2.0"
], ],
"bundle-default": "latest", "bundle-default": "6_12_0",
"bundles": [ "bundles": [
{ {
"symlink": "6_12_1", "symlink": "6_12_1",

View File

@@ -15,7 +15,6 @@
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}", "private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"vm_size": "Standard_DS4_v2", "vm_size": "Standard_DS4_v2",
"run_scan_antivirus": "false", "run_scan_antivirus": "false",
"root_folder": "C:", "root_folder": "C:",
"toolset_json_path": "{{env `TEMP`}}\\toolset.json", "toolset_json_path": "{{env `TEMP`}}\\toolset.json",
"image_folder": "C:\\image", "image_folder": "C:\\image",
@@ -30,7 +29,11 @@
"github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}", "github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}",
"announcements": "{{env `ANNOUNCEMENTS`}}" "announcements": "{{env `ANNOUNCEMENTS`}}"
}, },
"sensitive-variables": ["install_password", "client_secret", "github_feed_token"], "sensitive-variables": [
"install_password",
"client_secret",
"github_feed_token"
],
"builders": [ "builders": [
{ {
"name": "vhd", "name": "vhd",
@@ -79,6 +82,11 @@
"source": "{{ template_dir }}/scripts/SoftwareReport", "source": "{{ template_dir }}/scripts/SoftwareReport",
"destination": "{{user `image_folder`}}" "destination": "{{user `image_folder`}}"
}, },
{
"type": "file",
"source": "{{ template_dir }}/post-generation",
"destination": "C:/post-generation"
},
{ {
"type": "file", "type": "file",
"source": "{{ template_dir }}/scripts/Tests", "source": "{{ template_dir }}/scripts/Tests",
@@ -157,12 +165,6 @@
"type": "windows-restart", "type": "windows-restart",
"restart_timeout": "30m" "restart_timeout": "30m"
}, },
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Update-DockerImages.ps1"
]
},
{ {
"type": "powershell", "type": "powershell",
"valid_exit_codes": [ "valid_exit_codes": [
@@ -173,6 +175,7 @@
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}" "TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
], ],
"scripts": [ "scripts": [
"{{ template_dir }}/scripts/Installers/Update-DockerImages.ps1",
"{{ template_dir }}/scripts/Installers/Install-VS.ps1", "{{ template_dir }}/scripts/Installers/Install-VS.ps1",
"{{ template_dir }}/scripts/Installers/Install-NET48.ps1", "{{ template_dir }}/scripts/Installers/Install-NET48.ps1",
"{{ template_dir }}/scripts/Installers/Windows2016/Install-SSDT.ps1" "{{ template_dir }}/scripts/Installers/Windows2016/Install-SSDT.ps1"
@@ -265,7 +268,9 @@
}, },
{ {
"type": "windows-shell", "type": "windows-shell",
"inline": ["wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"] "inline": [
"wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"
]
}, },
{ {
"type": "powershell", "type": "powershell",
@@ -291,7 +296,6 @@
"{{ template_dir }}/scripts/Installers/Install-DotnetSDK.ps1" "{{ template_dir }}/scripts/Installers/Install-DotnetSDK.ps1"
] ]
}, },
{ {
"type": "powershell", "type": "powershell",
"elevated_user": "SYSTEM", "elevated_user": "SYSTEM",

View File

@@ -15,7 +15,6 @@
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}", "private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"vm_size": "Standard_D4_v2", "vm_size": "Standard_D4_v2",
"run_scan_antivirus": "false", "run_scan_antivirus": "false",
"root_folder": "C:", "root_folder": "C:",
"toolset_json_path": "{{env `TEMP`}}\\toolset.json", "toolset_json_path": "{{env `TEMP`}}\\toolset.json",
"image_folder": "C:\\image", "image_folder": "C:\\image",
@@ -30,7 +29,11 @@
"github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}", "github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}",
"announcements": "{{env `ANNOUNCEMENTS`}}" "announcements": "{{env `ANNOUNCEMENTS`}}"
}, },
"sensitive-variables": ["install_password", "client_secret", "github_feed_token"], "sensitive-variables": [
"install_password",
"client_secret",
"github_feed_token"
],
"builders": [ "builders": [
{ {
"name": "vhd", "name": "vhd",
@@ -79,6 +82,11 @@
"source": "{{ template_dir }}/scripts/SoftwareReport", "source": "{{ template_dir }}/scripts/SoftwareReport",
"destination": "{{user `image_folder`}}" "destination": "{{user `image_folder`}}"
}, },
{
"type": "file",
"source": "{{ template_dir }}/post-generation",
"destination": "C:/post-generation"
},
{ {
"type": "file", "type": "file",
"source": "{{ template_dir }}/scripts/Tests", "source": "{{ template_dir }}/scripts/Tests",
@@ -181,6 +189,7 @@
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}" "TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
], ],
"scripts": [ "scripts": [
"{{ template_dir }}/scripts/Installers/Update-DockerImages.ps1",
"{{ template_dir }}/scripts/Installers/Install-VS.ps1", "{{ template_dir }}/scripts/Installers/Install-VS.ps1",
"{{ template_dir }}/scripts/Installers/Install-NET48.ps1" "{{ template_dir }}/scripts/Installers/Install-NET48.ps1"
], ],
@@ -231,7 +240,9 @@
}, },
{ {
"type": "windows-shell", "type": "windows-shell",
"inline": ["wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"] "inline": [
"wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"
]
}, },
{ {
"type": "powershell", "type": "powershell",
@@ -247,7 +258,6 @@
"{{ template_dir }}/scripts/Installers/Install-YAMLLint.ps1", "{{ template_dir }}/scripts/Installers/Install-YAMLLint.ps1",
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1", "{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1",
"{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1" "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1"
] ]
}, },
{ {

View File

@@ -0,0 +1,8 @@
$latestPath = [System.Environment]::GetEnvironmentVariable('PATH', [System.EnvironmentVariableTarget]::Machine)
$dotnetPath = "$env:USERPROFILE\.dotnet\tools"
if (-not $latestPath.Contains($dotnetPath))
{
$latestPath = "$dotnetPath;$latestPath"
[System.Environment]::SetEnvironmentVariable('PATH', $latestPath, [System.EnvironmentVariableTarget]::Machine)
}

View File

@@ -0,0 +1,12 @@
# Create Rust junction points to cargo and rustup folder
$cargoTarget = "$env:USERPROFILE\.cargo"
if (-not (Test-Path $cargoTarget))
{
New-Item -ItemType Junction -Path $cargoTarget -Target "C:\Rust\.cargo"
}
$rustupTarget = "$env:USERPROFILE\.rustup"
if (-not (Test-Path $rustupTarget))
{
New-Item -ItemType Junction -Path $rustupTarget -Target "C:\Rust\.rustup"
}

View File

@@ -0,0 +1,4 @@
$vsInstallRoot = Get-VisualStudioPath
$devEnvPath = "$vsInstallRoot\Common7\IDE\devenv.exe"
cmd.exe /c "`"$devEnvPath`" /updateconfiguration"

View File

@@ -37,6 +37,9 @@ Export-ModuleMember -Function @(
'Get-VsCatalogJsonPath' 'Get-VsCatalogJsonPath'
'Get-VisualStudioPath' 'Get-VisualStudioPath'
'Install-AndroidSDKPackages' 'Install-AndroidSDKPackages'
'Get-AndroidPackages'
'Get-AndroidPackagesByName'
'Get-AndroidPackagesByVersion'
'Get-VisualStudioPackages' 'Get-VisualStudioPackages'
'Get-VisualStudioComponents' 'Get-VisualStudioComponents'
) )

View File

@@ -418,3 +418,41 @@ function Install-AndroidSDKPackages {
& $AndroidSDKManagerPath --sdk_root=$AndroidSDKRootPath "$PrefixPackageName$package" & $AndroidSDKManagerPath --sdk_root=$AndroidSDKRootPath "$PrefixPackageName$package"
} }
} }
function Get-AndroidPackages {
Param
(
[Parameter(Mandatory=$true)]
[string]$AndroidSDKManagerPath
)
return (& $AndroidSDKManagerPath --list --verbose).Trim() | Foreach-Object { $_.Split()[0] } | Where-Object {$_}
}
function Get-AndroidPackagesByName {
Param (
[Parameter(Mandatory=$true)]
[string[]]$AndroidPackages,
[Parameter(Mandatory=$true)]
[string]$PrefixPackageName
)
return $AndroidPackages | Where-Object { "$_".StartsWith($PrefixPackageName) }
}
function Get-AndroidPackagesByVersion {
Param (
[Parameter(Mandatory=$true)]
[string[]]$AndroidPackages,
[Parameter(Mandatory=$true)]
[string]$PrefixPackageName,
[object]$MinimumVersion,
[char]$Delimiter,
[int]$Index = 0
)
$Type = $MinimumVersion.GetType()
$packagesByName = Get-AndroidPackagesByName -AndroidPackages $AndroidPackages -PrefixPackageName $PrefixPackageName
$packagesByVersion = $packagesByName | Where-Object { ($_.Split($Delimiter)[$Index] -as $Type) -ge $MinimumVersion }
return $packagesByVersion | Sort-Object { $_.Split($Delimiter)[$Index] -as $Type} -Unique
}

View File

@@ -40,5 +40,10 @@ Choco-Install -PackageName hub
Add-MachinePathItem "C:\Program Files\Git\bin" Add-MachinePathItem "C:\Program Files\Git\bin"
# Add well-known SSH host keys to ssh_known_hosts
ssh-keyscan -t rsa github.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts"
ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts"
Invoke-PesterTests -TestFile "Git" -TestName "Git" Invoke-PesterTests -TestFile "Git" -TestName "Git"
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Hub CLI" Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Hub CLI"

View File

@@ -3,14 +3,7 @@
## Desc: Install and update Android SDK and tools ## Desc: Install and update Android SDK and tools
################################################################################ ################################################################################
# Download the latest command line tools so that we can accept all of the licenses. $ErrorActionPreference = "Stop"
# See https://developer.android.com/studio/#command-tools
$sdkArchPath = Start-DownloadWithRetry -Url "https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip" -Name "android-sdk-tools.zip"
# Don't replace the one that VS installs as it seems to break things.
Expand-Archive -Path $sdkArchPath -DestinationPath android-sdk -Force
$sdk = Get-Item -Path .\android-sdk
# Install the standard Android SDK licenses. In the past, there wasn't a better way to do this, # Install the standard Android SDK licenses. In the past, there wasn't a better way to do this,
# so we are base64-encoding a zip of the licenses directory from another installation. # so we are base64-encoding a zip of the licenses directory from another installation.
@@ -30,7 +23,6 @@ $content = [System.Convert]::FromBase64String($base64Content)
Set-Content -Path .\android-sdk-licenses.zip -Value $content -Encoding Byte Set-Content -Path .\android-sdk-licenses.zip -Value $content -Encoding Byte
Expand-Archive -Path .\android-sdk-licenses.zip -DestinationPath 'C:\Program Files (x86)\Android\android-sdk' -Force Expand-Archive -Path .\android-sdk-licenses.zip -DestinationPath 'C:\Program Files (x86)\Android\android-sdk' -Force
# run the updates. # run the updates.
# keep newer versions in descending order # keep newer versions in descending order
@@ -42,15 +34,32 @@ $sdkManager = "$sdkRoot\tools\bin\sdkmanager.bat"
& $sdkManager --sdk_root=$sdkRoot "platform-tools" & $sdkManager --sdk_root=$sdkRoot "platform-tools"
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager ` # get packages info
-AndroidSDKRootPath $sdkRoot ` $androidPackages = Get-AndroidPackages -AndroidSDKManagerPath $sdkManager
-AndroidPackages $androidToolset.platform_list `
-PrefixPackageName "platforms;" # platforms
[int]$platformMinVersion = $androidToolset.platform_min_version
$platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
-PrefixPackageName "platforms;" `
-MinimumVersion $platformMinVersion `
-Delimiter "-" `
-Index 1
# build-tools
[version]$buildToolsMinVersion = $androidToolset.build_tools_min_version
$buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
-PrefixPackageName "build-tools;" `
-MinimumVersion $buildToolsMinVersion `
-Delimiter ";" `
-Index 1
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager ` Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
-AndroidSDKRootPath $sdkRoot ` -AndroidSDKRootPath $sdkRoot `
-AndroidPackages $androidToolset.build_tools ` -AndroidPackages $platformList
-PrefixPackageName "build-tools;"
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
-AndroidSDKRootPath $sdkRoot `
-AndroidPackages $buildToolsList
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager ` Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
-AndroidSDKRootPath $sdkRoot ` -AndroidSDKRootPath $sdkRoot `
@@ -71,6 +80,7 @@ $ndkRoot = "C:\Program Files (x86)\Android\android-sdk\ndk-bundle"
if (Test-Path $ndkRoot) { if (Test-Path $ndkRoot) {
setx ANDROID_HOME $sdkRoot /M setx ANDROID_HOME $sdkRoot /M
setx ANDROID_SDK_ROOT $sdkRoot /M
setx ANDROID_NDK_HOME $ndkRoot /M setx ANDROID_NDK_HOME $ndkRoot /M
setx ANDROID_NDK_PATH $ndkRoot /M setx ANDROID_NDK_PATH $ndkRoot /M
} else { } else {

View File

@@ -16,18 +16,7 @@ function DockerPull {
} }
} }
if (Test-IsWin16) { $dockerToolset = (Get-ToolsetContent).docker
DockerPull mcr.microsoft.com/windows/servercore:ltsc2016 foreach($dockerImage in $dockerToolset.images) {
DockerPull mcr.microsoft.com/windows/nanoserver:10.0.14393.953 DockerPull $dockerImage
DockerPull mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016
DockerPull mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016
} }
if (Test-IsWin19) {
DockerPull mcr.microsoft.com/windows/servercore:ltsc2019
DockerPull mcr.microsoft.com/windows/nanoserver:1809
DockerPull mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
DockerPull mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
}
DockerPull microsoft/aspnetcore-build:1.0-2.0

View File

@@ -31,7 +31,6 @@ function Get-AndroidInstalledPackages {
return $androidInstalledPackages return $androidInstalledPackages
} }
function Build-AndroidTable { function Build-AndroidTable {
$packageInfo = Get-AndroidInstalledPackages $packageInfo = Get-AndroidInstalledPackages
return @( return @(

View File

@@ -1,3 +1,5 @@
$ErrorActionPreference = "Stop"
Import-Module MarkdownPS Import-Module MarkdownPS
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Android.psm1") -DisableNameChecking Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Android.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Browsers.psm1") -DisableNameChecking Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Browsers.psm1") -DisableNameChecking
@@ -72,7 +74,6 @@ $markdown += New-MDList -Style Unordered -Lines @(
$markdown += New-MDHeader "Tools" -Level 3 $markdown += New-MDHeader "Tools" -Level 3
$markdown += New-MDList -Style Unordered -Lines @( $markdown += New-MDList -Style Unordered -Lines @(
(Get-AzCosmosDBEmulatorVersion),
(Get-AzCopyVersion), (Get-AzCopyVersion),
(Get-BazelVersion), (Get-BazelVersion),
(Get-BazeliskVersion), (Get-BazeliskVersion),
@@ -89,15 +90,12 @@ $markdown += New-MDList -Style Unordered -Lines @(
(Get-KubectlVersion), (Get-KubectlVersion),
(Get-KindVersion), (Get-KindVersion),
(Get-MinGWVersion), (Get-MinGWVersion),
(Get-MySQLVersion),
(Get-MercurialVersion), (Get-MercurialVersion),
(Get-NSISVersion), (Get-NSISVersion),
(Get-NewmanVersion), (Get-NewmanVersion),
(Get-OpenSSLVersion), (Get-OpenSSLVersion),
(Get-PackerVersion), (Get-PackerVersion),
(Get-PulumiVersion), (Get-PulumiVersion),
(Get-SQLPSVersion),
(Get-SQLServerPSVersion),
(Get-SVNVersion), (Get-SVNVersion),
(Get-GHCVersion), (Get-GHCVersion),
(Get-CabalVersion), (Get-CabalVersion),
@@ -167,6 +165,14 @@ $markdown += New-MDHeader "Databases" -Level 3
$markdown += Build-DatabasesMarkdown $markdown += Build-DatabasesMarkdown
$markdown += New-MDNewLine $markdown += New-MDNewLine
$markdown += New-MDHeader "Database tools" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-AzCosmosDBEmulatorVersion),
(Get-SQLPSVersion),
(Get-MySQLVersion)
)
$markdown += New-MDNewLine
$vs = Get-VisualStudioVersion $vs = Get-VisualStudioVersion
$markdown += New-MDHeader "$($vs.Name)" -Level 3 $markdown += New-MDHeader "$($vs.Name)" -Level 3
$markdown += $vs | New-MDTable $markdown += $vs | New-MDTable
@@ -229,4 +235,8 @@ $markdown += New-MDHeader "Android" -Level 3
$markdown += Build-AndroidTable | New-MDTable $markdown += Build-AndroidTable | New-MDTable
$markdown += New-MDNewLine $markdown += New-MDNewLine
# Docker images section
$markdown += New-MDHeader "Cached Docker images" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(Get-CachedDockerImages)
$markdown | Out-File -FilePath "C:\InstalledSoftware.md" $markdown | Out-File -FilePath "C:\InstalledSoftware.md"

View File

@@ -34,7 +34,7 @@ function Get-CodeQLBundleVersion {
$CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "codeql" | Join-Path -ChildPath "*" $CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "codeql" | Join-Path -ChildPath "*"
$CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName $CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName
$CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe" $CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe"
$CodeQLVersion = $($CodeQLPath version --quiet) $CodeQLVersion = & $CodeQLPath version --quiet
return "CodeQL Action Bundle $CodeQLVersion" return "CodeQL Action Bundle $CodeQLVersion"
} }
@@ -125,12 +125,6 @@ function Get-SQLPSVersion {
return "SQLPS $version" return "SQLPS $version"
} }
function Get-SQLServerPSVersion {
$module = Get-Module -Name SQLServer -ListAvailable
$version = $module.Version
return "SQLServer PS $version"
}
function Get-SVNVersion { function Get-SVNVersion {
$svnVersion = $(svn --version --quiet) $svnVersion = $(svn --version --quiet)
return "Subversion (SVN) $svnVersion" return "Subversion (SVN) $svnVersion"

View File

@@ -2,16 +2,27 @@ Import-Module (Join-Path $PSScriptRoot "..\SoftwareReport\SoftwareReport.Android
Describe "Android SDK" { Describe "Android SDK" {
$androidToolset = (Get-ToolsetContent).android $androidToolset = (Get-ToolsetContent).android
$androidPackages = Get-AndroidPackages -AndroidSDKManagerPath (Get-AndroidSDKManagerPath)
$androidInstalledPackages = Get-AndroidInstalledPackages $androidInstalledPackages = Get-AndroidInstalledPackages
$platformTestCases = @() $platformTestCases = @()
$platformList = $androidToolset.platform_list [int]$platformMinVersion = $androidToolset.platform_min_version
$platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
-PrefixPackageName "platforms;" `
-MinimumVersion $platformMinVersion `
-Delimiter "-" `
-Index 1
$platformList | ForEach-Object { $platformList | ForEach-Object {
$platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages } $platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages }
} }
$buildToolsTestCases = @() $buildToolsTestCases = @()
$buildToolsList = $androidToolset.build_tools [version]$buildToolsMinVersion = $androidToolset.build_tools_min_version
$buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
-PrefixPackageName "build-tools;" `
-MinimumVersion $buildToolsMinVersion `
-Delimiter ";" `
-Index 1
$buildToolsList | ForEach-Object { $buildToolsList | ForEach-Object {
$buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages } $buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages }
} }
@@ -35,14 +46,14 @@ Describe "Android SDK" {
} }
It "Platform version <platformVersion> is installed" -TestCases $platformTestCases { It "Platform version <platformVersion> is installed" -TestCases $platformTestCases {
"$installedPackages" | Should -Match "platforms;$platformVersion" "$installedPackages" | Should -Match "$platformVersion"
} }
It "Platform build tools <buildToolsVersion> is installed" -TestCases $buildToolsTestCases { It "Platform build tools <buildToolsVersion> is installed" -TestCases $buildToolsTestCases {
"$installedPackages" | Should -Match "build-tools;$buildToolsVersion" "$installedPackages" | Should -Match "$buildToolsVersion"
} }
if (Test-isWin19) { if (Test-IsWin19) {
It "Extra package <extraPackage> is installed" -TestCases $extraPackagesTestCases { It "Extra package <extraPackage> is installed" -TestCases $extraPackagesTestCases {
"$installedPackages" | Should -Match "extras;$extraPackage" "$installedPackages" | Should -Match "extras;$extraPackage"
} }

View File

@@ -121,17 +121,14 @@
"3.8.0", "3.8.0",
"4.3.0", "4.3.0",
"4.4.0", "4.4.0",
"4.6.0" "4.6.0",
"4.7.0"
] ]
} }
], ],
"android": { "android": {
"platform_list": [ "platform_min_version": "19",
"android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19" "build_tools_min_version": "19.1.0",
],
"build_tools": [
"30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "22.0.1", "21.1.2", "20.0.0", "19.1.0"
],
"extra_list": [ "extra_list": [
"android;m2repository", "android;m2repository",
"google;m2repository", "google;m2repository",
@@ -230,5 +227,14 @@
], ],
"vsix": [ "vsix": [
] ]
},
"docker": {
"images": [
"mcr.microsoft.com/windows/servercore:ltsc2016",
"mcr.microsoft.com/windows/nanoserver:10.0.14393.953",
"mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016",
"mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016",
"microsoft/aspnetcore-build:1.0-2.0"
]
} }
} }

View File

@@ -130,17 +130,14 @@
"3.8.0", "3.8.0",
"4.3.0", "4.3.0",
"4.4.0", "4.4.0",
"4.6.0" "4.6.0",
"4.7.0"
] ]
} }
], ],
"android": { "android": {
"platform_list": [ "platform_min_version": "19",
"android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19" "build_tools_min_version": "19.1.0",
],
"build_tools": [
"30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "22.0.1", "21.1.2", "20.0.0", "19.1.0"
],
"extra_list": [ "extra_list": [
"android;m2repository", "android;m2repository",
"google;m2repository", "google;m2repository",
@@ -282,5 +279,14 @@
"id": "VSInstallerProjects" "id": "VSInstallerProjects"
} }
] ]
},
"docker": {
"images": [
"mcr.microsoft.com/windows/servercore:ltsc2019",
"mcr.microsoft.com/windows/nanoserver:1809",
"mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019",
"mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019",
"microsoft/aspnetcore-build:1.0-2.0"
]
} }
} }