Add macOS 12 image templates (#4062)

This commit is contained in:
Dmitry Shibanov
2021-09-24 13:56:16 +03:00
committed by GitHub
parent ee4eda5e99
commit bf1cae6dcf
20 changed files with 530 additions and 46 deletions

View File

@@ -0,0 +1,23 @@
name: macOS-12_$(date:yyyyMMdd)$(rev:.r)_unstable
# schedules:
# - cron: "0 0 * * *"
# displayName: Daily
# branches:
# include:
# - main
# always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- main
jobs:
- template: image-generation.yml
parameters:
image_label: 'macOS Monterey'
base_image_name: 'clean-macOS-12-380Gb-runner'
template_path: 'templates/macOS-12.json'
target_datastore: 'ds-image'

View File

@@ -28,6 +28,9 @@ function Get-EnvironmentVariable($variable) {
function Get-OSVersion { function Get-OSVersion {
$osVersion = [Environment]::OSVersion $osVersion = [Environment]::OSVersion
$osVersionMajorMinor = $osVersion.Version.ToString(2) $osVersionMajorMinor = $osVersion.Version.ToString(2)
# Monterey needs future review:
# [Environment]::OSVersion returns 11.0 for Monterey preview.
[SemVer]$osMontereyVersion = sw_vers -productVersion
return [PSCustomObject]@{ return [PSCustomObject]@{
Version = $osVersion.Version Version = $osVersion.Version
Platform = $osVersion.Platform Platform = $osVersion.Platform
@@ -35,9 +38,12 @@ function Get-OSVersion {
IsMojave = $osVersionMajorMinor -eq "10.14" IsMojave = $osVersionMajorMinor -eq "10.14"
IsCatalina = $osVersionMajorMinor -eq "10.15" IsCatalina = $osVersionMajorMinor -eq "10.15"
IsBigSur = $osVersionMajorMinor -eq "11.0" IsBigSur = $osVersionMajorMinor -eq "11.0"
IsMonterey = $osMontereyVersion.Major -eq "12"
IsLessThanCatalina = [SemVer]$osVersion.Version -lt "10.15" IsLessThanCatalina = [SemVer]$osVersion.Version -lt "10.15"
IsLessThanBigSur = [SemVer]$osVersion.Version -lt "11.0" IsLessThanBigSur = [SemVer]$osVersion.Version -lt "11.0"
IsLessThanMonterey = $osMontereyVersion -lt "12.0"
IsHigherThanMojave = [SemVer]$osVersion.Version -ge "10.15" IsHigherThanMojave = [SemVer]$osVersion.Version -ge "10.15"
IsHigherThanCatalina = [SemVer]$osVersion.Version -ge "11.0"
} }
} }

View File

@@ -12,7 +12,6 @@ export VM_ASSETS=/usr/local/opt/$USER/scripts
export NUNIT_BASE_PATH=/Library/Developer/nunit export NUNIT_BASE_PATH=/Library/Developer/nunit
export NUNIT3_PATH=/Library/Developer/nunit/3.6.0 export NUNIT3_PATH=/Library/Developer/nunit/3.6.0
export CONDA=/usr/local/miniconda
export AGENT_TOOLSDIRECTORY=$HOME/hostedtoolcache export AGENT_TOOLSDIRECTORY=$HOME/hostedtoolcache
export RUNNER_TOOL_CACHE=$HOME/hostedtoolcache export RUNNER_TOOL_CACHE=$HOME/hostedtoolcache
@@ -20,9 +19,6 @@ export PATH=/Library/Frameworks/Mono.framework/Versions/Current/Commands:$PATH
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_NDK_HOME:$PATH export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_NDK_HOME:$PATH
export PATH=/usr/local/bin:/usr/local/sbin:~/bin:~/.yarn/bin:$PATH export PATH=/usr/local/bin:/usr/local/sbin:~/bin:~/.yarn/bin:$PATH
export PATH="/usr/local/opt/curl/bin:$PATH" export PATH="/usr/local/opt/curl/bin:$PATH"
export PATH="/usr/local/opt/ruby@2.7/bin:$PATH"
GEM_PATH=`gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}'`
export PATH="$GEM_PATH:$PATH"
export PATH=$HOME/.cargo/bin:$PATH export PATH=$HOME/.cargo/bin:$PATH
export RCT_NO_LAUNCH_PACKAGER=1 export RCT_NO_LAUNCH_PACKAGER=1

View File

@@ -1,6 +1,9 @@
#!/bin/bash -e -o pipefail #!/bin/bash -e -o pipefail
source ~/utils/utils.sh source ~/utils/utils.sh
# Monterey needs future review:
# Llvm, aliyun-cli, gnupg, helm have issues with building from the source code.
# Added gmp for now, because toolcache ruby needs its libs. Remove it when php starts to build from source code.
common_packages=$(get_toolset_value '.brew.common_packages[]') common_packages=$(get_toolset_value '.brew.common_packages[]')
for package in $common_packages; do for package in $common_packages; do
echo "Installing $package..." echo "Installing $package..."

View File

@@ -14,7 +14,7 @@ echo "Installing jq..."
brew install jq brew install jq
echo "Installing curl..." echo "Installing curl..."
brew_smart_install "curl" brew install curl
echo "Installing wget..." echo "Installing wget..."
brew_smart_install "wget" brew_smart_install "wget"

View File

@@ -11,4 +11,6 @@ if [ -d "$HOME/.conda" ]; then
sudo chown -R $USER "$HOME/.conda" sudo chown -R $USER "$HOME/.conda"
fi fi
echo "export CONDA=/usr/local/miniconda" >> $HOME/.bashrc
invoke_tests "Common" "Miniconda" invoke_tests "Common" "Miniconda"

View File

@@ -4,6 +4,10 @@ source ~/utils/utils.sh
DEFAULT_RUBY_VERSION=$(get_toolset_value '.ruby.default') DEFAULT_RUBY_VERSION=$(get_toolset_value '.ruby.default')
echo Installing Ruby... echo Installing Ruby...
brew_smart_install "ruby@${DEFAULT_RUBY_VERSION}" brew_smart_install "ruby@${DEFAULT_RUBY_VERSION}"
export PATH=/usr/local/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
GEM_PATH=`gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}'`
echo "GEM_PATH=$GEM_PATH" >> "$HOME/.bashrc"
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> "$HOME/.bashrc"
#if High Sierra - skip installation from toolset #if High Sierra - skip installation from toolset
if is_HighSierra; then if is_HighSierra; then

View File

@@ -12,6 +12,10 @@ install_clt() {
clt_placeholder="/tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress" clt_placeholder="/tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress"
sudo touch $clt_placeholder sudo touch $clt_placeholder
cltPattern="Command Line Tools" cltPattern="Command Line Tools"
# Command Line Tools for Xcode 13.0 does not support macOS 12
if is_Monterey; then
cltPattern="Command Line Tools beta"
fi
clt_label_command="/usr/sbin/softwareupdate -l | clt_label_command="/usr/sbin/softwareupdate -l |
grep -B 1 -E '${cltPattern}' | grep -B 1 -E '${cltPattern}' |

View File

@@ -39,6 +39,14 @@ download_with_retries() {
return 1 return 1
} }
is_Monterey() {
if [ "$OSTYPE" = "darwin21" ]; then
true
else
false
fi
}
is_BigSur() { is_BigSur() {
if [ "$OSTYPE" = "darwin20" ]; then if [ "$OSTYPE" = "darwin20" ]; then
true true
@@ -87,6 +95,14 @@ is_Less_BigSur() {
fi fi
} }
is_Less_Monterey() {
if is_HighSierra || is_Mojave || is_Catalina || is_BigSur; then
true
else
false
fi
}
get_toolset_path() { get_toolset_path() {
echo "$HOME/image-generation/toolset.json" echo "$HOME/image-generation/toolset.json"
} }
@@ -124,6 +140,8 @@ get_brew_os_keyword() {
echo "catalina" echo "catalina"
elif is_BigSur; then elif is_BigSur; then
echo "big_sur" echo "big_sur"
elif is_Monterey; then
echo "monterey"
else else
echo "null" echo "null"
fi fi

View File

@@ -42,12 +42,17 @@ $languageAndRuntimeList = @(
(Get-RubyVersion), (Get-RubyVersion),
(Get-DotnetVersionList), (Get-DotnetVersionList),
(Get-GoVersion), (Get-GoVersion),
(Get-PHPVersion),
(Get-JuliaVersion), (Get-JuliaVersion),
(Get-KotlinVersion) (Get-KotlinVersion)
) )
if ( -not $os.IsHighSierra) { if ($os.IsLessThanMonterey) {
$languageAndRuntimeList += @(
(Get-PHPVersion)
)
}
if ( -not $os.IsHighSierra -and $os.IsLessThanMonterey) {
$languageAndRuntimeList += @( $languageAndRuntimeList += @(
(Get-GccVersion) (Get-GccVersion)
(Get-FortranVersion) (Get-FortranVersion)
@@ -72,28 +77,34 @@ $packageManagementList = @(
(Get-PipVersion -Version 3), (Get-PipVersion -Version 3),
(Get-PipxVersion), (Get-PipxVersion),
(Get-BundlerVersion), (Get-BundlerVersion),
(Get-CarthageVersion),
(Get-CocoaPodsVersion), (Get-CocoaPodsVersion),
(Get-HomebrewVersion), (Get-HomebrewVersion),
(Get-NPMVersion), (Get-NPMVersion),
(Get-YarnVersion), (Get-YarnVersion),
(Get-NuGetVersion), (Get-NuGetVersion),
(Get-CondaVersion),
(Get-RubyGemsVersion), (Get-RubyGemsVersion),
(Get-ComposerVersion) (Get-ComposerVersion)
) )
if ($os.IsHigherThanMojave) { if ($os.IsLessThanMonterey) {
$packageManagementList += @(
(Get-CarthageVersion),
(Get-CondaVersion)
)
}
if ($os.IsHigherThanMojave -and $os.IsLessThanMonterey) {
$packageManagementList += @( $packageManagementList += @(
(Get-VcpkgVersion) (Get-VcpkgVersion)
) )
} }
$markdown += New-MDList -Style Unordered -Lines ($packageManagementList | Sort-Object) $markdown += New-MDList -Style Unordered -Lines ($packageManagementList | Sort-Object)
if ($os.IsLessThanMonterey) {
$markdown += New-MDHeader "Environment variables" -Level 4 $markdown += New-MDHeader "Environment variables" -Level 4
$markdown += Build-PackageManagementEnvironmentTable | New-MDTable $markdown += Build-PackageManagementEnvironmentTable | New-MDTable
$markdown += New-MDNewLine $markdown += New-MDNewLine
}
# Project Management # Project Management
$markdown += New-MDHeader "Project Management" -Level 3 $markdown += New-MDHeader "Project Management" -Level 3
$markdown += New-MDList -Style Unordered -Lines (@( $markdown += New-MDList -Style Unordered -Lines (@(
@@ -117,7 +128,6 @@ $utilitiesList = @(
(Get-PackerVersion), (Get-PackerVersion),
(Get-OpenSSLVersion), (Get-OpenSSLVersion),
(Get-JqVersion), (Get-JqVersion),
(Get-GPGVersion),
(Get-PostgresClientVersion), (Get-PostgresClientVersion),
(Get-PostgresServerVersion), (Get-PostgresServerVersion),
(Get-Aria2Version), (Get-Aria2Version),
@@ -125,7 +135,6 @@ $utilitiesList = @(
(Get-ZstdVersion), (Get-ZstdVersion),
(Get-BazelVersion), (Get-BazelVersion),
(Get-BazeliskVersion), (Get-BazeliskVersion),
(Get-HelmVersion),
(Get-MongoVersion), (Get-MongoVersion),
(Get-MongodVersion), (Get-MongodVersion),
(Get-7zipVersion), (Get-7zipVersion),
@@ -133,7 +142,14 @@ $utilitiesList = @(
(Get-GnuTarVersion) (Get-GnuTarVersion)
) )
if ($os.IsHigherThanMojave) { if ($os.IsLessThanMonterey) {
$utilitiesList += @(
(Get-GPGVersion),
(Get-HelmVersion)
)
}
if ($os.IsHigherThanMojave -and $os.IsLessThanMonterey) {
$utilitiesList += @( $utilitiesList += @(
(Get-NewmanVersion) (Get-NewmanVersion)
) )
@@ -147,7 +163,7 @@ if ($os.IsLessThanBigSur) {
) )
} }
if (-not $os.IsHighSierra) { if (-not $os.IsHighSierra -and $os.IsLessThanMonterey) {
$utilitiesList += @( $utilitiesList += @(
(Get-SwitchAudioOsxVersion), (Get-SwitchAudioOsxVersion),
(Get-SoxVersion) (Get-SoxVersion)
@@ -166,8 +182,16 @@ $toolsList = @(
(Get-AzureCLIVersion), (Get-AzureCLIVersion),
(Get-AWSCLIVersion), (Get-AWSCLIVersion),
(Get-AWSSAMCLIVersion), (Get-AWSSAMCLIVersion),
(Get-AWSSessionManagerCLIVersion), (Get-AWSSessionManagerCLIVersion)
(Get-AliyunCLIVersion), )
if ($os.IsLessThanMonterey) {
$toolsList += @(
(Get-AliyunCLIVersion)
)
}
$toolsList += @(
(Get-XcodeCommandLineToolsVersion), (Get-XcodeCommandLineToolsVersion),
(Get-SwigVersion), (Get-SwigVersion),
(Get-BicepVersion) (Get-BicepVersion)
@@ -178,10 +202,14 @@ if( -not $os.IsHighSierra) {
(Get-GHCupVersion), (Get-GHCupVersion),
(Get-GHCVersion), (Get-GHCVersion),
(Get-CabalVersion), (Get-CabalVersion),
(Get-StackVersion), (Get-StackVersion)
)
if($os.IsLessThanMonterey) {
$toolsList += @(
(Get-SwiftFormatVersion) (Get-SwiftFormatVersion)
) )
} }
}
$markdown += New-MDList -Style Unordered -Lines ($toolsList | Sort-Object) $markdown += New-MDList -Style Unordered -Lines ($toolsList | Sort-Object)

View File

@@ -238,10 +238,13 @@ function Build-XcodeSupportToolsSection {
$nomadCLI = [regex]::matches($nomadOutput, "(\d+.){2}\d+").Value $nomadCLI = [regex]::matches($nomadOutput, "(\d+.){2}\d+").Value
$nomadShenzhenOutput = Run-Command "ipa -version" $nomadShenzhenOutput = Run-Command "ipa -version"
$nomadShenzhen = [regex]::matches($nomadShenzhenOutput, "(\d+.){2}\d+").Value $nomadShenzhen = [regex]::matches($nomadShenzhenOutput, "(\d+.){2}\d+").Value
if ($os.IsLessThanMonterey) {
$toolList += @( $toolList += @(
"Nomad CLI $nomadCLI", "Nomad CLI $nomadCLI",
"Nomad shenzhen CLI $nomadShenzhen" "Nomad shenzhen CLI $nomadShenzhen"
) )
}
if ($os.IsLessThanBigSur) { if ($os.IsLessThanBigSur) {
$xctool = Run-Command "xctool --version" $xctool = Run-Command "xctool --version"

View File

@@ -0,0 +1,227 @@
{
"variables": {
"vcenter_server": null,
"vcenter_username": null,
"vcenter_password": null,
"vcenter_datacenter": null,
"cluster_or_esxi_host": null,
"esxi_datastore": null,
"build_id": null,
"baseimage_name": null,
"output_folder": null,
"vm_username": null,
"vm_password": null,
"xcode_install_user": null,
"xcode_install_password": null,
"image_os": "macos12"
},
"builders": [
{
"type": "vsphere-clone",
"vcenter_server": "{{user `vcenter_server`}}",
"username": "{{user `vcenter_username`}}",
"password": "{{user `vcenter_password`}}",
"insecure_connection": true,
"datacenter": "{{ user `vcenter_datacenter` }}",
"template": "{{ user `baseimage_name` }}",
"folder": "{{user `output_folder` }}",
"host": "{{user `cluster_or_esxi_host`}}",
"datastore": "{{user `esxi_datastore`}}",
"vm_name": "{{user `build_id`}}",
"ssh_username": "{{user `vm_username`}}",
"ssh_password": "{{user `vm_password`}}",
"CPUs": "10",
"RAM": "24576",
"NestedHV": "true",
"shutdown_timeout": "15m"
}
],
"provisioners": [
{
"type": "shell",
"inline": "mkdir ~/image-generation"
},
{
"type": "file",
"source": "./provision/assets",
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "./tests",
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "./software-report",
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "./helpers",
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "./provision/configuration/add-certificate.swift",
"destination": "~/image-generation/add-certificate.swift"
},
{
"type": "file",
"source": "./provision/configuration/environment/bashrc",
"destination": "~/.bashrc"
},
{
"type": "file",
"source": "./provision/configuration/environment/bashprofile",
"destination": "~/.bash_profile"
},
{
"type": "file",
"source": "./provision/utils",
"destination": "~/"
},
{
"type": "file",
"source": "./provision/bootstrap-provisioner",
"destination": "~/bootstrap"
},
{
"type": "file",
"source": "./toolsets/toolset-12.json",
"destination": "~/image-generation/toolset.json"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
"scripts": [
"./provision/configuration/add-network-interface-detection.sh",
"./provision/configuration/autologin.sh",
"./provision/configuration/disable-auto-updates.sh",
"./provision/configuration/screensaver-off.sh",
"./provision/configuration/ntpconf.sh",
"./provision/configuration/max-files.sh",
"./provision/configuration/shell-change.sh"
],
"environment_vars": [
"PASSWORD={{user `vm_password`}}",
"USERNAME={{user `vm_username`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./provision/configuration/preimagedata.sh",
"./provision/configuration/configure-ssh.sh",
"./provision/core/xcode-clt.sh",
"./provision/configuration/configure-machine.sh"
],
"environment_vars": [
"IMAGE_VERSION={{user `build_id`}}",
"IMAGE_OS={{user `image_os`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
"script": "./provision/core/reboot.sh",
"expect_disconnect": true
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
"./provision/core/homebrew.sh",
"./provision/core/powershell.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
"./provision/core/azcopy.sh",
"./provision/core/openssl.sh",
"./provision/core/ruby.sh",
"./provision/core/rubygem.sh",
"./provision/core/git.sh",
"./provision/core/node.sh"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
"script": "./provision/core/xcode.ps1",
"environment_vars": [
"XCODE_INSTALL_USER={{user `xcode_install_user`}}",
"XCODE_INSTALL_PASSWORD={{user `xcode_install_password`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
"script": "./provision/core/reboot.sh",
"expect_disconnect": true
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./provision/core/commonutils.sh",
"./provision/core/golang.sh",
"./provision/core/swiftlint.sh",
"./provision/core/openjdk.sh",
"./provision/core/aws.sh",
"./provision/core/rust.sh",
"./provision/core/haskell.sh",
"./provision/core/stack.sh",
"./provision/core/cocoapods.sh",
"./provision/core/android-toolsets.sh",
"./provision/core/xamarin.sh",
"./provision/core/vsmac.sh",
"./provision/core/nvm.sh",
"./provision/core/apache.sh",
"./provision/core/nginx.sh",
"./provision/core/postgresql.sh",
"./provision/core/mongodb.sh",
"./provision/core/safari.sh",
"./provision/core/chrome.sh",
"./provision/core/edge.sh",
"./provision/core/firefox.sh",
"./provision/core/pypy.sh",
"./provision/core/pipx-packages.sh",
"./provision/core/bicep.sh"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
"scripts": "./provision/core/toolset.ps1"
},
{
"type": "shell",
"execute_command": "ruby {{ .Path }}",
"scripts": [
"./provision/core/delete-duplicate-sims.rb"
]
},
{
"type": "shell",
"inline": [
"pwsh -File \"$HOME/image-generation/software-report/SoftwareReport.Generator.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName {{user `build_id`}}",
"pwsh -File \"$HOME/image-generation/tests/RunAll-Tests.ps1\""
]
},
{
"type": "file",
"direction": "download",
"source": "~/image-generation/output/*",
"destination": "../image-output/"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./provision/configuration/configure-hostname.sh",
"./provision/configuration/finalize-vm.sh"
]
}
]
}

View File

@@ -89,7 +89,7 @@ Describe "Android" {
} }
} }
It "HAXM is installed" -Skip:($os.IsBigSur) { It "HAXM is installed" -Skip:($os.IsHigherThanCatalina) {
"kextstat | grep 'com.intel.kext.intelhaxm'" | Should -ReturnZeroExitCode "kextstat | grep 'com.intel.kext.intelhaxm'" | Should -ReturnZeroExitCode
} }
} }

View File

@@ -6,7 +6,7 @@ Describe "Azure CLI" {
} }
} }
Describe "Carthage" { Describe "Carthage" -Skip:($os.IsMonterey) {
It "Carthage" { It "Carthage" {
"carthage version" | Should -ReturnZeroExitCode "carthage version" | Should -ReturnZeroExitCode
} }
@@ -24,20 +24,20 @@ Describe "Subversion" {
} }
} }
Describe "SwiftFormat" { Describe "SwiftFormat" -Skip:($os.IsMonterey) {
It "SwiftFormat" { It "SwiftFormat" {
"swiftformat --version" | Should -ReturnZeroExitCode "swiftformat --version" | Should -ReturnZeroExitCode
} }
} }
Describe "GnuPG" { Describe "GnuPG" -Skip:($os.IsMonterey) {
It "GnuPG" { It "GnuPG" {
"gpg --version" | Should -ReturnZeroExitCode "gpg --version" | Should -ReturnZeroExitCode
} }
} }
Describe "Clang/LLVM" { Describe "Clang/LLVM" -Skip:($os.IsMonterey) {
It "Clang/LLVM is installed" { It "Clang/LLVM is installed" {
"$(brew --prefix llvm)/bin/clang --version" | Should -ReturnZeroExitCode "$(brew --prefix llvm)/bin/clang --version" | Should -ReturnZeroExitCode
} }
@@ -61,7 +61,7 @@ Describe "Perl" {
} }
} }
Describe "Helm" { Describe "Helm" -Skip:($os.IsMonterey) {
It "Helm" { It "Helm" {
"helm version --short" | Should -ReturnZeroExitCode "helm version --short" | Should -ReturnZeroExitCode
} }
@@ -109,7 +109,7 @@ Describe "bazel" {
} }
} }
Describe "Aliyun CLI" { Describe "Aliyun CLI" -Skip:($os.IsMonterey) {
It "Aliyun CLI" { It "Aliyun CLI" {
"aliyun --version" | Should -ReturnZeroExitCode "aliyun --version" | Should -ReturnZeroExitCode
} }
@@ -139,25 +139,25 @@ Describe "wget" {
} }
} }
Describe "vagrant" -Skip:($os.IsBigSur) { Describe "vagrant" -Skip:($os.IsHigherThanCatalina) {
It "vagrant" { It "vagrant" {
"vagrant --version" | Should -ReturnZeroExitCode "vagrant --version" | Should -ReturnZeroExitCode
} }
} }
Describe "virtualbox" -Skip:($os.IsBigSur) { Describe "virtualbox" -Skip:($os.IsHigherThanCatalina) {
It "virtualbox" { It "virtualbox" {
"vboxmanage -v" | Should -ReturnZeroExitCode "vboxmanage -v" | Should -ReturnZeroExitCode
} }
} }
Describe "xctool" -Skip:($os.IsBigSur) { Describe "xctool" -Skip:($os.IsHigherThanCatalina) {
It "xctool" { It "xctool" {
"xctool --version" | Should -ReturnZeroExitCode "xctool --version" | Should -ReturnZeroExitCode
} }
} }
Describe "R" -Skip:($os.IsBigSur) { Describe "R" -Skip:($os.IsHigherThanCatalina) {
It "R" { It "R" {
"R --version" | Should -ReturnZeroExitCode "R --version" | Should -ReturnZeroExitCode
} }

View File

@@ -9,7 +9,7 @@ Describe ".NET" {
} }
} }
Describe "GCC" -Skip:($os.IsHighSierra) { Describe "GCC" -Skip:($os.IsHighSierra -or $os.IsMonterey) {
$testCases = Get-ToolsetValue -KeyPath gcc.versions | ForEach-Object { @{Version = $_} } $testCases = Get-ToolsetValue -KeyPath gcc.versions | ForEach-Object { @{Version = $_} }
It "GCC <Version>" -TestCases $testCases { It "GCC <Version>" -TestCases $testCases {
@@ -33,7 +33,7 @@ Describe "GCC" -Skip:($os.IsHighSierra) {
} }
} }
Describe "vcpkg" -Skip:($os.IsHighSierra -or $os.IsMojave) { Describe "vcpkg" -Skip:($os.IsHighSierra -or $os.IsMojave -or $os.IsMonterey) {
It "vcpkg" { It "vcpkg" {
"vcpkg version" | Should -ReturnZeroExitCode "vcpkg version" | Should -ReturnZeroExitCode
} }
@@ -58,7 +58,7 @@ Describe "AzCopy" {
} }
} }
Describe "Miniconda" { Describe "Miniconda" -Skip:($os.IsMonterey) {
It "Conda" { It "Conda" {
Get-EnvironmentVariable "CONDA" | Should -Not -BeNullOrEmpty Get-EnvironmentVariable "CONDA" | Should -Not -BeNullOrEmpty
$condaBinPath = Join-Path $env:CONDA "bin" "conda" $condaBinPath = Join-Path $env:CONDA "bin" "conda"

View File

@@ -1,4 +1,6 @@
Describe "PHP" { $os = Get-OSVersion
Describe "PHP" -Skip:($os.IsMonterey) {
Context "PHP" { Context "PHP" {
It "PHP Path" { It "PHP Path" {
Get-WhichTool "php" | Should -Not -BeLike "/usr/bin/php*" Get-WhichTool "php" | Should -Not -BeLike "/usr/bin/php*"

View File

@@ -1,3 +1,5 @@
$os = Get-OSVersion
Describe "RubyGems" { Describe "RubyGems" {
$gemTestCases = Get-ToolsetValue -KeyPath "ruby.rubygems" | ForEach-Object { $gemTestCases = Get-ToolsetValue -KeyPath "ruby.rubygems" | ForEach-Object {
@{gemName = $_} @{gemName = $_}
@@ -17,7 +19,7 @@ Describe "Bundler" {
} }
} }
Describe "Nomad shenzhen CLI" { Describe "Nomad shenzhen CLI" -Skip:($os.IsMonterey) {
It "Nomad shenzhen CLI" { It "Nomad shenzhen CLI" {
"ipa --version" | Should -ReturnZeroExitCode "ipa --version" | Should -ReturnZeroExitCode
} }

View File

@@ -17,7 +17,7 @@ Describe "Certificate" {
} }
} }
Describe "Audio device" -Skip:($os.IsHighSierra) { Describe "Audio device" -Skip:($os.IsHighSierra -or $os.IsMonterey) {
It "Sox is installed" { It "Sox is installed" {
"sox --version" | Should -ReturnZeroExitCode "sox --version" | Should -ReturnZeroExitCode
} }
@@ -26,7 +26,7 @@ Describe "Audio device" -Skip:($os.IsHighSierra) {
"SwitchAudioSource -c" | Should -ReturnZeroExitCode "SwitchAudioSource -c" | Should -ReturnZeroExitCode
} }
It "Audio channel Soundflower (2ch)" -Skip:($os.IsBigSur) { It "Audio channel Soundflower (2ch)" -Skip:($os.IsHigherThanCatalina) {
SwitchAudioSource -c | Should -BeLikeExactly "Soundflower (2ch)" SwitchAudioSource -c | Should -BeLikeExactly "Soundflower (2ch)"
} }

View File

@@ -11,7 +11,7 @@ Describe "Xamarin NDK" {
$ANDROID_SDK_DIR = Join-Path $env:HOME "Library" "Android" "sdk" $ANDROID_SDK_DIR = Join-Path $env:HOME "Library" "Android" "sdk"
} }
Context "Xamarin NDK toolchains" -Skip:($os.IsBigSur) { Context "Xamarin NDK toolchains" -Skip:($os.IsHigherThanCatalina) {
$testCases = $androidNdkToolchains | ForEach-Object { @{AndroidNdkToolchain = $_} } $testCases = $androidNdkToolchains | ForEach-Object { @{AndroidNdkToolchain = $_} }
It "<AndroidNdkToolchain>" -TestCases $testCases { It "<AndroidNdkToolchain>" -TestCases $testCases {
@@ -22,7 +22,7 @@ Describe "Xamarin NDK" {
} }
} }
Context "Xamarin Legacy NDK versions" -Skip:($os.IsBigSur) { Context "Xamarin Legacy NDK versions" -Skip:($os.IsHigherThanCatalina) {
It "Android NDK version r18b is installed" { It "Android NDK version r18b is installed" {
$ndk18BundlePath = Join-Path $ANDROID_SDK_DIR "ndk" "18.1.5063045" "source.properties" $ndk18BundlePath = Join-Path $ANDROID_SDK_DIR "ndk" "18.1.5063045" "source.properties"
$rawContent = Get-Content $ndk18BundlePath -Raw $rawContent = Get-Content $ndk18BundlePath -Raw

View File

@@ -0,0 +1,166 @@
{
"xcode": {
"default": "13.0",
"versions": [
{ "link": "13.0", "version": "13.0.0"}
]
},
"xamarin": {
"vsmac": "latest",
"mono-versions": [
"6.12.0.125"
],
"ios-versions": [
"14.20.0.24"
],
"mac-versions": [
"7.14.0.24"
],
"android-versions": [
"11.3.0.4"
],
"bundle-default": "6_12_9",
"bundles": [
{
"symlink": "6_12_9",
"mono":"6.12",
"ios": "14.20",
"mac": "7.14",
"android": "11.3"
}
]
},
"java": {
"default": "8",
"versions": [
"8", "11"
]
},
"android": {
"platform_min_version": "27",
"build_tools_min_version": "27.0.0",
"extra-list": [
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager"
],
"addon-list": [],
"additional-tools": [
"cmake;3.18.1"
],
"ndk": {
"default": "21",
"versions": [
"21", "22", "23"
]
}
},
"powershellModules": [
{ "name": "Az" },
{ "name": "MarkdownPS" },
{ "name": "Pester" },
{ "name": "PSScriptAnalyzer" }
],
"npm": {
"global_packages": []
},
"brew": {
"common_packages": [
"ant",
"aria2",
"azure-cli",
"bazelisk",
"cmake",
"gh",
"gnu-tar",
"kotlin",
"libpq",
"p7zip",
"packer",
"perl",
"sbt",
"subversion",
"swig",
"zstd",
"gmp"
],
"cask_packages": [
"julia"
]
},
"toolcache": [
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "darwin",
"versions": [
"3.7.*",
"3.8.*",
"3.9.*"
]
},
{
"name": "PyPy",
"arch": "x64",
"platform" : "darwin",
"versions": [
"2.7",
"3.7"
]
},
{
"name": "Node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json",
"platform" : "darwin",
"arch": "x64",
"versions": [
"10.*",
"12.*",
"14.*"
]
},
{
"name": "Go",
"url" : "https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "darwin",
"versions": [
"1.15.*",
"1.16.*",
"1.17.*"
]
},
{
"name": "Ruby",
"arch": "x64",
"versions": [
"2.7.*",
"3.0.*"
]
}
],
"pipx": [
{
"package": "yamllint",
"cmd": "yamllint --version"
}
],
"dotnet": {
"versions": [
"3.1",
"5.0"
]
},
"ruby": {
"default": "3.0",
"rubygems": [
"xcode-install",
"cocoapods",
"xcpretty",
"bundler",
"fastlane"
]
},
"go": {
"default": "1.17"
}
}