Merge pull request #3 from actions/master

update master
This commit is contained in:
Dibir Magomedsaygitov
2020-05-11 13:49:25 +03:00
committed by GitHub
35 changed files with 464 additions and 539 deletions
@@ -40,7 +40,7 @@ apt-fast install -y --no-install-recommends \
zip \ zip \
zstd zstd
# Electron / VSCode / GitHub Desktop prereqs # Electron / VSCode / GitHub Desktop / kubectl prereqs
apt-fast install -y --no-install-recommends \ apt-fast install -y --no-install-recommends \
libxkbfile-dev \ libxkbfile-dev \
pkg-config \ pkg-config \
@@ -57,7 +57,8 @@ apt-fast install -y --no-install-recommends \
rpm \ rpm \
xz-utils \ xz-utils \
xorriso \ xorriso \
zsync zsync \
gnupg2
# 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"
@@ -99,3 +100,4 @@ DocumentInstalledItemIndent "upx"
DocumentInstalledItemIndent "wget" DocumentInstalledItemIndent "wget"
DocumentInstalledItemIndent "zip" DocumentInstalledItemIndent "zip"
DocumentInstalledItemIndent "zstd" DocumentInstalledItemIndent "zstd"
DocumentInstalledItemIndent "gnupg2"
@@ -1,40 +0,0 @@
#!/bin/bash
################################################################################
## File: kubernetes-tools.sh
## Desc: Installs kubectl, helm
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/apt.sh
## Install kubectl
apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
touch /etc/apt/sources.list.d/kubernetes.list
echo "deb http://apt.kubernetes.io/ kubernetes-$(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubectl
# Install Helm
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
# Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work"
if ! command -v kubectl; then
echo "kubectl was not installed"
exit 1
fi
if ! command -v helm; then
echo "helm was not installed"
exit 1
fi
echo "Initializing helm"
helm init --client-only
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "kubectl ($(kubectl version --short |& head -n 1))"
DocumentInstalledItem "helm ($(helm version --short |& head -n 1))"
@@ -130,6 +130,9 @@ apt-get install -y --no-install-recommends curl
echo "Install parallel" echo "Install parallel"
apt-get install -y --no-install-recommends parallel apt-get install -y --no-install-recommends parallel
echo "Install gnupg2"
apt-get install -y --no-install-recommends gnupg2
# Run tests to determine that the software installed as expected # 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 curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet time unzip wget zip; do for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet time unzip wget zip; do
@@ -168,3 +171,4 @@ DocumentInstalledItemIndent "upx"
DocumentInstalledItemIndent "wget" DocumentInstalledItemIndent "wget"
DocumentInstalledItemIndent "zip" DocumentInstalledItemIndent "zip"
DocumentInstalledItemIndent "zstd" DocumentInstalledItemIndent "zstd"
DocumentInstalledItemIndent "gnupg2"
@@ -53,3 +53,4 @@ foreach ($tool in $tools) {
} }
chown -R "$($env:SUDO_USER):$($env:SUDO_USER)" /opt/hostedtoolcache/Python chown -R "$($env:SUDO_USER):$($env:SUDO_USER)" /opt/hostedtoolcache/Python
chown -R "$($env:SUDO_USER):$($env:SUDO_USER)" /opt/hostedtoolcache/node
@@ -26,7 +26,10 @@ function Run-ExecutableTests {
$ErrorActionPreference = "Stop" $ErrorActionPreference = "Stop"
# Define executables for cached tools # Define executables for cached tools
$toolsExecutables = @{ Python = @("python", "bin/pip") } $toolsExecutables = @{
Python = @("python", "bin/pip");
node = @("bin/node", "bin/npm")
}
# Get toolset content # Get toolset content
$toolsetJson = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw $toolsetJson = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw
@@ -17,3 +17,9 @@ Dpkg::Options {
"--force-confold"; "--force-confold";
} }
EOF EOF
# hide information about packages that are no longer required
cat <<EOF >> /etc/apt/apt.conf.d/10apt-autoremove
APT::Get::AutomaticRemove "0";
APT::Get::HideAutoRemove "1";
EOF
@@ -9,12 +9,11 @@ source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/apt.sh source $HELPER_SCRIPTS/apt.sh
## Install kubectl ## Install kubectl
apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
touch /etc/apt/sources.list.d/kubernetes.list touch /etc/apt/sources.list.d/kubernetes.list
# Based on https://kubernetes.io/docs/tasks/tools/install-kubectl/, package is still called xenial # Based on https://kubernetes.io/docs/tasks/tools/install-kubectl/, package is xenial for both OS versions.
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list
apt-get update apt-get update
apt-get install -y kubectl apt-get install -y kubectl
@@ -33,10 +32,7 @@ if ! command -v helm; then
exit 1 exit 1
fi fi
echo "Initializing helm"
helm init --client-only
# Document what was added to the image # Document what was added to the image
echo "Lastly, documenting what we added to the metadata file" echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "kubectl ($(kubectl version --short |& head -n 1))" DocumentInstalledItem "kubectl ($(kubectl version --client --short |& head -n 1))"
DocumentInstalledItem "helm ($(helm version --short |& head -n 1))" DocumentInstalledItem "helm ($(helm version --short |& head -n 1))"
+12
View File
@@ -13,6 +13,18 @@
"3.7.*", "3.7.*",
"3.8.*" "3.8.*"
] ]
},
{
"name": "node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json",
"platform" : "linux",
"arch": "x64",
"versions": [
"8.*",
"10.*",
"12.*",
"14.*"
]
} }
] ]
} }
+12
View File
@@ -13,6 +13,18 @@
"3.7.*", "3.7.*",
"3.8.*" "3.8.*"
] ]
},
{
"name": "node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json",
"platform" : "linux",
"arch": "x64",
"versions": [
"8.*",
"10.*",
"12.*",
"14.*"
]
} }
] ]
} }
+7 -7
View File
@@ -204,7 +204,7 @@
"{{template_dir}}/scripts/installers/image-magick.sh", "{{template_dir}}/scripts/installers/image-magick.sh",
"{{template_dir}}/scripts/installers/java-tools.sh", "{{template_dir}}/scripts/installers/java-tools.sh",
"{{template_dir}}/scripts/installers/kind.sh", "{{template_dir}}/scripts/installers/kind.sh",
"{{template_dir}}/scripts/installers/1604/kubernetes-tools.sh", "{{template_dir}}/scripts/installers/kubernetes-tools.sh",
"{{template_dir}}/scripts/installers/leiningen.sh", "{{template_dir}}/scripts/installers/leiningen.sh",
"{{template_dir}}/scripts/installers/1604/mercurial.sh", "{{template_dir}}/scripts/installers/1604/mercurial.sh",
"{{template_dir}}/scripts/installers/miniconda.sh", "{{template_dir}}/scripts/installers/miniconda.sh",
@@ -324,12 +324,6 @@
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
}, },
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
]
},
{ {
"type": "file", "type": "file",
"source": "{{user `metadata_file`}}", "source": "{{user `metadata_file`}}",
@@ -345,6 +339,12 @@
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
}, },
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
]
},
{ {
"type": "file", "type": "file",
"source": "{{template_dir}}/config/ubuntu1604.conf", "source": "{{template_dir}}/config/ubuntu1604.conf",
+7 -7
View File
@@ -207,7 +207,7 @@
"{{template_dir}}/scripts/installers/image-magick.sh", "{{template_dir}}/scripts/installers/image-magick.sh",
"{{template_dir}}/scripts/installers/java-tools.sh", "{{template_dir}}/scripts/installers/java-tools.sh",
"{{template_dir}}/scripts/installers/kind.sh", "{{template_dir}}/scripts/installers/kind.sh",
"{{template_dir}}/scripts/installers/1804/kubernetes-tools.sh", "{{template_dir}}/scripts/installers/kubernetes-tools.sh",
"{{template_dir}}/scripts/installers/leiningen.sh", "{{template_dir}}/scripts/installers/leiningen.sh",
"{{template_dir}}/scripts/installers/1804/mercurial.sh", "{{template_dir}}/scripts/installers/1804/mercurial.sh",
"{{template_dir}}/scripts/installers/miniconda.sh", "{{template_dir}}/scripts/installers/miniconda.sh",
@@ -328,12 +328,6 @@
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
}, },
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
]
},
{ {
"type": "file", "type": "file",
"source": "{{user `metadata_file`}}", "source": "{{user `metadata_file`}}",
@@ -349,6 +343,12 @@
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
}, },
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
]
},
{ {
"type": "file", "type": "file",
"source": "{{template_dir}}/config/ubuntu1804.conf", "source": "{{template_dir}}/config/ubuntu1804.conf",
+29 -25
View File
@@ -2,7 +2,7 @@
- System Version: macOS 10.15.4 (19E287) - System Version: macOS 10.15.4 (19E287)
- Kernel Version: Darwin 19.4.0 - Kernel Version: Darwin 19.4.0
- System Integrity Protection: Enabled - System Integrity Protection: Enabled
- Image Version: 20200425.1 - Image Version: 20200430.1
# Installed Software # Installed Software
## Language and Runtime ## Language and Runtime
@@ -18,9 +18,9 @@
- gcc-9 (Homebrew GCC 9.3.0_1) 9.3.0 - gcc-9 (Homebrew GCC 9.3.0_1) 9.3.0
- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 - GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0
- GNU Fortran (Homebrew GCC 9.3.0_1) 9.3.0 - GNU Fortran (Homebrew GCC 9.3.0_1) 9.3.0
- Node.js v12.16.2 - Node.js v12.16.3
- NVM 0.33.11 - NVM 0.33.11
- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.2 v13.13.0 - NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.3 v13.14.0
- PowerShell 7.0.0 - PowerShell 7.0.0
- Python 2.7.17 - Python 2.7.17
- Python 3.7.7 - Python 3.7.7
@@ -36,7 +36,7 @@
- Bundler version 2.1.4 - Bundler version 2.1.4
- Carthage 0.34.0 - Carthage 0.34.0
- CocoaPods 1.9.1 - CocoaPods 1.9.1
- Homebrew 2.2.13 - Homebrew 2.2.14
- NPM 6.14.4 - NPM 6.14.4
- Yarn 1.22.4 - Yarn 1.22.4
- NuGet 5.5.0.6382 - NuGet 5.5.0.6382
@@ -50,7 +50,7 @@
- Gradle 6.3 - Gradle 6.3
## Utilities ## Utilities
- Curl 7.69.1 - Curl 7.70.0
- Git: 2.26.2 - Git: 2.26.2
- Git LFS: 2.10.0 - Git LFS: 2.10.0
- Hub CLI: 2.14.2 - Hub CLI: 2.14.2
@@ -74,20 +74,20 @@
## Tools ## Tools
- Fastlane 2.146.1 - Fastlane 2.146.1
- Cmake 3.17.1 - Cmake 3.17.2
- App Center CLI 2.5.0 - App Center CLI 2.5.0
- Azure CLI 2.4.0 - Azure CLI 2.5.1
- AWS CLI 2.0.9 - AWS CLI 2.0.10
- AWS SAM CLI 0.47.0 - AWS SAM CLI 0.48.0
- Aliyun CLI 3.0.39 - Aliyun CLI 3.0.39
## Browsers ## Browsers
- Safari 13.1 (15609.1.20.111.8) - Safari 13.1 (15609.1.20.111.8)
- SafariDriver 13.1 (15609.1.20.111.8) - SafariDriver 13.1 (15609.1.20.111.8)
- Google Chrome 81.0.4044.122 - Google Chrome 81.0.4044.129
- ChromeDriver 81.0.4044.69 - ChromeDriver 81.0.4044.69
- Microsoft Edge 81.0.416.64 - Microsoft Edge 81.0.416.68
- MSEdgeDriver 81.0.416.64 - MSEdgeDriver 81.0.416.68
- Mozilla Firefox 75.0 - Mozilla Firefox 75.0
- geckodriver 0.26.0 - geckodriver 0.26.0
@@ -99,10 +99,10 @@
- 2.7.1 - 2.7.1
### Python ### Python
- 2.7.17 - 2.7.18
- 3.5.9 - 3.5.9
- 3.6.10 - 3.6.10
- 3.7.6 - 3.7.7
- 3.8.2 - 3.8.2
### PyPy ### PyPy
@@ -146,7 +146,8 @@
## Xcode ## Xcode
| Version | Build | Path | | Version | Build | Path |
| ---------------- | ------- | ------------------------------ | | ---------------- | ------- | --------------------------------- |
| 11.5 (beta) | 11N605c | /Applications/Xcode_11.5_beta.app |
| 11.4.1 (default) | 11E503a | /Applications/Xcode_11.4.1.app | | 11.4.1 (default) | 11E503a | /Applications/Xcode_11.4.1.app |
| 11.4 | 11E146 | /Applications/Xcode_11.4.app | | 11.4 | 11E146 | /Applications/Xcode_11.4.app |
| 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app | | 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app |
@@ -166,36 +167,38 @@
### 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, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1 | | macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1, 11.5 |
| 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 |
| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | | iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 | | iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 |
| iOS 13.5 | iphoneos13.5 | 11.5 |
| 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 |
| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | | Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 | | Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 |
| Simulator - iOS 13.5 | iphonesimulator13.5 | 11.5 |
| 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, 11.2.1, 11.3, 11.3.1 | | tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1 | | tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1, 11.5 |
| 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, 11.2.1, 11.3, 11.3.1 | | Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1 | | Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1, 11.5 |
| 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, 11.2.1, 11.3, 11.3.1 | | watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
| watchOS 6.2 | watchos6.2 | 11.4, 11.4.1 | | watchOS 6.2 | watchos6.2 | 11.4, 11.4.1, 11.5 |
| 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, 11.2.1, 11.3, 11.3.1 | | Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1 | | Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5 |
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1 | | DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1, 11.5 |
### Installed Simulators ### Installed Simulators
| OS | Xcode Version | Simulators | | OS | Xcode Version | Simulators |
@@ -205,16 +208,17 @@
| 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.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.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.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) | | 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>iPhone SE (2nd generation)<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) |
| iOS 13.5 | 11.5 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone SE (2nd generation)<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) |
| 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<br>11.2.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.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) | | tvOS 13.4 | 11.4<br>11.4.1<br>11.5 | 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<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.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 | | watchOS 6.2 | 11.4<br>11.4.1<br>11.5 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
## Android ## Android
### Android SDK Tools ### Android SDK Tools
+6
View File
@@ -944,6 +944,12 @@
"{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1" "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1"
] ]
}, },
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1"
]
},
{ {
"type": "powershell", "type": "powershell",
"inline": [ "inline": [
+6
View File
@@ -947,6 +947,12 @@
"{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1" "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1"
] ]
}, },
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1"
]
},
{ {
"type": "powershell", "type": "powershell",
"inline": [ "inline": [
@@ -14,6 +14,7 @@ Export-ModuleMember -Function @(
'Get-SystemVariable' 'Get-SystemVariable'
'Set-SystemVariable' 'Set-SystemVariable'
'Install-Binary' 'Install-Binary'
'Install-VisualStudio'
'Get-ToolcachePackages' 'Get-ToolcachePackages'
'Get-ToolsetContent' 'Get-ToolsetContent'
'Get-ToolsByName' 'Get-ToolsByName'
@@ -20,7 +20,8 @@ function Install-Binary
Install-Binary -Url "https://go.microsoft.com/fwlink/p/?linkid=2083338" -Name "winsdksetup.exe" -ArgumentList ("/features", "+", "/quiet") Install-Binary -Url "https://go.microsoft.com/fwlink/p/?linkid=2083338" -Name "winsdksetup.exe" -ArgumentList ("/features", "+", "/quiet")
#> #>
Param ( Param
(
[Parameter(Mandatory)] [Parameter(Mandatory)]
[String] $Url, [String] $Url,
[Parameter(Mandatory)] [Parameter(Mandatory)]
@@ -62,6 +63,68 @@ function Install-Binary
} }
} }
Function Install-VisualStudio
{
<#
.SYNOPSIS
A helper function to install Visual Studio.
.DESCRIPTION
Prepare system environment, and install Visual Studio bootstrapper with selected workloads.
.PARAMETER BootstrapperUrl
The URL from which the bootstrapper will be downloaded. Required parameter.
.PARAMETER WorkLoads
The string that contain workloads that will be passed to the installer.
#>
Param
(
[Parameter(Mandatory)]
[String] $BootstrapperUrl,
[String] $WorkLoads
)
Write-Host "Downloading Bootstrapper ..."
$BootstrapperName = [IO.Path]::GetFileName($BootstrapperUrl)
$bootstrapperFilePath = Start-DownloadWithRetry -Url $BootstrapperUrl -Name $BootstrapperName
try
{
Write-Host "Enable short name support on Windows needed for Xamarin Android AOT, defaults appear to have been changed in Azure VMs"
$shortNameEnableProcess = Start-Process -FilePath fsutil.exe -ArgumentList ('8dot3name', 'set', '0') -Wait -PassThru
$shortNameEnableExitCode = $shortNameEnableProcess.ExitCode
if ($shortNameEnableExitCode -ne 0)
{
Write-Host "Enabling short name support on Windows failed. This needs to be enabled prior to VS 2017 install for Xamarin Andriod AOT to work."
exit $shortNameEnableExitCode
}
Write-Host "Starting Install ..."
$bootstrapperArgumentList = ('/c', $bootstrapperFilePath, $WorkLoads, '--quiet', '--norestart', '--wait', '--nocache' )
$process = Start-Process -FilePath cmd.exe -ArgumentList $bootstrapperArgumentList -Wait -PassThru
$exitCode = $process.ExitCode
if ($exitCode -eq 0 -or $exitCode -eq 3010)
{
Write-Host "Installation successful"
return $exitCode
}
else
{
Write-Host "Non zero exit code returned by the installation process : $exitCode"
exit $exitCode
}
}
catch
{
Write-Host "Failed to install Visual Studio; $($_.Exception.Message)"
exit -1
}
}
function Stop-SvcWithErrHandling function Stop-SvcWithErrHandling
{ {
<# <#
@@ -74,7 +137,8 @@ function Stop-SvcWithErrHandling
.PARAMETER StopOnError .PARAMETER StopOnError
Switch for stopping the script and exit from PowerShell if one service is absent Switch for stopping the script and exit from PowerShell if one service is absent
#> #>
param ( param
(
[Parameter(Mandatory, ValueFromPipeLine = $true)] [Parameter(Mandatory, ValueFromPipeLine = $true)]
[string] $ServiceName, [string] $ServiceName,
[switch] $StopOnError [switch] $StopOnError
@@ -123,7 +187,8 @@ function Set-SvcWithErrHandling
Hashtable for service arguments Hashtable for service arguments
#> #>
param ( param
(
[Parameter(Mandatory, ValueFromPipeLine = $true)] [Parameter(Mandatory, ValueFromPipeLine = $true)]
[string] $ServiceName, [string] $ServiceName,
[Parameter(Mandatory)] [Parameter(Mandatory)]
@@ -152,7 +217,8 @@ function Set-SvcWithErrHandling
function Start-DownloadWithRetry function Start-DownloadWithRetry
{ {
param ( param
(
[Parameter(Mandatory)] [Parameter(Mandatory)]
[string] $Url, [string] $Url,
[Parameter(Mandatory)] [Parameter(Mandatory)]
@@ -253,7 +319,8 @@ function Install-VsixExtension
function Get-VSExtensionVersion function Get-VSExtensionVersion
{ {
param ( Param
(
[Parameter(Mandatory=$true)] [Parameter(Mandatory=$true)]
[string] $packageName [string] $packageName
) )
@@ -289,7 +356,8 @@ function Get-ToolsetContent {
} }
function Get-ToolsByName { function Get-ToolsByName {
param ( Param
(
[Parameter(Mandatory = $True)] [Parameter(Mandatory = $True)]
[string]$SoftwareName [string]$SoftwareName
) )
@@ -0,0 +1,16 @@
Write-Host "Disable Just-In-Time Debugger"
# Turn off Application Error Debugger
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" -Name Debugger -Value "-" -Type String -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug" -Name Debugger -Value "-" -Type String -Force
# Turn off the Debug dialog
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework" -Name DbgManagedDebugger -Value "-" -Type String -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework" -Name DbgManagedDebugger -Value "-" -Type String -Force
# Disable the WER UI
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name DontShowUI -Value 1 -Type DWORD -Force
# Send all reports to the user's queue
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name ForceQueue -Value 1 -Type DWORD -Force
# Default consent choice 1 - Always ask (default)
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Consent" -Name DefaultConsent -Value 1 -Type DWORD -Force
@@ -3,23 +3,25 @@
## Desc: Install Google Chrome ## Desc: Install Google Chrome
################################################################################ ################################################################################
Import-Module -Name ImageHelpers -Force; Import-Module -Name ImageHelpers -Force
$ChromeInstallerFile = "chrome_installer.exe"; # Download and install latest Chrome browser
$ChromeInstallerUrl = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"; $ChromeInstallerFile = "chrome_installer.exe"
$ChromeInstallerUrl = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"
Install-Binary -Url $ChromeInstallerUrl -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install") Install-Binary -Url $ChromeInstallerUrl -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install")
Write-Host "Adding the firewall rule for Google update blocking"; # Prepare firewall rules
New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe"; Write-Host "Adding the firewall rule for Google update blocking..."
New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe"
$GoogleSvcs = ('gupdate','gupdatem'); $GoogleSvcs = ('gupdate','gupdatem')
$GoogleSvcs | Stop-SvcWithErrHandling -StopOnError; $GoogleSvcs | Stop-SvcWithErrHandling -StopOnError
$GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"}; $GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"}
$regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update"; $regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update"
$regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome"; $regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome"
($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object { ($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object {
New-Item -Path $_ -Force; New-Item -Path $_ -Force
} }
$regGoogleParameters = @( $regGoogleParameters = @(
@@ -31,52 +33,45 @@ $regGoogleParameters = @(
) )
$regGoogleParameters | ForEach-Object { $regGoogleParameters | ForEach-Object {
$Arguments = $_; $Arguments = $_
if (-not ($Arguments.Path)) { if (-not ($Arguments.Path))
$Arguments.Add("Path", $regGoogleUpdatePath); {
$Arguments.Add("Path", $regGoogleUpdatePath)
} }
$Arguments.Add("Force", $true); $Arguments.Add("Force", $true)
New-ItemProperty @Arguments; New-ItemProperty @Arguments
} }
# Reinstall Chrome Web Driver # Install Chrome WebDriver
Write-Host "Install Chrome WebDriver" Write-Host "Install Chrome WebDriver..."
$DestinationPath = "$($env:SystemDrive)\"; $ChromeDriverPath = "$($env:SystemDrive)\SeleniumWebDrivers\ChromeDriver"
$ChromeDriverPath = "${DestinationPath}SeleniumWebDrivers\ChromeDriver"; if (-not (Test-Path -Path $ChromeDriverPath))
{
if (-not (Test-Path -Path $ChromeDriverPath)) { New-Item -Path $ChromeDriverPath -ItemType Directory -Force
New-Item -Path $ChromeDriverPath -ItemType "directory"
} }
Write-Host "Get the Chrome WebDriver version..."
$RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths" $RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
$ChromePath = (Get-ItemProperty "$RegistryPath\chrome.exe").'(default)'; $ChromePath = (Get-ItemProperty "$RegistryPath\chrome.exe").'(default)'
[version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion; [version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion
Write-Host "Chrome version: [$ChromeVersion]"; $ChromeDriverVersionUrl = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$($ChromeVersion.Major).$($ChromeVersion.Minor).$($ChromeVersion.Build)"
$ChromeDriverVersionUri = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$($ChromeVersion.Major).$($ChromeVersion.Minor).$($ChromeVersion.Build)"; $ChromeDriverVersionFile = Start-DownloadWithRetry -Url $ChromeDriverVersionUrl -Name "versioninfo.txt" -DownloadPath $ChromeDriverPath
Write-Host "Chrome driver version Uri [$ChromeDriverVersionUri]";
Write-Host "Getting the Chrome driver version...";
$ChromeDriverVersion = Invoke-WebRequest -Uri $ChromeDriverVersionUri;
Write-Host "Current Chrome driver version: [$ChromeDriverVersion]";
$ChromeDriverZipDownloadUri = "https://chromedriver.storage.googleapis.com/$($ChromeDriverVersion.ToString())/chromedriver_win32.zip"; Write-Host "Download Chrome WebDriver..."
Write-Host "Chrome driver zip file download Uri: [$ChromeDriverZipDownloadUri]"; $ChromeDriverVersion = Get-Content -Path $ChromeDriverVersionFile
$ChromeDriverArchName = "chromedriver_win32.zip"
$ChromeDriverZipDownloadUrl = "https://chromedriver.storage.googleapis.com/${ChromeDriverVersion}/${ChromeDriverArchName}"
$DestFile= "$ChromeDriverPath\chromedriver_win32.zip"; $ChromeDriverArchPath = Start-DownloadWithRetry -Url $ChromeDriverZipDownloadUrl -Name $ChromeDriverArchName
$ChromeDriverVersion.Content | Out-File -FilePath "$ChromeDriverPath\versioninfo.txt" -Force;
Write-Host "Chrome driver download...."; Write-Host "Expand Chrome WebDriver archive..."
Invoke-WebRequest -Uri $ChromeDriverZipDownloadUri -OutFile $DestFile; Expand-Archive -Path $ChromeDriverArchPath -DestinationPath $ChromeDriverPath -Force
Write-Host "Chrome driver install...."; Write-Host "Setting the environment variables..."
Expand-Archive -Path "$ChromeDriverPath\chromedriver_win32.zip" -DestinationPath $ChromeDriverPath -Force; setx ChromeWebDriver "$ChromeDriverPath" /M
Remove-Item -Path "$ChromeDriverPath\chromedriver_win32.zip" -Force;
Write-Host "Setting the environment variables" $regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\'
$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path'
setx ChromeWebDriver "$ChromeDriverPath" /M; $PathValue += ";$ChromeDriverPath\"
Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue
$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\';
$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path';
$PathValue += ";$ChromeDriverPath\";
Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue;
@@ -6,19 +6,18 @@
Import-Module -Name ImageHelpers Import-Module -Name ImageHelpers
# Download the latest cf cli exe # Download the latest cf cli exe
Invoke-WebRequest -UseBasicParsing -Uri "https://packages.cloudfoundry.org/stable?release=windows64-exe&source=github" -OutFile cf-cli.zip $CloudFoundryCliName = "cf-cli.zip"
$CloudFoundryCliUrl = "https://packages.cloudfoundry.org/stable?release=windows64-exe&source=github"
$CloudFoundryArchPath = Start-DownloadWithRetry -Url $CloudFoundryCliUrl -Name $CloudFoundryCliName
# Create directory for cf cli # Create directory for cf cli
$cf_cli_path = "C:\cf-cli" $CloudFoundryCliPath = "C:\cf-cli"
New-Item -Path $cf_cli_path -ItemType Directory -Force New-Item -Path $CloudFoundryCliPath -ItemType Directory -Force
# Extract the zip archive # Extract the zip archive
Write-Host "Extracting cf cli..." Write-Host "Extracting cf cli..."
Expand-Archive -Path cf-cli.zip -DestinationPath $cf_cli_path -Force Expand-Archive -Path $CloudFoundryArchPath -DestinationPath $CloudFoundryCliPath -Force
# Add cf to path # Add cf to path
Add-MachinePathItem $cf_cli_path Add-MachinePathItem $CloudFoundryCliPath
# Delete the cfl-cli zip archive
Write-Host "Deleting downloaded archive of cf cli"
Remove-Item cf-cli.zip
@@ -32,7 +32,10 @@ function InstallSDKVersion (
} }
# Fix for issue 1276. This will be fixed in 3.1. # Fix for issue 1276. This will be fixed in 3.1.
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dotnet/sdk/82bc30c99f1325dfaa7ad450be96857a4fca2845/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.ImportPublishProfile.targets" -outfile "C:\Program Files\dotnet\sdk\$sdkVersion\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.ImportPublishProfile.targets" $sdkTargetsName = "Microsoft.NET.Sdk.ImportPublishProfile.targets"
$sdkTargetsUrl = "https://raw.githubusercontent.com/dotnet/sdk/82bc30c99f1325dfaa7ad450be96857a4fca2845/src/Tasks/Microsoft.NET.Build.Tasks/targets/${sdkTargetsName}"
$sdkTargetsPath = "C:\Program Files\dotnet\sdk\$sdkVersion\Sdks\Microsoft.NET.Sdk\targets"
Start-DownloadWithRetry -Url $sdkTargetsUrl -DownloadPath $sdkTargetsPath -Name $sdkTargetsName
# warm up dotnet for first time experience # warm up dotnet for first time experience
$templates | ForEach-Object { $templates | ForEach-Object {
@@ -49,8 +52,10 @@ function InstallSDKVersion (
function InstallAllValidSdks() function InstallAllValidSdks()
{ {
Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/releases-index.json' -UseBasicParsing -OutFile 'releases-index.json' $releaseIndexName = "releases-index.json"
$dotnetChannels = Get-Content -Path 'releases-index.json' | ConvertFrom-Json $releaseIndexUrl = "https://raw.githubusercontent.com/dotnet/core/master/release-notes/${releaseIndexName}"
$releasesIndexPath = Start-DownloadWithRetry -Url $releaseIndexUrl -Name $releaseIndexName
$dotnetChannels = Get-Content -Path $releasesIndexPath | ConvertFrom-Json
# Consider all channels except preview/eol channels. # Consider all channels except preview/eol channels.
# Sort the channels in ascending order # Sort the channels in ascending order
@@ -58,13 +63,15 @@ function InstallAllValidSdks()
$dotnetChannels = $dotnetChannels.'releases-index' | Where-Object { (!$_."support-phase".Equals('preview') -and !$_."support-phase".Equals('eol')) -or ($_."channel-version" -eq "2.2") } | Sort-Object { [Version] $_."channel-version" } $dotnetChannels = $dotnetChannels.'releases-index' | Where-Object { (!$_."support-phase".Equals('preview') -and !$_."support-phase".Equals('eol')) -or ($_."channel-version" -eq "2.2") } | Sort-Object { [Version] $_."channel-version" }
# Download installation script. # Download installation script.
Invoke-WebRequest -Uri 'https://dot.net/v1/dotnet-install.ps1' -UseBasicParsing -OutFile 'dotnet-install.ps1' $installationName = "dotnet-install.ps1"
$installationUrl = "https://dot.net/v1/${installationName}"
Start-DownloadWithRetry -Url $installationUrl -Name $installationName -DownloadPath ".\"
ForEach ($dotnetChannel in $dotnetChannels) ForEach ($dotnetChannel in $dotnetChannels)
{ {
$channelVersion = $dotnetChannel.'channel-version'; $channelVersion = $dotnetChannel.'channel-version';
Invoke-WebRequest -Uri $dotnetChannel.'releases.json' -UseBasicParsing -OutFile "releases-$channelVersion.json" $releasesJsonPath = Start-DownloadWithRetry -Url $dotnetChannel.'releases.json' -Name "releases-$channelVersion.json"
$currentReleases = Get-Content -Path "releases-$channelVersion.json" | ConvertFrom-Json $currentReleases = Get-Content -Path $releasesJsonPath | ConvertFrom-Json
# filtering out the preview/rc releases # filtering out the preview/rc releases
$currentReleases = $currentReleases.'releases' | Where-Object { !$_.'release-version'.Contains('-') } | Sort-Object { [Version] $_.'release-version' } $currentReleases = $currentReleases.'releases' | Where-Object { !$_.'release-version'.Contains('-') } | Sort-Object { [Version] $_.'release-version' }
@@ -74,7 +81,6 @@ function InstallAllValidSdks()
{ {
Write-Host 'Found sdks property in release: ' + $release.'release-version' + 'with sdks count: ' + $release.'sdks'.Count Write-Host 'Found sdks property in release: ' + $release.'release-version' + 'with sdks count: ' + $release.'sdks'.Count
# Remove duplicate entries & preview/rc version from download list # Remove duplicate entries & preview/rc version from download list
# Sort the sdks on version # Sort the sdks on version
$sdks = @($release.'sdk'); $sdks = @($release.'sdk');
+21 -22
View File
@@ -5,37 +5,36 @@
Choco-Install -PackageName microsoft-edge Choco-Install -PackageName microsoft-edge
# Install Microsoft Edge Web Driver # Install Microsoft Edge WebDriver
Write-Host "Install Edge WebDriver" Write-Host "Install Edge WebDriver..."
$DestinationPath = "$($env:SystemDrive)\"; $EdgeDriverPath = "$($env:SystemDrive)\SeleniumWebDrivers\EdgeDriver"
if (-not (Test-Path -Path $EdgeDriverPath))
$EdgeDriverPath = "${DestinationPath}SeleniumWebDrivers\EdgeDriver" {
if (-not (Test-Path -Path $EdgeDriverPath)) { New-Item -Path $EdgeDriverPath -ItemType Directory -Force
New-Item -Path $EdgeDriverPath -ItemType "directory"
} }
Write-Host "Get the Microsoft Edge WebDriver version..."
$RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths" $RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
$EdgePath = (Get-ItemProperty "$RegistryPath\msedge.exe").'(default)' $EdgePath = (Get-ItemProperty "$RegistryPath\msedge.exe").'(default)'
[version]$EdgeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($EdgePath).ProductVersion [version]$EdgeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($EdgePath).ProductVersion
$EdgeDriverVersionUrl = "https://msedgedriver.azureedge.net/LATEST_RELEASE_$($EdgeVersion.Major)" $EdgeDriverVersionUrl = "https://msedgedriver.azureedge.net/LATEST_RELEASE_$($EdgeVersion.Major)"
$EdgeDriverVersionFile = "$EdgeDriverPath\versioninfo.txt"
Invoke-WebRequest -Uri $EdgeDriverVersionUrl -OutFile $EdgeDriverVersionFile
Write-Host "Microsoft Edge driver download started" $EdgeDriverVersionFile = Start-DownloadWithRetry -Url $EdgeDriverVersionUrl -Name "versioninfo.txt" -DownloadPath $EdgeDriverPath
Write-Host "Download Microsoft Edge WebDriver..."
$EdgeDriverLatestVersion = Get-Content -Path $EdgeDriverVersionFile $EdgeDriverLatestVersion = Get-Content -Path $EdgeDriverVersionFile
$EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/edgedriver_win64.zip" $EdgeDriverArchName = "edgedriver_win64.zip"
$DestFile = "$EdgeDriverPath\edgedriver_win64.zip" $EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/${EdgeDriverArchName}"
Invoke-WebRequest -Uri $EdgeDriverDownloadUrl -OutFile $DestFile
Write-Host "Microsoft Edge driver installation started" $EdgeDriverArchPath = Start-DownloadWithRetry -Url $EdgeDriverDownloadUrl -Name $EdgeDriverArchName
Expand-Archive -Path $DestFile -DestinationPath $EdgeDriverPath -Force
Remove-Item -Path $DestFile -Force
Write-Host "Setting the environment variables" Write-Host "Expand Microsoft Edge WebDriver archive..."
Expand-Archive -Path $EdgeDriverArchPath -DestinationPath $EdgeDriverPath -Force
setx EdgeWebDriver "$EdgeDriverPath" /M; Write-Host "Setting the environment variables..."
setx EdgeWebDriver "$EdgeDriverPath" /M
$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\'; $regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\'
$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path'; $PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path'
$PathValue += ";$EdgeDriverPath\"; $PathValue += ";$EdgeDriverPath\"
Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue; Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue
@@ -5,71 +5,48 @@
Import-Module -Name ImageHelpers -Force Import-Module -Name ImageHelpers -Force
$temp_install_dir = 'C:\Windows\Installer' # Install and configure Firefox browser
New-Item -Path $temp_install_dir -ItemType Directory -Force Write-Host "Install latest Firefox browser..."
$VersionsManifest = Invoke-RestMethod "https://product-details.mozilla.org/1.0/firefox_versions.json"
$InstallerName = "firefox-browser.exe"
$InstallerUrl = "https://download.mozilla.org/?product=firefox-$($VersionsManifest.LATEST_FIREFOX_VERSION)&os=win64&lang=en-US"
$ArgumentList = ("/silent", "/install")
$versionsJson = Invoke-RestMethod "https://product-details.mozilla.org/1.0/firefox_versions.json" Install-Binary -Url $InstallerUrl -Name $InstallerName -ArgumentList $ArgumentList
$latestVersion = $versionsJson.LATEST_FIREFOX_VERSION
Write-Host "Firefox latest version: $latestVersion"
# url for latest version of firefox Write-Host "Disable autoupdate..."
$urlLatestVersion = "https://download.mozilla.org/?product=firefox-${latestVersion}&os=win64&lang=en-US" $FirefoxDirectoryPath = Join-Path $env:ProgramFiles "Mozilla Firefox"
Install-Binary -Url $urlLatestVersion -Name "Firefox Setup $latestVersion.exe" -ArgumentList ("/silent", "/install") New-Item -path $FirefoxDirectoryPath -Name 'mozilla.cfg' -Value '//
# Disable autoupdate
$firefoxDirectoryPath = Join-Path $env:ProgramFiles "Mozilla Firefox"
New-Item -path $firefoxDirectoryPath -Name 'mozilla.cfg' -Value '//
pref("browser.shell.checkDefaultBrowser", false); pref("browser.shell.checkDefaultBrowser", false);
pref("app.update.enabled", false);' -ItemType file -force pref("app.update.enabled", false);' -ItemType file -force
$firefoxPreferencesFolder = Join-Path $firefoxDirectoryPath "defaults\pref" $FirefoxPreferencesFolder = Join-Path $FirefoxDirectoryPath "defaults\pref"
New-Item -path $firefoxPreferencesFolder -Name 'local-settings.js' -Value 'pref("general.config.obscure_value", 0); New-Item -path $FirefoxPreferencesFolder -Name 'local-settings.js' -Value 'pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");' -ItemType file -force pref("general.config.filename", "mozilla.cfg");' -ItemType file -force
# Install Firefox gecko Web Driver # Download and install Gecko WebDriver
Write-Host "Install Firefox WebDriver" Write-Host "Install Gecko WebDriver..."
$DestinationPath = "$($env:SystemDrive)\"; $GeckoDriverPath = "$($env:SystemDrive)\SeleniumWebDrivers\GeckoDriver"
$SeleniumWebDriverPath = Join-Path $DestinationPath "SeleniumWebDrivers" if (-not (Test-Path -Path $GeckoDriverPath))
{
$geckodriverJson = Invoke-RestMethod "https://api.github.com/repos/mozilla/geckodriver/releases/latest" New-Item -Path $GeckoDriverPath -ItemType Directory -Force
$geckodriverWindowsAsset = $geckodriverJson.assets | Where-Object { $_.name -Match "win64" } | Select-Object -First 1
$geckodriverVersion = $geckodriverJson.tag_name
Write-Host "Geckodriver version: $geckodriverVersion"
$DriversZipFile = $geckodriverWindowsAsset.name
Write-Host "Selenium drivers download and install..."
$FirefoxDriverPath = Join-Path $SeleniumWebDriverPath "GeckoDriver"
if (-not (Test-Path -Path $FirefoxDriverPath)) {
New-Item -Path $FirefoxDriverPath -ItemType "directory"
} }
$geckodriverVersion.Substring(1) | Out-File -FilePath "$FirefoxDriverPath\versioninfo.txt" -Force; Write-Host "Get the Gecko WebDriver version..."
$GeckoDriverJson = Invoke-RestMethod "https://api.github.com/repos/mozilla/geckodriver/releases/latest"
$GeckoDriverWindowsAsset = $GeckoDriverJson.assets | Where-Object { $_.name -Match "win64" } | Select-Object -First 1
$GeckoDriverVersion = $GeckoDriverJson.tag_name
$GeckoDriverVersion.Substring(1) | Out-File -FilePath "$GeckoDriverPath\versioninfo.txt" -Force;
# Install Firefox Web Driver Write-Host "Download Gecko WebDriver WebDriver..."
Write-Host "FireFox driver download...." $GeckoDriverArchName = $GeckoDriverWindowsAsset.name
if (-not (Test-Path -Path $FireFoxDriverPath)) { $GeckoDriverDownloadUrl = $GeckoDriverWindowsAsset.browser_download_url
New-Item -Path $FireFoxDriverPath -ItemType "directory"
}
$DestFile = Join-Path $FireFoxDriverPath $DriversZipFile $GeckoDriverArchPath = Start-DownloadWithRetry -Url $GeckoDriverDownloadUrl -Name $GeckoDriverArchName
$FireFoxDriverDownloadUrl = $geckodriverWindowsAsset.browser_download_url
try{
Invoke-WebRequest -Uri $FireFoxDriverDownloadUrl -OutFile $DestFile
} catch {
Write-Error "[!] Failed to download $DriversZipFile"
exit 1
}
Write-Host "FireFox driver install...." Write-Host "Expand Gecko WebDriver archive..."
Expand-Archive -Path $DestFile -DestinationPath $FireFoxDriverPath -Force Expand-Archive -Path $GeckoDriverArchPath -DestinationPath $GeckoDriverPath -Force
Remove-Item -Path $DestFile -Force
Write-Host "Setting the environment variables..."
Write-Host "Setting the environment variables" Add-MachinePathItem -PathItem $GeckoDriverPath
Add-MachinePathItem -PathItem $FireFoxDriverPath setx GeckoWebDriver "$GeckoDriverPath" /M
setx GeckoWebDriver "$FirefoxDriverPath" /M;
exit 0
+17 -11
View File
@@ -6,12 +6,13 @@
Import-Module -Name ImageHelpers -Force Import-Module -Name ImageHelpers -Force
$refsJson = Invoke-RestMethod "https://api.github.com/repos/golang/go/git/refs/tags" $refsJson = Invoke-RestMethod "https://api.github.com/repos/golang/go/git/refs/tags"
function Install-GoVersion function Install-GoVersion
{ {
Param Param
( (
[String]$goVersion, [String] $goVersion,
[Switch]$addToDefaultPath [Switch] $addToDefaultPath
) )
$latestVersionObject = $refsJson | Where-Object { $_.ref -Match "refs/tags/go$goVersion[./d]*" } | Select-Object -Last 1 $latestVersionObject = $refsJson | Where-Object { $_.ref -Match "refs/tags/go$goVersion[./d]*" } | Select-Object -Last 1
@@ -20,11 +21,15 @@ function Install-GoVersion
# Download the Go zip archive. # Download the Go zip archive.
Write-Host "Downloading Go $latestVersion..." Write-Host "Downloading Go $latestVersion..."
$ProgressPreference = 'SilentlyContinue' $ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -UseBasicParsing -Uri "https://dl.google.com/go/go$latestVersion.windows-amd64.zip" -OutFile go$latestVersion.windows-amd64.zip
$goArchName = "go${latestVersion}.windows-amd64.zip"
$goArchUrl = "https://dl.google.com/go/${goArchName}"
$goArchPath = Start-DownloadWithRetry -Url $goArchUrl -Name $goArchName
# Extract the zip archive. It contains a single directory named "go". # Extract the zip archive. It contains a single directory named "go".
Write-Host "Extracting Go $latestVersion..." Write-Host "Extracting Go $latestVersion..."
Expand-Archive -Path go$latestVersion.windows-amd64.zip -DestinationPath "C:\" -Force Expand-Archive -Path $goArchPath -DestinationPath "C:\" -Force
# Delete unnecessary files to conserve space # Delete unnecessary files to conserve space
Write-Host "Cleaning directories of Go $latestVersion..." Write-Host "Cleaning directories of Go $latestVersion..."
@@ -41,10 +46,6 @@ function Install-GoVersion
$newDirName = "Go$latestVersion" $newDirName = "Go$latestVersion"
Rename-Item -path "C:\go" -newName $newDirName Rename-Item -path "C:\go" -newName $newDirName
# Delete the Go zip archive.
Write-Host "Deleting downloaded archive of Go $latestVersion..."
Remove-Item go$latestVersion.windows-amd64.zip
# Make this the default version of Go? # Make this the default version of Go?
if ($addToDefaultPath) if ($addToDefaultPath)
{ {
@@ -63,13 +64,18 @@ function Install-GoVersion
# Install Go # Install Go
$goVersionsToInstall = $env:GO_VERSIONS.split(", ", [System.StringSplitOptions]::RemoveEmptyEntries) $goVersionsToInstall = $env:GO_VERSIONS.split(", ", [System.StringSplitOptions]::RemoveEmptyEntries)
foreach($go in $goVersionsToInstall) { foreach ($go in $goVersionsToInstall)
{
Write-Host "Installing Go ${go}" Write-Host "Installing Go ${go}"
if($go -eq $env:GO_DEFAULT) { if ($go -eq $env:GO_DEFAULT)
{
$installDirectory = Install-GoVersion -goVersion $go -addToDefaultPath $installDirectory = Install-GoVersion -goVersion $go -addToDefaultPath
} else { }
else
{
$installDirectory = Install-GoVersion -goVersion $go $installDirectory = Install-GoVersion -goVersion $go
} }
$envName = "GOROOT_{0}_{1}_X64" -f $go.split(".") $envName = "GOROOT_{0}_{1}_X64" -f $go.split(".")
setx $envName "$installDirectory" /M setx $envName "$installDirectory" /M
} }
@@ -3,33 +3,22 @@
## Desc: Install various JDKs and java tools ## Desc: Install various JDKs and java tools
################################################################################ ################################################################################
Import-Module -Name ImageHelpers -Force
# Download the Azul Systems Zulu JDKs # Download the Azul Systems Zulu JDKs
# See https://www.azul.com/downloads/azure-only/zulu/ # See https://www.azul.com/downloads/azure-only/zulu/
$azulJDK7Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-7/7u232/zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64.zip' $azulJDKURLs = @(
$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' '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',
$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' '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',
$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' 'https://repos.azul.com/azure-only/zulu/packages/zulu-11/11.0.4/zulu-11-azure-jdk_11.33.15-11.0.4-win_x64.zip',
'https://repos.azul.com/azure-only/zulu/packages/zulu-13/13.0.3/zulu-13-azure-jdk_13.31.11-13.0.3-win_x64.zip'
)
cd $env:TEMP foreach ($azulJDKURL in $azulJDKURLs)
{
Invoke-WebRequest -UseBasicParsing -Uri $azulJDK7Uri -OutFile azulJDK7.zip $archivePath = Start-DownloadWithRetry -Url $azulJDKURL -Name $([IO.Path]::GetFileName($azulJDKURL))
Invoke-WebRequest -UseBasicParsing -Uri $azulJDK8Uri -OutFile azulJDK8.zip Expand-Archive -Path $archivePath -DestinationPath "C:\Program Files\Java\"
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
$currentPath = Get-MachinePath $currentPath = Get-MachinePath
@@ -38,7 +27,7 @@ $newPathSegments = @()
foreach ($pathSegment in $pathSegments) foreach ($pathSegment in $pathSegments)
{ {
if($pathSegment -notlike '*java*') if ($pathSegment -notlike '*java*')
{ {
$newPathSegments += $pathSegment $newPathSegments += $pathSegment
} }
@@ -74,8 +63,7 @@ Choco-Install -PackageName maven -ArgumentList "-i", "--version=3.6.3"
Choco-Install -PackageName gradle Choco-Install -PackageName gradle
# Move maven variables to Machine. They may not be in the environment for this script so we need to read them from the registry. # Move maven variables to Machine. They may not be in the environment for this script so we need to read them from the registry.
$userSid = (Get-WmiObject win32_useraccount -Filter "name = '$env:USERNAME' AND domain = '$env:USERDOMAIN'").SID $userEnvironmentKey = 'Registry::HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
$userEnvironmentKey = 'Registry::HKEY_USERS\' + $userSid + '\Environment'
$m2_home = (Get-ItemProperty -Path $userEnvironmentKey -Name M2_HOME).M2_HOME $m2_home = (Get-ItemProperty -Path $userEnvironmentKey -Name M2_HOME).M2_HOME
$m2 = $m2_home + '\bin' $m2 = $m2_home + '\bin'
@@ -93,14 +81,7 @@ setx MAVEN_OPTS $maven_opts /M
$uri = 'https://ayera.dl.sourceforge.net/project/cobertura/cobertura/2.1.1/cobertura-2.1.1-bin.zip' $uri = 'https://ayera.dl.sourceforge.net/project/cobertura/cobertura/2.1.1/cobertura-2.1.1-bin.zip'
$coberturaPath = "C:\cobertura-2.1.1" $coberturaPath = "C:\cobertura-2.1.1"
cd $env:TEMP $archivePath = Start-DownloadWithRetry -Url $uri -Name "cobertura.zip"
Expand-Archive -Path $archivePath -DestinationPath "C:\"
Invoke-WebRequest -UseBasicParsing -Uri $uri -OutFile cobertura.zip
# Expand the zip
Expand-Archive -Path cobertura.zip -DestinationPath "C:\" -Force
# Deleting zip folder
Remove-Item -Recurse -Force cobertura.zip
setx COBERTURA_HOME $coberturaPath /M setx COBERTURA_HOME $coberturaPath /M
@@ -6,25 +6,24 @@
$stableKindTag = "v0.7.0" $stableKindTag = "v0.7.0"
$tagToUse = $stableKindTag; $tagToUse = $stableKindTag;
$destFilePath = "C:\ProgramData\kind" $destFilePath = "C:\ProgramData\kind"
$outFilePath = "C:\ProgramData\kind\kind.exe"
try try
{ {
$getkindUri = "https://github.com/kubernetes-sigs/kind/releases/download/$tagToUse/kind-windows-amd64" $kindUrl = "https://github.com/kubernetes-sigs/kind/releases/download/$tagToUse/kind-windows-amd64"
Write-Host "Downloading kind.exe..." Write-Host "Downloading kind.exe..."
New-Item -Path $destFilePath -ItemType Directory -Force New-Item -Path $destFilePath -ItemType Directory -Force
Invoke-WebRequest -Uri $getkindUri -OutFile $outFilePath $kindInstallerPath = Start-DownloadWithRetry -Url $kindUrl -Name "kind.exe" -DownloadPath $destFilePath
Write-Host "Starting Install kind.exe..." Write-Host "Starting Install kind.exe..."
$process = Start-Process -FilePath $outFilePath -Wait -PassThru $process = Start-Process -FilePath $kindInstallerPath -Wait -PassThru
$exitCode = $process.ExitCode $exitCode = $process.ExitCode
if ($exitCode -eq 0 -or $exitCode -eq 3010) if ($exitCode -eq 0 -or $exitCode -eq 3010)
{ {
Write-Host -Object 'Installation successful' Write-Host -Object 'Installation successful'
Add-MachinePathItem $destFilePath Add-MachinePathItem $destFilePath
exit $exitCode
} }
else else
{ {
@@ -3,10 +3,10 @@
## Desc: Install Mysql CLI ## Desc: Install Mysql CLI
################################################################################ ################################################################################
## Downloading mysql jar ## Downloading mysql jar
$uri = 'https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-winx64.zip' $MysqlVersionName = "mysql-5.7.21-winx64"
$mysqlPath = 'C:\mysql-5.7.21-winx64\bin' $MysqlVersionUrl = "https://dev.mysql.com/get/Downloads/MySQL-5.7/${MysqlVersionName}.zip"
$MysqlPath = "C:\$MysqlVersionName\bin"
# Installing visual c++ redistibutable package. # Installing visual c++ redistibutable package.
$InstallerName = "vcredist_x64.exe" $InstallerName = "vcredist_x64.exe"
@@ -19,13 +19,10 @@ Install-Binary -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentLi
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor "Tls12" [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor "Tls12"
# Get the latest mysql command line tools . # Get the latest mysql command line tools .
Invoke-WebRequest -UseBasicParsing -Uri $uri -OutFile mysql.zip $mysqlArchPath = Start-DownloadWithRetry -Url $MysqlVersionUrl -Name "mysql.zip"
# Expand the zip # Expand the zip
Expand-Archive -Path mysql.zip -DestinationPath "C:\" -Force Expand-Archive -Path $mysqlArchPath -DestinationPath "C:\" -Force
# Deleting zip folder
Remove-Item -Recurse -Force mysql.zip
# Adding mysql in system environment path # Adding mysql in system environment path
Add-MachinePathItem $mysqlPath Add-MachinePathItem $mysqlPath
@@ -11,13 +11,10 @@ $env:CARGO_HOME="C:\Rust\.cargo"
# Download the latest rustup-init.exe for Windows x64 # Download the latest rustup-init.exe for Windows x64
# See https://rustup.rs/# # See https://rustup.rs/#
Invoke-WebRequest -UseBasicParsing -Uri "https://win.rustup.rs/x86_64" -OutFile rustup-init.exe $rustupPath = Start-DownloadWithRetry -Url "https://win.rustup.rs/x86_64" -Name "rustup-init.exe"
# Install Rust by running rustup-init.exe (disabling the confirmation prompt with -y) # Install Rust by running rustup-init.exe (disabling the confirmation prompt with -y)
.\rustup-init.exe -y --default-toolchain=stable --profile=minimal & $rustupPath -y --default-toolchain=stable --profile=minimal
# Delete rustup-init.exe when it's no longer needed
Remove-Item -Path .\rustup-init.exe
# Add Rust binaries to the path # Add Rust binaries to the path
Add-MachinePathItem "$env:CARGO_HOME\bin" Add-MachinePathItem "$env:CARGO_HOME\bin"
@@ -5,57 +5,21 @@
Import-Module -Name ImageHelpers -Force Import-Module -Name ImageHelpers -Force
Function InstallMSI $BaseUrl = "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64"
{
Param
(
[String]$MsiUrl,
[String]$MsiName
)
$exitCode = -1
try
{
Write-Host "Downloading $MsiName..."
$FilePath = "${env:Temp}\$MsiName"
Invoke-WebRequest -Uri $MsiUrl -OutFile $FilePath
$Arguments = ('/i', $FilePath, '/QN', '/norestart' )
Write-Host "Starting Install $MsiName..."
$process = Start-Process -FilePath msiexec.exe -ArgumentList $Arguments -Wait -PassThru
$exitCode = $process.ExitCode
if ($exitCode -eq 0 -or $exitCode -eq 3010)
{
Write-Host -Object 'Installation successful'
return $exitCode
}
else
{
Write-Host -Object "Non zero exit code returned by the installation process : $exitCode."
exit $exitCode
}
}
catch
{
Write-Host -Object "Failed to install the MSI $MsiName"
Write-Host -Object $_.Exception.Message
exit -1
}
}
# install required MSIs # install required MSIs
$SQLSysClrTypesExitCode = InstallMSI -MsiUrl "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64/SQLSysClrTypes.msi" -MsiName "SQLSysClrTypes.msi" $SQLSysClrTypesName = "SQLSysClrTypes.msi"
$SQLSysClrTypesUrl = "${BaseUrl}/${SQLSysClrTypesName}"
Install-Binary -Url $SQLSysClrTypesUrl -Name $SQLSysClrTypesName
$SharedManagementObjectsExitCode = InstallMSI -MsiUrl "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64/SharedManagementObjects.msi" -MsiName "SharedManagementObjects.msi" $SharedManagementObjectsName = "SharedManagementObjects.msi"
$SharedManagementObjectsUrl = "${BaseUrl}/${SharedManagementObjectsName}"
Install-Binary -Url $SharedManagementObjectsUrl -Name $SharedManagementObjectsName
$PowerShellToolsExitCode = InstallMSI -MsiUrl "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64/PowerShellTools.msi" -MsiName "PowerShellTools.msi" $PowerShellToolsName = "PowerShellTools.msi"
$PowerShellToolsUrl = "${BaseUrl}/${PowerShellToolsName}"
Install-Binary -Url $PowerShellToolsUrl -Name $PowerShellToolsName
# install sqlserver PS module # install sqlserver PS module
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
Install-Module -Name SqlServer -AllowClobber Install-Module -Name SqlServer -AllowClobber
exit $PowerShellToolsExitCode
@@ -3,6 +3,8 @@
## Desc: Install Selenium Server standalone ## Desc: Install Selenium Server standalone
################################################################################ ################################################################################
Import-Module -Name ImageHelpers -Force
# Acquire latest Selenium release number from GitHub API # Acquire latest Selenium release number from GitHub API
$latestReleaseUrl = "https://api.github.com/repos/SeleniumHQ/selenium/releases/latest" $latestReleaseUrl = "https://api.github.com/repos/SeleniumHQ/selenium/releases/latest"
try { try {
@@ -20,16 +22,13 @@ $seleniumVersion = [version]::Parse($seleniumVersionString)
Write-Host "Downloading selenium-server-standalone v$seleniumVersion..." Write-Host "Downloading selenium-server-standalone v$seleniumVersion..."
$seleniumReleaseUrl = "https://selenium-release.storage.googleapis.com/$($seleniumVersion.ToString(2))/selenium-server-standalone-$($seleniumVersion.ToString(3)).jar" $seleniumReleaseUrl = "https://selenium-release.storage.googleapis.com/$($seleniumVersion.ToString(2))/selenium-server-standalone-$($seleniumVersion.ToString(3)).jar"
New-Item -ItemType directory -Path "C:\selenium\" $seleniumDirectory = "C:\selenium\"
$seleniumBinPath = "C:\selenium\selenium-server-standalone.jar" $seleniumFileName = "selenium-server-standalone.jar"
try {
Invoke-WebRequest -UseBasicParsing -Uri $seleniumReleaseUrl -OutFile $seleniumBinPath New-Item -ItemType directory -Path $seleniumDirectory
} catch {
Write-Error $_ Start-DownloadWithRetry -Url $seleniumReleaseUrl -Name $seleniumFileName -DownloadPath $seleniumDirectory
exit 1
}
Write-Host "Add selenium jar to the environment variables..." Write-Host "Add selenium jar to the environment variables..."
$seleniumBinPath = Join-Path $seleniumDirectory $seleniumFileName
setx "SELENIUM_JAR_PATH" "$($seleniumBinPath)" /M setx "SELENIUM_JAR_PATH" "$($seleniumBinPath)" /M
exit 0
@@ -5,10 +5,10 @@
# Download the latest command line tools so that we can accept all of the licenses. # Download the latest command line tools so that we can accept all of the licenses.
# See https://developer.android.com/studio/#command-tools # See https://developer.android.com/studio/#command-tools
Invoke-WebRequest -UseBasicParsing -Uri "https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip" -OutFile android-sdk-tools.zip $sdkArchPath = Start-DownloadWithRetry -Url "https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip" -Name "android-sdk-tools.zip"
# Don't replace the one that VS installs as it seems to break things. # Don't replace the one that VS installs as it seems to break things.
Expand-Archive -Path android-sdk-tools.zip -DestinationPath android-sdk -Force Expand-Archive -Path $sdkArchPath -DestinationPath android-sdk -Force
$sdk = Get-Item -Path .\android-sdk $sdk = Get-Item -Path .\android-sdk
@@ -62,7 +62,10 @@ $ErrorActionPreference = "Stop"
Import-Module -Name ImageHelpers -Force Import-Module -Name ImageHelpers -Force
# Define executables for cached tools # Define executables for cached tools
$toolsExecutables = @{ Python = @("python.exe", "Scripts\pip.exe") } $toolsExecutables = @{
Python = @("python.exe", "Scripts\pip.exe");
node = @("node.exe", "npm")
}
# Get toolcache content from toolset # Get toolcache content from toolset
$tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache $tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache
@@ -3,61 +3,9 @@
## Desc: Install Visual Studio 2017 ## Desc: Install Visual Studio 2017
################################################################################ ################################################################################
Function InstallVS $ErrorActionPreference = "Stop"
{
Param
(
[String]$WorkLoads,
[String]$Sku,
[String] $VSBootstrapperURL
)
$exitCode = -1 Import-Module -Name ImageHelpers -Force
try
{
Write-Host "Enable short name support on Windows needed for Xamarin Android AOT, defaults appear to have been changed in Azure VMs"
$shortNameEnableProcess = Start-Process -FilePath fsutil.exe -ArgumentList ('8dot3name', 'set', '0') -Wait -PassThru
$shortNameEnableExitCode = $shortNameEnableProcess.ExitCode
if ($shortNameEnableExitCode -ne 0)
{
Write-Host -Object 'Enabling short name support on Windows failed. This needs to be enabled prior to VS 2017 install for Xamarin Andriod AOT to work.'
exit $shortNameEnableExitCode
}
Write-Host "Downloading Bootstrapper ..."
Invoke-WebRequest -Uri $VSBootstrapperURL -OutFile "${env:Temp}\vs_$Sku.exe"
$FilePath = "${env:Temp}\vs_$Sku.exe"
$Arguments = ('/c', $FilePath, $WorkLoads, '--quiet', '--norestart', '--wait', '--nocache' )
Write-Host "Starting Install ..."
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru
$exitCode = $process.ExitCode
if ($exitCode -eq 0 -or $exitCode -eq 3010)
{
Write-Host -Object 'Installation successful'
return $exitCode
}
else
{
Write-Host -Object "Non zero exit code returned by the installation process : $exitCode."
# this wont work because of log size limitation in extension manager
# Get-Content $customLogFilePath | Write-Host
exit $exitCode
}
}
catch
{
Write-Host -Object "Failed to install Visual Studio. Check the logs for details in $customLogFilePath"
Write-Host -Object $_.Exception.Message
exit -1
}
}
$WorkLoads = '--allWorkloads --includeRecommended ' + ` $WorkLoads = '--allWorkloads --includeRecommended ' + `
'--add Microsoft.Net.Component.4.6.2.SDK ' + ` '--add Microsoft.Net.Component.4.6.2.SDK ' + `
@@ -129,20 +77,18 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + `
'--add Microsoft.VisualStudio.Workload.Office ' + ` '--add Microsoft.VisualStudio.Workload.Office ' + `
'--add Microsoft.VisualStudio.Workload.OfficeBuildTools ' '--add Microsoft.VisualStudio.Workload.OfficeBuildTools '
$Sku = 'Enterprise' $ReleaseInPath = "Enterprise"
$VSBootstrapperURL = 'https://aka.ms/vs/15/release/vs_enterprise.exe' $BootstrapperUrl = "https://aka.ms/vs/15/release/vs_${ReleaseInPath}.exe"
$ErrorActionPreference = 'Stop'
# Install VS # Install VS
$exitCode = InstallVS -WorkLoads $WorkLoads -Sku $Sku -VSBootstrapperURL $VSBootstrapperURL Install-VisualStudio -BootstrapperUrl $BootstrapperUrl -WorkLoads $WorkLoads
# Find the version of VS installed for this instance # Find the version of VS installed for this instance
# Only supports a single instance # Only supports a single instance
$vsProgramData = Get-Item -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances" $vsProgramData = Get-Item -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances"
$instanceFolders = Get-ChildItem -Path $vsProgramData.FullName $instanceFolders = Get-ChildItem -Path $vsProgramData.FullName
if($instanceFolders -is [array]) if ($instanceFolders -is [array])
{ {
Write-Host "More than one instance installed" Write-Host "More than one instance installed"
exit 1 exit 1
@@ -151,20 +97,19 @@ if($instanceFolders -is [array])
$catalogContent = Get-Content -Path ($instanceFolders.FullName + '\catalog.json') $catalogContent = Get-Content -Path ($instanceFolders.FullName + '\catalog.json')
$catalog = $catalogContent | ConvertFrom-Json $catalog = $catalogContent | ConvertFrom-Json
$version = $catalog.info.id $version = $catalog.info.id
$VSInstallRoot = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" $VSInstallRoot = "C:\Program Files (x86)\Microsoft Visual Studio\2017\$ReleaseInPath"
Write-Host "Visual Studio version" $version "installed" Write-Host "Visual Studio version ${version} installed"
# Initialize Visual Studio Experimental Instance for integration testing # Initialize Visual Studio Experimental Instance for integration testing
&"$VSInstallRoot\Common7\IDE\devenv.exe" /RootSuffix Exp /ResetSettings General.vssettings /Command File.Exit | Wait-Process & "$VSInstallRoot\Common7\IDE\devenv.exe" /RootSuffix Exp /ResetSettings General.vssettings /Command File.Exit | Wait-Process
# Updating content of MachineState.json file to disable autoupdate of VSIX extensions # Updating content of MachineState.json file to disable autoupdate of VSIX extensions
$newContent = '{"Extensions":[{"Key":"1e906ff5-9da8-4091-a299-5c253c55fdc9","Value":{"ShouldAutoUpdate":false}},{"Key":"Microsoft.VisualStudio.Web.AzureFunctions","Value":{"ShouldAutoUpdate":false}}],"ShouldAutoUpdate":false,"ShouldCheckForUpdates":false}' $newContent = '{"Extensions":[{"Key":"1e906ff5-9da8-4091-a299-5c253c55fdc9","Value":{"ShouldAutoUpdate":false}},{"Key":"Microsoft.VisualStudio.Web.AzureFunctions","Value":{"ShouldAutoUpdate":false}}],"ShouldAutoUpdate":false,"ShouldCheckForUpdates":false}'
Set-Content -Path "$VSInstallRoot\Common7\IDE\Extensions\MachineState.json" -Value $newContent Set-Content -Path "$VSInstallRoot\Common7\IDE\Extensions\MachineState.json" -Value $newContent
# Adding description of the software to Markdown # Adding description of the software to Markdown
$SoftwareName = "Visual Studio 2017 Enterprise" $SoftwareName = "Visual Studio 2017 $ReleaseInPath"
$Description = @" $Description = @"
_Version:_ $version<br/> _Version:_ $version<br/>
@@ -199,7 +144,3 @@ Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $
# Adding explicitly added Workloads details to markdown by parsing $Workloads # Adding explicitly added Workloads details to markdown by parsing $Workloads
Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } ) Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } )
exit $exitCode
@@ -4,61 +4,7 @@
################################################################################ ################################################################################
$ErrorActionPreference = "Stop" $ErrorActionPreference = "Stop"
Function InstallVS Import-Module -Name ImageHelpers -Force
{
Param
(
[String]$WorkLoads,
[String]$Sku,
[String] $VSBootstrapperURL
)
$exitCode = -1
try
{
Write-Host "Enable short name support on Windows needed for Xamarin Android AOT, defaults appear to have been changed in Azure VMs"
$shortNameEnableProcess = Start-Process -FilePath fsutil.exe -ArgumentList ('8dot3name', 'set', '0') -Wait -PassThru
$shortNameEnableExitCode = $shortNameEnableProcess.ExitCode
if ($shortNameEnableExitCode -ne 0)
{
Write-Host -Object 'Enabling short name support on Windows failed. This needs to be enabled prior to VS 2017 install for Xamarin Andriod AOT to work.'
exit $shortNameEnableExitCode
}
Write-Host "Downloading Bootstrapper ..."
Invoke-WebRequest -Uri $VSBootstrapperURL -OutFile "${env:Temp}\vs_$Sku.exe"
$FilePath = "${env:Temp}\vs_$Sku.exe"
$Arguments = ('/c', $FilePath, $WorkLoads, '--quiet', '--norestart', '--wait', '--nocache' )
Write-Host "Starting Install ..."
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru
$exitCode = $process.ExitCode
if ($exitCode -eq 0 -or $exitCode -eq 3010)
{
Write-Host -Object 'Installation successful'
return $exitCode
}
else
{
Write-Host -Object "Non zero exit code returned by the installation process : $exitCode."
# this wont work because of log size limitation in extension manager
# Get-Content $customLogFilePath | Write-Host
exit $exitCode
}
}
catch
{
Write-Host -Object "Failed to install Visual Studio. Check the logs for details in $customLogFilePath"
Write-Host -Object $_.Exception.Message
exit -1
}
}
$WorkLoads = '--allWorkloads --includeRecommended ' + ` $WorkLoads = '--allWorkloads --includeRecommended ' + `
'--add Component.Dotfuscator ' + ` '--add Component.Dotfuscator ' + `
@@ -87,6 +33,7 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + `
'--add Microsoft.VisualStudio.Component.EntityFramework ' + ` '--add Microsoft.VisualStudio.Component.EntityFramework ' + `
'--add Microsoft.VisualStudio.Component.FSharp.Desktop ' + ` '--add Microsoft.VisualStudio.Component.FSharp.Desktop ' + `
'--add Microsoft.VisualStudio.Component.LinqToSql ' + ` '--add Microsoft.VisualStudio.Component.LinqToSql ' + `
'--add Microsoft.VisualStudio.Component.SQL.SSDT ' + `
'--add Microsoft.VisualStudio.Component.PortableLibrary ' + ` '--add Microsoft.VisualStudio.Component.PortableLibrary ' + `
'--add Microsoft.VisualStudio.Component.TeamOffice ' + ` '--add Microsoft.VisualStudio.Component.TeamOffice ' + `
'--add Microsoft.VisualStudio.Component.TestTools.CodedUITest ' + ` '--add Microsoft.VisualStudio.Component.TestTools.CodedUITest ' + `
@@ -150,22 +97,18 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + `
'--add Microsoft.VisualStudio.Workload.Universal ' + ` '--add Microsoft.VisualStudio.Workload.Universal ' + `
'--add Microsoft.VisualStudio.Workload.VisualStudioExtension' '--add Microsoft.VisualStudio.Workload.VisualStudioExtension'
$ReleaseInPath = "Enterprise"
$ReleaseInPath = 'Enterprise' $BootstrapperUrl = "https://aka.ms/vs/16/release/vs_${ReleaseInPath}.exe"
$Sku = 'Enterprise'
$VSBootstrapperURL = 'https://aka.ms/vs/16/release/vs_Enterprise.exe'
$ErrorActionPreference = 'Stop'
# Install VS # Install VS
$exitCode = InstallVS -WorkLoads $WorkLoads -Sku $Sku -VSBootstrapperURL $VSBootstrapperURL Install-VisualStudio -BootstrapperUrl $BootstrapperUrl -WorkLoads $WorkLoads
# Find the version of VS installed for this instance # Find the version of VS installed for this instance
# Only supports a single instance # Only supports a single instance
$vsProgramData = Get-Item -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances" $vsProgramData = Get-Item -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances"
$instanceFolders = Get-ChildItem -Path $vsProgramData.FullName $instanceFolders = Get-ChildItem -Path $vsProgramData.FullName
if($instanceFolders -is [array]) if ($instanceFolders -is [array])
{ {
Write-Host "More than one instance installed" Write-Host "More than one instance installed"
exit 1 exit 1
@@ -174,14 +117,15 @@ if($instanceFolders -is [array])
$catalogContent = Get-Content -Path ($instanceFolders.FullName + '\catalog.json') $catalogContent = Get-Content -Path ($instanceFolders.FullName + '\catalog.json')
$catalog = $catalogContent | ConvertFrom-Json $catalog = $catalogContent | ConvertFrom-Json
$version = $catalog.info.id $version = $catalog.info.id
Write-Host "Visual Studio version" $version "installed" $VSInstallRoot = "C:\Program Files (x86)\Microsoft Visual Studio\2019\$ReleaseInPath"
Write-Host "Visual Studio version ${version} installed"
# Initialize Visual Studio Experimental Instance # Initialize Visual Studio Experimental Instance
&"C:\Program Files (x86)\Microsoft Visual Studio\2019\$ReleaseInPath\Common7\IDE\devenv.exe" /RootSuffix Exp /ResetSettings General.vssettings /Command File.Exit & "$VSInstallRoot\Common7\IDE\devenv.exe" /RootSuffix Exp /ResetSettings General.vssettings /Command File.Exit
# Updating content of MachineState.json file to disable autoupdate of VSIX extensions # Updating content of MachineState.json file to disable autoupdate of VSIX extensions
$newContent = '{"Extensions":[{"Key":"1e906ff5-9da8-4091-a299-5c253c55fdc9","Value":{"ShouldAutoUpdate":false}},{"Key":"Microsoft.VisualStudio.Web.AzureFunctions","Value":{"ShouldAutoUpdate":false}}],"ShouldAutoUpdate":false,"ShouldCheckForUpdates":false}' $newContent = '{"Extensions":[{"Key":"1e906ff5-9da8-4091-a299-5c253c55fdc9","Value":{"ShouldAutoUpdate":false}},{"Key":"Microsoft.VisualStudio.Web.AzureFunctions","Value":{"ShouldAutoUpdate":false}}],"ShouldAutoUpdate":false,"ShouldCheckForUpdates":false}'
Set-Content -Path "C:\Program Files (x86)\Microsoft Visual Studio\2019\$ReleaseInPath\Common7\IDE\Extensions\MachineState.json" -Value $newContent Set-Content -Path "$VSInstallRoot\Common7\IDE\Extensions\MachineState.json" -Value $newContent
# Adding description of the software to Markdown # Adding description of the software to Markdown
@@ -190,7 +134,7 @@ $SoftwareName = "Visual Studio 2019 Enterprise"
$Description = @" $Description = @"
_Version:_ $version<br/> _Version:_ $version<br/>
_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2019\$ReleaseInPath _Location:_ $VSInstallRoot
The following workloads and components are installed with Visual Studio 2019: The following workloads and components are installed with Visual Studio 2019:
"@ "@
@@ -199,6 +143,3 @@ Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $
# Adding explicitly added Workloads details to markdown by parsing $Workloads # Adding explicitly added Workloads details to markdown by parsing $Workloads
Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } ) Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } )
exit $exitCode
+12
View File
@@ -26,6 +26,18 @@
"3.7.*", "3.7.*",
"3.8.*" "3.8.*"
] ]
},
{
"name": "node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"8.*",
"10.*",
"12.*",
"14.*"
]
} }
] ]
} }
+12
View File
@@ -26,6 +26,18 @@
"3.7.*", "3.7.*",
"3.8.*" "3.8.*"
] ]
},
{
"name": "node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"8.*",
"10.*",
"12.*",
"14.*"
]
} }
] ]
} }