diff --git a/images.CI/azure-pipelines/image-generation.yml b/images.CI/azure-pipelines/image-generation.yml
index 332f34add..03b084ca8 100644
--- a/images.CI/azure-pipelines/image-generation.yml
+++ b/images.CI/azure-pipelines/image-generation.yml
@@ -55,6 +55,14 @@ jobs:
-ImageName ${{ parameters.image_type }} `
-AccessToken $(RELEASE_TARGET_TOKEN)
+ - task: PowerShell@2
+ displayName: 'Output Readme file content'
+ inputs:
+ targetType: 'inline'
+ script: |
+ $docsPath = Get-ChildItem -Path "images" -Include ${{ parameters.image_readme_name }} -Recurse -Depth 1 | Select-Object -First 1
+ Get-Content -Path $docsPath
+
- task: PowerShell@2
displayName: 'Clean up resources'
condition: always()
diff --git a/images.CI/azure-pipelines/ubuntu1604.yml b/images.CI/azure-pipelines/ubuntu1604.yml
index 8f6dcef22..b2c99337f 100644
--- a/images.CI/azure-pipelines/ubuntu1604.yml
+++ b/images.CI/azure-pipelines/ubuntu1604.yml
@@ -16,4 +16,5 @@ pr:
jobs:
- template: image-generation.yml
parameters:
- image_type: ubuntu1604
\ No newline at end of file
+ image_type: ubuntu1604
+ image_readme_name: Ubuntu1604-README.md
\ No newline at end of file
diff --git a/images.CI/azure-pipelines/ubuntu1804.yml b/images.CI/azure-pipelines/ubuntu1804.yml
index 998ba42e6..d07bbade4 100644
--- a/images.CI/azure-pipelines/ubuntu1804.yml
+++ b/images.CI/azure-pipelines/ubuntu1804.yml
@@ -16,4 +16,5 @@ pr:
jobs:
- template: image-generation.yml
parameters:
- image_type: ubuntu1804
\ No newline at end of file
+ image_type: ubuntu1804
+ image_readme_name: Ubuntu1804-README.md
\ No newline at end of file
diff --git a/images.CI/azure-pipelines/windows2016.yml b/images.CI/azure-pipelines/windows2016.yml
index 667b30bd7..f164a096d 100644
--- a/images.CI/azure-pipelines/windows2016.yml
+++ b/images.CI/azure-pipelines/windows2016.yml
@@ -16,4 +16,5 @@ pr:
jobs:
- template: image-generation.yml
parameters:
- image_type: Windows2016-Azure
\ No newline at end of file
+ image_type: Windows2016-Azure
+ image_readme_name: Windows2016-Readme.md
\ No newline at end of file
diff --git a/images.CI/azure-pipelines/windows2019.yml b/images.CI/azure-pipelines/windows2019.yml
index 508fa12b3..f35a4f7ac 100644
--- a/images.CI/azure-pipelines/windows2019.yml
+++ b/images.CI/azure-pipelines/windows2019.yml
@@ -16,4 +16,5 @@ pr:
jobs:
- template: image-generation.yml
parameters:
- image_type: Windows2019-Azure
\ No newline at end of file
+ image_type: Windows2019-Azure
+ image_readme_name: Windows2019-Readme.md
\ No newline at end of file
diff --git a/images.CI/build-image.ps1 b/images.CI/build-image.ps1
index 54748e417..24d4a4d54 100644
--- a/images.CI/build-image.ps1
+++ b/images.CI/build-image.ps1
@@ -36,6 +36,9 @@ $SensitiveData = @(
': ->'
)
+Write-Host "Show Packer Version"
+packer --version
+
Write-Host "Build $Image VM"
packer build -var "capture_name_prefix=$ResourcesNamePrefix" `
-var "client_id=$ClientId" `
diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md
index a00a4084a..7b5be1247 100644
--- a/images/linux/Ubuntu1604-README.md
+++ b/images/linux/Ubuntu1604-README.md
@@ -1,16 +1,11 @@
# Ubuntu 16.04.6 LTS
-The following software is installed on machines with the 20200301.1 update.
+The following software is installed on machines with the 20200308.0 update.
***
- 7-Zip 9.20
-- Ansible (ansible 2.9.4)
+- Ansible (ansible 2.9.6)
- AzCopy (azcopy 7.3.0-netcore)
- Azure CLI (azure-cli 2.1.0)
- Azure CLI (azure-devops 0.17.0)
-- Bazel (Build label: 2.1.1
-Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
-Build time: Fri Feb 21 14:56:47 2020 (1582297007)
-Build timestamp: 1582297007
-Build timestamp as int: 1582297007)
- Basic CLI:
- curl
- dnsutils
@@ -37,7 +32,7 @@ Build timestamp as int: 1582297007)
- wget
- zip
- zstd
-- AWS CLI (aws-cli/1.18.11 Python/2.7.12 Linux/4.15.0-1071-azure botocore/1.15.11)
+- AWS CLI (aws-cli/1.18.16 Python/2.7.12 Linux/4.15.0-1071-azure botocore/1.15.16)
- build-essential
- Clang 6.0 (6.0.1)
- Clang 8 (8.0.1)
@@ -107,7 +102,7 @@ Build timestamp as int: 1582297007)
- 2.1.300
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.4)
- Firefox (Mozilla Firefox 73.0.1)
-- Geckodriver (); Gecko Driver is available via GECKOWEBDRIVER environment variable
+- Geckodriver (0.26.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
- GNU C++ 7.4.0
- GNU C++ 8.3.0
- GNU C++ 9.2.1
@@ -120,9 +115,9 @@ Build timestamp as int: 1582297007)
- Go 1.11 (go version go1.11.12 linux/amd64)
- Go 1.12 (go version go1.12.7 linux/amd64)
- Go 1.13 (go version go1.13 linux/amd64)
-- Google Chrome (Google Chrome 80.0.3987.122 )
-- Chromedriver (ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882})); Chrome Driver is available via CHROMEWEBDRIVER environment variable
-- Google Cloud SDK (282.0.0)
+- Google Chrome (Google Chrome 80.0.3987.132 )
+- ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}); Chrome Driver is available via CHROMEWEBDRIVER environment variable
+- Google Cloud SDK (283.0.0)
- Haskell Cabal (cabal-install version 2.0.0.1
compiled using version 2.0.1.1 of the Cabal library )
- Haskell Cabal (cabal-install version 2.2.0.0
@@ -140,21 +135,22 @@ compiled using version 3.0.2.0 of the Cabal library )
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.6.5)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.2)
+- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.3)
- Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2)
-- Heroku (heroku/7.38.2 linux-x64 node-v12.13.0)
-- HHVM (HipHop VM 4.46.0 (rel))
+- Heroku (heroku/7.39.0 linux-x64 node-v12.13.0)
+- HHVM (HipHop VM 4.47.0 (rel))
- ImageMagick
- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_252")
- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_242")
- Azul Zulu OpenJDK (11) (openjdk version "11.0.6" 2020-01-14 LTS)
- Azul Zulu OpenJDK (12) (openjdk version "12.0.2" 2019-07-16)
- Ant (Apache Ant(TM) version 1.9.6 compiled on July 20 2018)
-- Gradle 6.2.1
+- Gradle 6.2.2
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
- Kind (kind v0.7.0 go1.13.6 linux/amd64)
- kubectl (Client Version: v1.17.3)
-- helm (Client: v2.16.3+g1ee0254)
-- Leiningen (Leiningen 2.9.2 on Java 1.8.0_242 OpenJDK 64-Bit Server VM)
+- helm (v3.1.1+gafe7058)
+- Leiningen (Leiningen 2.9.1 on Java 1.8.0_242 OpenJDK 64-Bit Server VM)
- Mercurial (Mercurial Distributed SCM (version 4.4.1))
- Miniconda (conda 4.7.12)
- Mono (Mono JIT compiler version 6.8.0.105 (tarball Tue Feb 4 21:20:35 UTC 2020))
@@ -168,9 +164,11 @@ Local version: Unknown)
- n (6.3.1)
- Parcel (1.12.4)
- TypeScript (Version 3.8.3)
-- Webpack (4.41.6)
+- Webpack (4.42.0)
- Webpack CLI (3.3.11)
-- Yarn (1.22.0)
+- Yarn (1.22.1)
+- Bazel (bazel 2.2.0)
+- Bazelisk (1.3.0)
- PhantomJS (2.1.1)
- PHP 5.6 (PHP 5.6.40-24+ubuntu16.04.1+deb.sury.org+1 (cli) )
- PHP 7.0 (PHP 7.0.33-23+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:20:42) ( NTS ))
@@ -182,7 +180,7 @@ Local version: Unknown)
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate
- psql (PostgreSQL) 9.5.19
-- Powershell (PowerShell 6.2.4)
+- Powershell (PowerShell 7.0.0)
- ruby (2.3.1p112)
- gem (3.1.2)
- rustup (1.21.1)
@@ -195,11 +193,13 @@ Local version: Unknown)
the
0.53.1)
- cbindgen (0.13.1)
+- Julia (julia version 1.3.1)
- sbt (1.3.8)
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
- Sphinx Open Source Search Server
- Subversion (svn, version 1.9.3 (r1718519))
-- Terraform (Terraform v0.12.21)
+- Terraform (Terraform v0.12.23)
+- Packer (1.5.4)
- Vcpkg 2020.02.04-unknownhash
- Zeit Now CLI (17.0.4)
- Google Repository 58
@@ -227,6 +227,7 @@ the
- Android SDK Platform 15
- Android SDK Platform 10
- Android SDK Patch Applier v4
+- Android SDK Build-Tools 29.0.3
- Android SDK Build-Tools 29.0.2
- Android SDK Build-Tools 29.0.0
- Android SDK Build-Tools 28.0.3
diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md
index 4b35378c3..94f3547f9 100644
--- a/images/linux/Ubuntu1804-README.md
+++ b/images/linux/Ubuntu1804-README.md
@@ -1,16 +1,11 @@
# Ubuntu 18.04.4 LTS
-The following software is installed on machines with the 20200301.1 update.
+The following software is installed on machines with the 20200308.0 update.
***
- 7-Zip 16.02
-- Ansible (ansible 2.9.4)
+- Ansible (ansible 2.9.6)
- AzCopy (azcopy 7.3.0-netcore)
- Azure CLI (azure-cli 2.1.0)
- Azure CLI (azure-devops 0.17.0)
-- Bazel (Build label: 2.1.1
-Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
-Build time: Fri Feb 21 14:56:47 2020 (1582297007)
-Build timestamp: 1582297007
-Build timestamp as int: 1582297007)
- Basic CLI:
- curl
- dnsutils
@@ -37,7 +32,7 @@ Build timestamp as int: 1582297007)
- wget
- zip
- zstd
-- AWS CLI (aws-cli/1.18.11 Python/2.7.17 Linux/5.0.0-1032-azure botocore/1.15.11)
+- AWS CLI (aws-cli/1.18.16 Python/2.7.17 Linux/5.0.0-1032-azure botocore/1.15.16)
- build-essential
- Clang 6.0 (6.0.1)
- Clang 8 (8.0.1)
@@ -107,7 +102,7 @@ Build timestamp as int: 1582297007)
- 2.1.300
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.4)
- Firefox (Mozilla Firefox 73.0.1)
-- Geckodriver (); Gecko Driver is available via GECKOWEBDRIVER environment variable
+- Geckodriver (0.26.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
- GNU C++ 7.4.0
- GNU C++ 8.3.0
- GNU C++ 9.2.1
@@ -118,9 +113,9 @@ Build timestamp as int: 1582297007)
- Go 1.11 (go version go1.11.12 linux/amd64)
- Go 1.12 (go version go1.12.7 linux/amd64)
- Go 1.13 (go version go1.13 linux/amd64)
-- Google Chrome (Google Chrome 80.0.3987.122 )
-- Chromedriver (ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882})); Chrome Driver is available via CHROMEWEBDRIVER environment variable
-- Google Cloud SDK (282.0.0)
+- Google Chrome (Google Chrome 80.0.3987.132 )
+- ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}); Chrome Driver is available via CHROMEWEBDRIVER environment variable
+- Google Cloud SDK (283.0.0)
- Haskell Cabal (cabal-install version 2.0.0.1
compiled using version 2.0.1.1 of the Cabal library )
- Haskell Cabal (cabal-install version 2.2.0.0
@@ -138,21 +133,22 @@ compiled using version 3.0.2.0 of the Cabal library )
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.6.5)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.2)
+- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.3)
- Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2)
-- Heroku (heroku/7.38.2 linux-x64 node-v12.13.0)
-- HHVM (HipHop VM 4.46.0 (rel))
+- Heroku (heroku/7.39.0 linux-x64 node-v12.13.0)
+- HHVM (HipHop VM 4.47.0 (rel))
- ImageMagick
- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_252")
- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_242")
- Azul Zulu OpenJDK (11) (openjdk version "11.0.6" 2020-01-14 LTS)
- Azul Zulu OpenJDK (12) (openjdk version "12.0.2" 2019-07-16)
- Ant (Apache Ant(TM) version 1.10.5 compiled on March 28 2019)
-- Gradle 6.2.1
+- Gradle 6.2.2
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
- Kind (kind v0.7.0 go1.13.6 linux/amd64)
- kubectl (Client Version: v1.17.3)
-- helm (Client: v2.16.3+g1ee0254)
-- Leiningen (Leiningen 2.9.2 on Java 1.8.0_242 OpenJDK 64-Bit Server VM)
+- helm (v3.1.1+gafe7058)
+- Leiningen (Leiningen 2.9.1 on Java 1.8.0_242 OpenJDK 64-Bit Server VM)
- Mercurial (Mercurial Distributed SCM (version 4.5.3))
- Miniconda (conda 4.7.12)
- Mono (Mono JIT compiler version 6.8.0.105 (tarball Tue Feb 4 21:20:20 UTC 2020))
@@ -166,9 +162,11 @@ Local version: Unknown)
- n (6.3.1)
- Parcel (1.12.4)
- TypeScript (Version 3.8.3)
-- Webpack (4.41.6)
+- Webpack (4.42.0)
- Webpack CLI (3.3.11)
-- Yarn (1.22.0)
+- Yarn (1.22.1)
+- Bazel (bazel 2.2.0)
+- Bazelisk (1.3.0)
- PhantomJS (2.1.1)
- PHP 7.1 (PHP 7.1.33-12+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:22:16) ( NTS ))
- PHP 7.2 (PHP 7.2.28-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:23:25) ( NTS ))
@@ -178,7 +176,7 @@ Local version: Unknown)
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate
- psql (PostgreSQL) 10.12
-- Powershell (PowerShell 6.2.4)
+- Powershell (PowerShell 7.0.0)
- ruby (2.5.1p57)
- gem (3.1.2)
- rustup (1.21.1)
@@ -191,11 +189,13 @@ Local version: Unknown)
the
0.53.1)
- cbindgen (0.13.1)
+- Julia (julia version 1.3.1)
- sbt (1.3.8)
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
- Sphinx Open Source Search Server
- Subversion (svn, version 1.9.7 (r1800392))
-- Terraform (Terraform v0.12.21)
+- Terraform (Terraform v0.12.23)
+- Packer (1.5.4)
- Vcpkg 2020.02.04-unknownhash
- Zeit Now CLI (17.0.4)
- Google Repository 58
@@ -219,6 +219,7 @@ the
- Android SDK Platform 19
- Android SDK Platform 17
- Android SDK Patch Applier v4
+- Android SDK Build-Tools 29.0.3
- Android SDK Build-Tools 29.0.2
- Android SDK Build-Tools 29.0.0
- Android SDK Build-Tools 28.0.3
diff --git a/images/linux/scripts/installers/1604/android.sh b/images/linux/scripts/installers/1604/android.sh
index 95a44edcf..aaf2ad390 100644
--- a/images/linux/scripts/installers/1604/android.sh
+++ b/images/linux/scripts/installers/1604/android.sh
@@ -82,6 +82,7 @@ echo "y" | ${ANDROID_ROOT}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} \
"add-ons;addon-google_apis-google-22" \
"add-ons;addon-google_apis-google-21" \
"cmake;3.6.4111459" \
+ "cmake;3.10.2.4988404" \
"patcher;v4"
# Document what was added to the image
diff --git a/images/linux/scripts/installers/1804/android.sh b/images/linux/scripts/installers/1804/android.sh
index 716f8bb19..a0fbb2eb1 100644
--- a/images/linux/scripts/installers/1804/android.sh
+++ b/images/linux/scripts/installers/1804/android.sh
@@ -76,6 +76,7 @@ echo "y" | ${ANDROID_ROOT}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} \
"add-ons;addon-google_apis-google-22" \
"add-ons;addon-google_apis-google-21" \
"cmake;3.6.4111459" \
+ "cmake;3.10.2.4988404" \
"patcher;v4"
# Document what was added to the image
diff --git a/images/linux/scripts/installers/configure-environment.sh b/images/linux/scripts/installers/configure-environment.sh
new file mode 100644
index 000000000..35e3dba6b
--- /dev/null
+++ b/images/linux/scripts/installers/configure-environment.sh
@@ -0,0 +1,7 @@
+#Set ImageVersion and ImageOS env variables
+echo ImageVersion=$IMAGE_VERSION | tee -a /etc/environment
+echo ImageOS=$IMAGE_OS | tee -a /etc/environment
+
+# This directory is supposed to be created in $HOME and owned by user(https://github.com/actions/virtual-environments/issues/491)
+mkdir -p /etc/skel/.config/configstore
+echo 'export XDG_CONFIG_HOME=$HOME/.config' | tee -a /etc/skel/.bashrc
diff --git a/images/linux/scripts/installers/git.sh b/images/linux/scripts/installers/git.sh
index 026e73cd9..1d8e58a14 100644
--- a/images/linux/scripts/installers/git.sh
+++ b/images/linux/scripts/installers/git.sh
@@ -35,3 +35,13 @@ echo "Lastly, document the installed versions"
DocumentInstalledItem "Git ($(git --version 2>&1 | cut -d ' ' -f 3))"
# git-lfs/2.6.1 (GitHub; linux amd64; go 1.11.1)
DocumentInstalledItem "Git Large File Storage (LFS) ($(git-lfs --version 2>&1 | cut -d ' ' -f 1 | cut -d '/' -f 2))"
+
+#Install hub
+snap install hub --classic
+if command -v hub; then
+ echo "hub CLI was installed successfully"
+ DocumentInstalledItem "Hub CLI ($(hub --version | grep "hub version" | cut -d ' ' -f 3))"
+else
+ echo "[!] Hub CLI was not installed"
+ exit 1
+fi
diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json
index 51e1bb51b..45b7386c7 100644
--- a/images/linux/ubuntu1604.json
+++ b/images/linux/ubuntu1604.json
@@ -123,9 +123,12 @@
},
{
"type": "shell",
- "inline": [
- "echo ImageVersion={{user `image_version`}} | tee -a /etc/environment",
- "echo ImageOS={{user `image_os`}} | tee -a /etc/environment"
+ "scripts": [
+ "{{template_dir}}/scripts/installers/configure-environment.sh"
+ ],
+ "environment_vars": [
+ "IMAGE_VERSION={{user `image_version`}}",
+ "IMAGE_OS={{user `image_os`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json
index 33800251c..4cf6f15bb 100644
--- a/images/linux/ubuntu1804.json
+++ b/images/linux/ubuntu1804.json
@@ -126,9 +126,12 @@
},
{
"type": "shell",
- "inline": [
- "echo ImageVersion={{user `image_version`}} | tee -a /etc/environment",
- "echo ImageOS={{user `image_os`}} | tee -a /etc/environment"
+ "scripts": [
+ "{{template_dir}}/scripts/installers/configure-environment.sh"
+ ],
+ "environment_vars": [
+ "IMAGE_VERSION={{user `image_version`}}",
+ "IMAGE_OS={{user `image_os`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md
index aae451696..10c9ac286 100644
--- a/images/macos/macos-10.15-Readme.md
+++ b/images/macos/macos-10.15-Readme.md
@@ -1,5 +1,5 @@
# macOS Catalina 10.15.3 (19D76)
-The following software is installed on machines with the 20200224.1 update.
+The following software is installed on machines with the 20200307.2 update.
#### Xcode 11.3.1 set by default
## Operating System
@@ -21,40 +21,42 @@ The following software is installed on machines with the 20200224.1 update.
- GNU Fortran (Homebrew GCC 9.2.0_3) 9.2.0
- Node.js v12.16.1
- NVM 0.33.11
-- NVM - Cached node versions: v6.17.1 v8.17.0 v10.19.0 v12.16.1 v13.9.0
-- PowerShell 6.2.4
+- NVM - Cached node versions: v6.17.1 v8.17.0 v10.19.0 v12.16.1 v13.10.1
+- PowerShell 7.0.0
- Python 2.7.17
- Python 3.7.6
- Ruby 2.6.5p114
- .NET SDK 2.0.0 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101
- Go 1.14
- PHP 7.4.3
+- julia 1.3.1
### Package Management
- Rustup 1.21.1
+- Vcpkg 2020.02.04
- Bundler version 2.1.4
- Carthage 0.34.0
- CocoaPods 1.9.0
-- Homebrew 2.2.6
+- Homebrew 2.2.9
- NPM 6.13.4
-- Yarn 1.22.0
+- Yarn 1.22.1
- NuGet 5.4.0.6315
- Pip 19.3.1 (python 2.7)
- Pip 19.3.1 (python 3.7)
- Miniconda 4.7.12
- RubyGems 3.1.2
-- Vcpkg 2020.02.04
### Project Management
- Apache Maven 3.6.3
-- Gradle 6.2.1
+- Gradle 6.2.2
### Utilities
-- Curl 7.68.0
-- Git: 2.25.0
+- Curl 7.69.0
+- Git: 2.25.1
- Git LFS: 2.10.0
- GNU Wget 1.20.3
- Subversion (SVN) 1.13.0
+- Packer 1.5.4
- GNU parallel 20200222
- OpenSSL 1.0.2t 10 Sep 2019
- jq 1.6
@@ -63,18 +65,20 @@ The following software is installed on machines with the 20200224.1 update.
- aria2 1.35.0
- azcopy 10.3.4
- zstd 1.4.4
+- bazel 2.2.0
+- bazelisk v1.3.0
### Tools
-- Fastlane 2.142.0
-- Cmake 3.16.4
+- Fastlane 2.143.0
+- Cmake 3.16.5
- App Center CLI 2.3.3
- Azure CLI 2.1.0
### Browsers
-- Google Chrome 80.0.3987.122
+- Google Chrome 80.0.3987.132
- ChromeDriver 80.0.3987.106
-- Microsoft Edge 80.0.361.62
-- MSEdgeDriver 80.0.361.62
+- Microsoft Edge 80.0.361.66
+- MSEdgeDriver 80.0.361.66
- Mozilla Firefox 73.0.1
- geckodriver 0.26.0
@@ -98,7 +102,7 @@ The following software is installed on machines with the 20200224.1 update.
### Xamarin
#### Visual Studio for Mac
-- 8.4.7.17
+- 8.4.8.2
#### Mono
- 6.6.0.166
@@ -126,7 +130,7 @@ The following software is installed on machines with the 20200224.1 update.
### Xcode
| Version | Build | Path |
| ---------------- | ------- | --------------------------------- |
-| 11.4 (beta) | 11N123k | /Applications/Xcode_11.4_beta.app |
+| 11.4 (beta) | 11N132i | /Applications/Xcode_11.4_beta.app |
| 11.3.1 (default) | 11C505 | /Applications/Xcode_11.3.1.app |
| 11.3 | 11C29 | /Applications/Xcode_11.3.app |
| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app |
@@ -185,9 +189,9 @@ The following software is installed on machines with the 20200224.1 update.
### Android
#### Android SDK Tools
-| Package Name | Description |
-| ---------------------------------- | ---------------------------------- |
-| tools | Android SDK Tools, Revision 26.1.1 |
+| Package Name | Description |
+| ------------ | ---------------------------------- |
+| tools | Android SDK Tools, Revision 26.1.1 |
#### Android SDK Platform-Tools
| Package Name | Description |
@@ -257,4 +261,3 @@ The following software is installed on machines with the 20200224.1 update.
| Google Repository | 58 |
| Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 |
-
diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json
index e24bd75e8..0ad1e3f42 100644
--- a/images/win/Windows2016-Azure.json
+++ b/images/win/Windows2016-Azure.json
@@ -28,7 +28,10 @@
"capture_name_prefix": "packer",
"image_version": "dev",
"image_os": "win16",
- "github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}"
+ "github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}",
+ "go_versions": "1.9, 1.10, 1.11, 1.12, 1.13, 1.14",
+ "go_default": "1.14",
+ "boost_default": "1.69.0"
},
"sensitive-variables": ["install_password", "ssh_password", "client_secret", "github_feed_token"],
"builders": [
@@ -100,6 +103,12 @@
"{{ template_dir }}/scripts/Installers/Windows2016/Initialize-VM.ps1"
]
},
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Update-DotnetTLS.ps1"
+ ]
+ },
{
"type": "windows-restart",
"restart_timeout": "30m"
@@ -205,7 +214,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Install-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-Wix.ps1"
]
},
{
@@ -221,7 +230,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Install-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-WDK.ps1"
]
},
{
@@ -243,7 +252,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Validate-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-Wix.ps1"
]
},
{
@@ -255,7 +264,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Validate-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-WDK.ps1"
]
},
{
@@ -264,12 +273,6 @@
"{{ template_dir }}/scripts/Installers/Validate-ServiceFabricSDK.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Update-DotnetTLS.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -324,7 +327,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Install-Python.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-OpenSSL.ps1"
]
},
{
@@ -342,8 +345,8 @@
{
"type": "powershell",
"environment_vars": [
- "GO_VERSIONS=1.9.7,1.10.8,1.11.12,1.12.7,1.13",
- "GO_DEFAULT=1.12.7"
+ "GO_VERSIONS={{user `go_versions`}}",
+ "GO_DEFAULT={{user `go_default`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Go.ps1"
@@ -355,12 +358,6 @@
"{{ template_dir }}/scripts/Installers/Install-PHP.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Install-Ruby.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -520,8 +517,8 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0,1.72.0",
- "BOOST_DEFAULT=1.69.0"
+ "ROOT_FOLDER={{user `root_folder`}}",
+ "BOOST_DEFAULT={{user `boost_default`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Boost.ps1"
@@ -557,12 +554,6 @@
"{{ template_dir }}/scripts/Installers/Install-GitVersion.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Install-OpenSSL.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -633,7 +624,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Validate-Python.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-OpenSSL.ps1"
]
},
{
@@ -651,8 +642,8 @@
{
"type": "powershell",
"environment_vars": [
- "GO_VERSIONS=1.9.7,1.10.8,1.11.12,1.12.7,1.13",
- "GO_DEFAULT=1.12.7"
+ "GO_VERSIONS={{user `go_versions`}}",
+ "GO_DEFAULT={{ user `go_default`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Go.ps1"
@@ -661,8 +652,8 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0,1.72.0",
- "BOOST_DEFAULT=1.69.0"
+ "ROOT_FOLDER={{user `root_folder`}}",
+ "BOOST_DEFAULT={{user `boost_default`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Boost.ps1"
@@ -674,12 +665,6 @@
"{{ template_dir }}/scripts/Installers/Validate-PHP.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Validate-Ruby.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -842,12 +827,6 @@
"{{ template_dir }}/scripts/Installers/Validate-GitVersion.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Validate-OpenSSL.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md
index a130be1b3..c60d1ffa7 100644
--- a/images/win/Windows2016-Readme.md
+++ b/images/win/Windows2016-Readme.md
@@ -1,6 +1,6 @@
# Windows Server 2016
-The following software is installed on machines with the 20200301.1 update.
+The following software is installed on machines with the 20200308.0 update.
Components marked with **\*** have been upgraded since the previous version of the image.
@@ -25,7 +25,7 @@ _Environment:_
## Powershell Core
-_Version:_ 6.2.4
+_Version:_ 7.0.0
## Docker images
@@ -159,8 +159,8 @@ _Version:_ 10.0.17763.0
## Azure Service Fabric
-_SDK Version:_ 4.0.466.9590
-_Runtime Version:_ 7.0.466.9590
+_SDK Version:_ 4.0.470.9590
+_Runtime Version:_ 7.0.470.9590
## WinAppDriver
@@ -168,6 +168,10 @@ _Version:_ 1.1.1809.18001
## Android SDK Build Tools
+#### 29.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.3
+
#### 29.0.2
_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.2
@@ -441,6 +445,10 @@ _Environment:_
_Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64
+## Perl
+
+_Version:_ v5.30.1
+
## Git
_Version:_ 2.25.1
@@ -521,6 +529,10 @@ _Location:_ C:\Rust\.cargo\bin
_Environment:_
* PATH: contains the location of rustc.exe
+## Julia (x64)
+
+_Version:_ 1.3.1
+
## sbt
@@ -534,12 +546,12 @@ _Environment:_
## Google Chrome
_version:_
-80.0.3987.122
+80.0.3987.132
## Microsoft Edge
_version:_
-80.0.361.62
+80.0.361.66
## Mozilla Firefox
@@ -552,7 +564,7 @@ _version:_
#### Chrome Driver
_version:_
-3.8.0.0
+80.0.3987.106
_Environment:_
* ChromeWebDriver: location of chromedriver.exe
@@ -560,7 +572,7 @@ _Environment:_
#### Gecko Driver
_version:_
-
+0.26.0
_Environment:_
* GeckoWebDriver: location of geckodriver.exe
@@ -568,7 +580,7 @@ _Environment:_
#### IE Driver
_version:_
-80.0.3987.106
+3.8.0.0
_Environment:_
* IEWebDriver: location of IEDriverServer.exe
@@ -576,7 +588,7 @@ _Environment:_
#### Microsoft Edge Driver
_version:_
-79.0.309.71
+80.0.361.66
_Environment:_
* EdgeWebDriver: location of msedgedriver.exe
@@ -590,7 +602,7 @@ _Environment:_
* PATH: contains location of node.exe
* Gulp CLI version: 2.2.0 Local version: Unknown
* Grunt grunt-cli v1.3.2
-* Yarn 1.22.0
+* Yarn 1.22.1
## npm
@@ -599,6 +611,14 @@ _Version:_ 6.13.4
_Environment:_
* PATH: contains location of npm.cmd
+## bazel
+
+_Version:_ bazel 2.1.0
+
+## bazelisk
+
+_Version:_ 1.3.0
+
## Java Development Kit
#### 1.8.0_222
@@ -632,13 +652,13 @@ _Environment:_
## Gradle
-_Version:_ 6.2.1
+_Version:_ 6.2.2
_Environment:_
* PATH: contains location of gradle
## Cmake
-_Version:_ 3.16.4
+_Version:_ 3.16.5
_Environment:_
* PATH: contains location of cmake.exe
@@ -657,10 +677,6 @@ _Environment:_
_SDK:_
* 3.1.101 C:\Program Files\dotnet\sdk\3.1.101
* 3.1.100 C:\Program Files\dotnet\sdk\3.1.100
-* 3.0.103 C:\Program Files\dotnet\sdk\3.0.103
-* 3.0.102 C:\Program Files\dotnet\sdk\3.0.102
-* 3.0.101 C:\Program Files\dotnet\sdk\3.0.101
-* 3.0.100 C:\Program Files\dotnet\sdk\3.0.100
* 2.2.402 C:\Program Files\dotnet\sdk\2.2.402
* 2.2.401 C:\Program Files\dotnet\sdk\2.2.401
* 2.2.301 C:\Program Files\dotnet\sdk\2.2.301
@@ -720,10 +736,6 @@ _SDK:_
_Runtime:_
* 3.1.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.1
* 3.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.0
-* 3.0.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.3
-* 3.0.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.2
-* 3.0.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.1
-* 3.0.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.0
* 2.2.8 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.8
* 2.2.7 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.7
* 2.2.6 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.6
@@ -793,9 +805,13 @@ _Location:_ C:\Program Files\Azure Cosmos DB Emulator\
_Version:_ 19.00
+## Packer
+
+_Version:_ 1.5.4
+
## Mercurial
-_Version:_
+_Version:_ 5.0
## jq
@@ -803,27 +819,23 @@ _Version:_ jq-1.6
## zstd
-_Version:_ v1.4.0
+_Version:_ 1.4.0
## Inno Setup
_Version:_ 6.0.3
-## Perl
-
-_Version:_ v5.26.2
-
## GitVersion
-_Version:_ 5.1.3.0
+_Version:_ 5.2.0.0
## OpenSSL
-_Version:_ 1.1.1d at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
_Version:_ 1.1.1c at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
+_Version:_ 1.1.1c at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
## Cloud Foundry CLI
-_Version:_ 6.49.0
+_Version:_ 6.50.0
## Vcpkg
@@ -843,7 +855,3 @@ _Environment:_
_Version:_ kind v0.7.0 go1.13.6 windows/amd64
_Environment:_
* PATH: contains location of kind.exe
-
-## bazel
-
-_Version:_ bazel 2.1.0
diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json
index 668451eb5..2023be503 100644
--- a/images/win/Windows2019-Azure.json
+++ b/images/win/Windows2019-Azure.json
@@ -28,7 +28,10 @@
"capture_name_prefix": "packer",
"image_version": "dev",
"image_os": "win19",
- "github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}"
+ "github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}",
+ "go_versions": "1.9, 1.10, 1.11, 1.12, 1.13, 1.14",
+ "go_default": "1.14",
+ "boost_default": "1.72.0"
},
"sensitive-variables": ["install_password", "ssh_password", "client_secret", "github_feed_token"],
"builders": [
@@ -100,6 +103,12 @@
"{{ template_dir }}/scripts/Installers/Windows2019/Initialize-VM.ps1"
]
},
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Update-DotnetTLS.ps1"
+ ]
+ },
{
"type": "windows-restart",
"restart_timeout": "10m"
@@ -180,13 +189,13 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Install-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-Wix.ps1"
]
},
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1"
+ "{{ template_dir }}/scripts/Installers/Windows2019/Install-SSDTExtensions.ps1"
]
},
{
@@ -202,7 +211,7 @@
{
"type": "powershell",
"scripts": [
- "{{ template_dir }}/scripts/Installers/Windows2019/Install-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-WDK.ps1"
]
},
{
@@ -218,13 +227,13 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Validate-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-Wix.ps1"
]
},
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1"
+ "{{ template_dir }}/scripts/Installers/Windows2019/Validate-SSDTExtensions.ps1"
]
},
{
@@ -236,7 +245,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Validate-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-WDK.ps1"
]
},
{
@@ -245,12 +254,6 @@
"{{ template_dir }}/scripts/Installers/Validate-ServiceFabricSDK.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Update-DotnetTLS.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -299,7 +302,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Install-Python.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-OpenSSL.ps1"
]
},
{
@@ -317,8 +320,8 @@
{
"type": "powershell",
"environment_vars": [
- "GO_VERSIONS=1.10.8,1.11.12,1.12.7,1.13",
- "GO_DEFAULT=1.12.7"
+ "GO_VERSIONS={{user `go_versions`}}",
+ "GO_DEFAULT={{user `go_default`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Go.ps1"
@@ -330,12 +333,6 @@
"{{ template_dir }}/scripts/Installers/Install-PHP.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Install-Ruby.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -501,8 +498,8 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0,1.72.0",
- "BOOST_DEFAULT=1.72.0"
+ "ROOT_FOLDER={{user `root_folder`}}",
+ "BOOST_DEFAULT={{user `boost_default`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Boost.ps1"
@@ -538,12 +535,6 @@
"{{ template_dir }}/scripts/Installers/Install-GitVersion.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Install-OpenSSL.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -620,7 +611,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Validate-Python.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-OpenSSL.ps1"
]
},
{
@@ -638,8 +629,8 @@
{
"type": "powershell",
"environment_vars": [
- "GO_VERSIONS=1.10.8,1.11.12,1.12.7,1.13",
- "GO_DEFAULT=1.12.7"
+ "GO_VERSIONS={{user `go_versions`}}",
+ "GO_DEFAULT={{user `go_default`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Go.ps1"
@@ -648,8 +639,8 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0,1.72.0",
- "BOOST_DEFAULT=1.72.0"
+ "ROOT_FOLDER={{user `root_folder`}}",
+ "BOOST_DEFAULT={{user `boost_default`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Boost.ps1"
@@ -661,12 +652,6 @@
"{{ template_dir }}/scripts/Installers/Validate-PHP.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Validate-Ruby.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -823,12 +808,6 @@
"{{ template_dir }}/scripts/Installers/Validate-GitVersion.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Validate-OpenSSL.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md
index 7eab9d90e..9819f9a84 100644
--- a/images/win/Windows2019-Readme.md
+++ b/images/win/Windows2019-Readme.md
@@ -1,6 +1,6 @@
# Windows Server 2019
-The following software is installed on machines with the 20200301.1 update.
+The following software is installed on machines with the 20200308.0 update.
Components marked with **\*** have been upgraded since the previous version of the image.
@@ -25,7 +25,7 @@ _Environment:_
## Powershell Core
-_Version:_ 6.2.4
+_Version:_ 7.0.0
## Docker images
@@ -93,6 +93,15 @@ The following workloads and components are installed with Visual Studio 2019:
* Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest
* Microsoft.VisualStudio.Component.VC.v141
* Microsoft.VisualStudio.Component.VC.v141.x86.x64
+* Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre
+* Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre
+* Microsoft.VisualStudio.Component.VC.v141.ARM64.Spectre
+* Microsoft.VisualStudio.Component.VC.v141.ATL.ARM.Spectre
+* Microsoft.VisualStudio.Component.VC.v141.ATL.ARM64.Spectre
+* Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre
+* Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre
+* Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre
+* Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre
* Microsoft.VisualStudio.Component.Windows10SDK.16299
* Microsoft.VisualStudio.Component.Windows10SDK.17134
* Microsoft.VisualStudio.Component.Windows10SDK.17763
@@ -127,6 +136,10 @@ _WIX Toolset Visual Studio Extension Version:_ 1.0.0.4
_Environment:_
* WIX: Installation root of WIX
+## Microsoft Analysis Services Projects Visual Studio Extension
+
+_Version:_ 2.9.5
+
## .NET 4.8
_Version:_ 4.8.03761
@@ -139,8 +152,8 @@ _WDK Visual Studio Extension Version:_ 10.0.18346.0
## Azure Service Fabric
-_SDK Version:_ 4.0.466.9590
-_Runtime Version:_ 7.0.466.9590
+_SDK Version:_ 4.0.470.9590
+_Runtime Version:_ 7.0.470.9590
## WinAppDriver
@@ -148,6 +161,10 @@ _Version:_ 1.1.1809.18001
## Android SDK Build Tools
+#### 29.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.3
+
#### 29.0.2
_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.2
@@ -421,6 +438,10 @@ _Environment:_
_Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64
+## Perl
+
+_Version:_ v5.30.1
+
## Git
_Version:_ 2.25.1
@@ -436,16 +457,6 @@ _Environment:_
## Go (x64)
-#### 1.10.8
-
-_Environment:_
-* GOROOT_1_10_X64: root directory of the Go 1.10.8 installation
-
-#### 1.11.12
-
-_Environment:_
-* GOROOT_1_11_X64: root directory of the Go 1.11.12 installation
-
#### 1.12.7
_Environment:_
@@ -496,6 +507,10 @@ _Location:_ C:\Rust\.cargo\bin
_Environment:_
* PATH: contains the location of rustc.exe
+## Julia (x64)
+
+_Version:_ 1.3.1
+
## Subversion
_Version:_ 1.8.17
@@ -509,12 +524,12 @@ _Environment:_
## Google Chrome
_version:_
-80.0.3987.122
+80.0.3987.132
## Microsoft Edge
_version:_
-80.0.361.62
+80.0.361.66
## Mozilla Firefox
@@ -527,7 +542,7 @@ _version:_
#### Chrome Driver
_version:_
-3.8.0.0
+80.0.3987.106
_Environment:_
* ChromeWebDriver: location of chromedriver.exe
@@ -535,7 +550,7 @@ _Environment:_
#### Gecko Driver
_version:_
-
+0.26.0
_Environment:_
* GeckoWebDriver: location of geckodriver.exe
@@ -543,7 +558,7 @@ _Environment:_
#### IE Driver
_version:_
-80.0.3987.106
+3.8.0.0
_Environment:_
* IEWebDriver: location of IEDriverServer.exe
@@ -551,7 +566,7 @@ _Environment:_
#### Microsoft Edge Driver
_version:_
-79.0.309.71
+80.0.361.66
_Environment:_
* EdgeWebDriver: location of msedgedriver.exe
@@ -565,7 +580,7 @@ _Environment:_
* PATH: contains location of node.exe
* Gulp CLI version: 2.2.0 Local version: Unknown
* Grunt grunt-cli v1.3.2
-* Yarn 1.22.0
+* Yarn 1.22.1
## npm
@@ -607,13 +622,13 @@ _Environment:_
## Gradle
-_Version:_ 6.2.1
+_Version:_ 6.2.2
_Environment:_
* PATH: contains location of gradle
## Cmake
-_Version:_ 3.16.4
+_Version:_ 3.16.5
_Environment:_
* PATH: contains location of cmake.exe
@@ -632,10 +647,6 @@ _Environment:_
_SDK:_
* 3.1.101 C:\Program Files\dotnet\sdk\3.1.101
* 3.1.100 C:\Program Files\dotnet\sdk\3.1.100
-* 3.0.103 C:\Program Files\dotnet\sdk\3.0.103
-* 3.0.102 C:\Program Files\dotnet\sdk\3.0.102
-* 3.0.101 C:\Program Files\dotnet\sdk\3.0.101
-* 3.0.100 C:\Program Files\dotnet\sdk\3.0.100
* 2.2.402 C:\Program Files\dotnet\sdk\2.2.402
* 2.2.401 C:\Program Files\dotnet\sdk\2.2.401
* 2.2.301 C:\Program Files\dotnet\sdk\2.2.301
@@ -693,10 +704,6 @@ _SDK:_
_Runtime:_
* 3.1.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.1
* 3.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.0
-* 3.0.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.3
-* 3.0.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.2
-* 3.0.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.1
-* 3.0.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.0
* 2.2.8 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.8
* 2.2.7 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.7
* 2.2.6 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.6
@@ -763,33 +770,37 @@ _Location:_ C:\Program Files\Azure Cosmos DB Emulator\
_Version:_ 19.00
+## Packer
+
+_Version:_ 1.5.4
+
## Mercurial
-_Version:_
+_Version:_ 5.0
## jq
_Version:_ jq-1.6
+## zstd
+
+_Version:_ 1.4.0
+
## Inno Setup
_Version:_ 6.0.3
-## Perl
-
-_Version:_ v5.26.2
-
## GitVersion
-_Version:_ 5.1.3.0
+_Version:_ 5.2.0.0
## OpenSSL
-_Version:_ 1.1.1d at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
_Version:_ 1.1.1c at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
+_Version:_ 1.1.1c at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
## Cloud Foundry CLI
-_Version:_ 6.49.0
+_Version:_ 6.50.0
## Vcpkg
@@ -800,7 +811,7 @@ _Environment:_
## VSWhere
-_Version_: Visual Studio Locator version 2.8.4+ff0de50053 [query version 2.3.2200.14893] Copyright (C) Microsoft Corporation. All rights reserved. instanceId: 34bc4745 installDate: 3/1/2020 6:49:00 AM installationName: VisualStudio/16.4.5+29806.167 installationPath: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise installationVersion: 16.4.29806.167 productId: Microsoft.VisualStudio.Product.Enterprise productPath: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv.exe state: 4294967295 isComplete: 1 isLaunchable: 1 isPrerelease: 0 isRebootRequired: 0 displayName: Visual Studio Enterprise 2019 description: Scalable, end-to-end solution for teams of any size channelId: VisualStudio.16.Release channelUri: https://aka.ms/vs/16/release/channel enginePath: C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service releaseNotes: https://go.microsoft.com/fwlink/?LinkId=660893#16.4.5 thirdPartyNotices: https://go.microsoft.com/fwlink/?LinkId=660909 updateDate: 2020-03-01T06:49:00.926083Z catalog_buildBranch: d16.4 catalog_buildVersion: 16.4.29806.167 catalog_id: VisualStudio/16.4.5+29806.167 catalog_localBuild: build-lab catalog_manifestName: VisualStudio catalog_manifestType: installer catalog_productDisplayVersion: 16.4.5 catalog_productLine: Dev16 catalog_productLineVersion: 2019 catalog_productMilestone: RTW catalog_productMilestoneIsPreRelease: False catalog_productName: Visual Studio catalog_productPatchVersion: 5 catalog_productPreReleaseMilestoneSuffix: 1.0 catalog_productSemanticVersion: 16.4.5+29806.167 catalog_requiredEngineVersion: 2.4.1111.43337 properties_campaignId: properties_channelManifestId: VisualStudio.16.Release/16.4.5+29806.167 properties_nickname: properties_setupEngineFilePath: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installershell.exe
+_Version_: 2.8.4+ff0de50053 - shim 0.8.1
* PATH: contains location of vswhere.exe
## Kubectl
@@ -818,3 +829,7 @@ _Environment:_
## bazel
_Version:_ bazel 2.1.0
+
+## bazelisk
+
+_Version:_ 1.3.0
diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
index ae58a9818..743dc7a18 100644
--- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1
+++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
@@ -14,9 +14,15 @@ Export-ModuleMember -Function @(
'Set-SystemVariable'
'Install-MSI'
'Install-EXE'
+ 'Get-ToolcachePackages'
+ 'Get-ToolsByName'
'Add-ContentToMarkdown'
'Add-SoftwareDetailsToMarkdown'
'Stop-SvcWithErrHandling'
'Set-SvcWithErrHandling'
- 'Get-VS19ExtensionVersion'
+ 'Install-VsixExtension'
+ 'Get-VSExtensionVersion'
+ 'Get-WinVersion'
+ 'Test-IsWin19'
+ 'Test-IsWin16'
)
diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
index f6c553b2c..61dce5628 100644
--- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1
+++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
@@ -161,7 +161,94 @@ Hashtable for service arguments
}
}
-function Get-VS19ExtensionVersion
+function Install-VsixExtension
+{
+ Param
+ (
+ [string] $Url,
+ [Parameter(Mandatory = $true)]
+ [string] $Name,
+ [string] $FilePath,
+ [Parameter(Mandatory = $true)]
+ [string] $VSversion,
+ [int] $retries = 20,
+ [switch] $InstallOnly
+ )
+
+ if (!$InstallOnly)
+ {
+ $FilePath = "${env:Temp}\$Name"
+
+ while($retries -gt 0)
+ {
+ try
+ {
+ Write-Host "Downloading $Name..."
+ (New-Object System.Net.WebClient).DownloadFile($Url, $FilePath)
+ break
+ }
+ catch
+ {
+ Write-Host "There is an error during $Name downloading"
+ $_
+
+ $retries--
+
+ if ($retries -eq 0)
+ {
+ Write-Host "File can't be downloaded"
+ $_
+ exit 1
+ }
+
+ Write-Host "Waiting 30 seconds before retrying. Retries left: $retries"
+ Start-Sleep -Seconds 30
+ }
+ }
+ }
+
+ $ArgumentList = ('/quiet', "`"$FilePath`"")
+
+ Write-Host "Starting Install $Name..."
+ try
+ {
+ #There are 2 types of packages at the moment - exe and vsix
+ if ($Name -match "vsix")
+ {
+ $process = Start-Process -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\$VSversion\Enterprise\Common7\IDE\VSIXInstaller.exe" -ArgumentList $ArgumentList -Wait -PassThru
+ }
+ else
+ {
+ $process = Start-Process -FilePath ${env:Temp}\$Name /Q -Wait -PassThru
+ }
+ }
+ catch
+ {
+ Write-Host "There is an error during $Name installation"
+ $_
+ exit 1
+ }
+
+ $exitCode = $process.ExitCode
+
+ if ($exitCode -eq 0 -or $exitCode -eq 1001) # 1001 means the extension is already installed
+ {
+ Write-Host "$Name installed successfully"
+ }
+ else
+ {
+ Write-Host "Unsuccessful exit code returned by the installation process: $exitCode."
+ exit 1
+ }
+
+ #Cleanup downloaded installation files
+ if (!$InstallOnly)
+ {
+ Remove-Item -Force -Confirm:$false $FilePath
+ }
+}
+
+function Get-VSExtensionVersion
{
param (
[string] [Parameter(Mandatory=$true)] $packageName
@@ -187,3 +274,41 @@ function Get-VS19ExtensionVersion
return $packageVersion
}
+
+
+function Get-ToolcachePackages {
+ $toolcachePath = Join-Path $env:ROOT_FOLDER "toolcache.json"
+ Get-Content -Raw $toolcachePath | ConvertFrom-Json
+}
+
+function Get-ToolsByName {
+ param (
+ [Parameter(Mandatory = $True)]
+ [string]$SoftwareName
+ )
+
+ (Get-ToolcachePackages).PSObject.Properties | Where-Object { $_.Name -match $SoftwareName } | ForEach-Object {
+ $packageNameParts = $_.Name.Split("-")
+ [PSCustomObject] @{
+ ToolName = $packageNameParts[1]
+ Versions = $_.Value
+ Architecture = $packageNameParts[3,4] -join "-"
+ }
+ }
+}
+
+function Get-WinVersion
+{
+ (Get-WmiObject -class Win32_OperatingSystem).Caption
+}
+
+function Test-IsWin19
+{
+ (Get-WinVersion) -match "2019"
+}
+
+function Test-IsWin16
+{
+ (Get-WinVersion) -match "2016"
+}
+
diff --git a/images/win/scripts/Installers/Download-ToolCache.ps1 b/images/win/scripts/Installers/Download-ToolCache.ps1
index 591f0f1cc..cc42e97ec 100644
--- a/images/win/scripts/Installers/Download-ToolCache.ps1
+++ b/images/win/scripts/Installers/Download-ToolCache.ps1
@@ -44,6 +44,39 @@ Function NPMFeed-AuthSetup {
$npmrcContent | Out-File -FilePath "$($env:TEMP)/.npmrc" -Encoding utf8
}
+Function Set-DefaultPythonVersion {
+ param(
+ [Parameter(Mandatory=$true)]
+ [System.Version] $Version,
+ [System.String] $Arch = "x64"
+ )
+
+ $pythonPath = $Env:AGENT_TOOLSDIRECTORY + "/Python/${Version}*/${Arch}"
+ $pythonDir = Get-Item -Path $pythonPath
+
+ Write-Host "Use Python ${Version} as a system Python"
+ Add-MachinePathItem -PathItem $pythonDir.FullName
+ Add-MachinePathItem -PathItem "$($pythonDir.FullName)\Scripts"
+}
+
+Function Set-DefaultRubyVersion {
+ param(
+ [Parameter(Mandatory=$true)]
+ [System.Version] $Version,
+ [System.String] $Arch = "x64"
+ )
+ $rubyPath = $Env:AGENT_TOOLSDIRECTORY + "/Ruby/${Version}*/${Arch}/bin"
+ $rubyDir = Get-Item -Path $rubyPath
+
+ Write-Host "Use Ruby ${Version} as a system Ruby"
+ Add-MachinePathItem -PathItem $rubyDir.FullName
+
+ # Update ruby gem to latest version
+ gem update --system
+}
+
+Import-Module -Name ImageHelpers -Force
+
$FeedPrefix = "https://npm.pkg.github.com"
$AccessToken = $env:GITHUB_FEED_TOKEN
@@ -71,7 +104,5 @@ $ToolVersions.PSObject.Properties | ForEach-Object {
}
}
-#junction point from the previous Python2 directory to the toolcache Python2
-Write-Host "Create symlink to Python2"
-$python2Dir = (Get-Item -Path ($ToolsDirectory + '/Python/2.7*/x64')).FullName
-cmd.exe /c mklink /d "C:\Python27amd64" "$python2Dir"
\ No newline at end of file
+Set-DefaultPythonVersion -Version "3.7"
+Set-DefaultRubyVersion -Version "2.5"
\ No newline at end of file
diff --git a/images/win/scripts/Installers/Install-Boost.ps1 b/images/win/scripts/Installers/Install-Boost.ps1
index 907f82d93..0931fb25a 100644
--- a/images/win/scripts/Installers/Install-Boost.ps1
+++ b/images/win/scripts/Installers/Install-Boost.ps1
@@ -4,8 +4,11 @@
## Desc: Install boost using tool cache
################################################################################
-$BoostDirectory = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "Boost"
-$BoostVersions = $env:BOOST_VERSIONS.split(',')
+Import-Module -Name ImageHelpers
+
+$SoftwareName = "Boost"
+$BoostDirectory = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath $SoftwareName
+$BoostVersions = (Get-ToolsByName -SoftwareName $SoftwareName).Versions | Foreach-Object {"{0}.0" -f $_}
$BoostDefault = $env:BOOST_DEFAULT
foreach($BoostVersion in $BoostVersions)
@@ -20,7 +23,5 @@ foreach($BoostVersion in $BoostVersions)
Write-Host "Adding Boost $BoostVersion to the path..."
# Add the Boost binaries to the path
Add-MachinePathItem $BoostInstallationDir | Out-Null
- # Set the BOOSTROOT environment variable
- setx BOOST_ROOT $BoostInstallationDir /M | Out-Null
}
}
diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1
index a67d7c998..24efc5bd0 100644
--- a/images/win/scripts/Installers/Install-Git.ps1
+++ b/images/win/scripts/Installers/Install-Git.ps1
@@ -8,6 +8,7 @@ Import-Module -Name ImageHelpers
# Install the latest version of Git which is bundled with Git LFS.
# See https://chocolatey.org/packages/git
choco install git -y --package-parameters="/GitAndUnixToolsOnPath /WindowsTerminal /NoShellIntegration"
+choco install hub
# Disable GCM machine-wide
[Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine)
diff --git a/images/win/scripts/Installers/Install-Go.ps1 b/images/win/scripts/Installers/Install-Go.ps1
index c33baeca4..db186186d 100644
--- a/images/win/scripts/Installers/Install-Go.ps1
+++ b/images/win/scripts/Installers/Install-Go.ps1
@@ -5,6 +5,7 @@
Import-Module -Name ImageHelpers -Force
+$refsJson = Invoke-RestMethod "https://api.github.com/repos/golang/go/git/refs/tags"
function Install-GoVersion
{
Param
@@ -13,17 +14,20 @@ function Install-GoVersion
[Switch]$addToDefaultPath
)
+ $latestVersionObject = $refsJson | Where-Object { $_.ref -Match "refs/tags/go$goVersion[./d]*" } | Select-Object -Last 1
+ $latestVersion = $latestVersionObject.ref.replace('refs/tags/go','')
+
# Download the Go zip archive.
- Write-Host "Downloading Go $goVersion..."
+ Write-Host "Downloading Go $latestVersion..."
$ProgressPreference = 'SilentlyContinue'
- Invoke-WebRequest -UseBasicParsing -Uri "https://dl.google.com/go/go$goVersion.windows-amd64.zip" -OutFile go$goVersion.windows-amd64.zip
+ Invoke-WebRequest -UseBasicParsing -Uri "https://dl.google.com/go/go$latestVersion.windows-amd64.zip" -OutFile go$latestVersion.windows-amd64.zip
# Extract the zip archive. It contains a single directory named "go".
- Write-Host "Extracting Go $goVersion..."
- Expand-Archive -Path go$goVersion.windows-amd64.zip -DestinationPath "C:\" -Force
+ Write-Host "Extracting Go $latestVersion..."
+ Expand-Archive -Path go$latestVersion.windows-amd64.zip -DestinationPath "C:\" -Force
# Delete unnecessary files to conserve space
- Write-Host "Cleaning directories of Go $goVersion..."
+ Write-Host "Cleaning directories of Go $latestVersion..."
if (Test-Path "C:\go\doc")
{
Remove-Item -Recurse -Force "C:\go\doc"
@@ -34,17 +38,17 @@ function Install-GoVersion
}
# Rename the extracted "go" directory to include the Go version number (to support side-by-side versions of Go).
- $newDirName = "Go$goVersion"
+ $newDirName = "Go$latestVersion"
Rename-Item -path "C:\go" -newName $newDirName
# Delete the Go zip archive.
- Write-Host "Deleting downloaded archive of Go $goVersion..."
- Remove-Item go$goVersion.windows-a`md64.zip
+ Write-Host "Deleting downloaded archive of Go $latestVersion..."
+ Remove-Item go$latestVersion.windows-amd64.zip
# Make this the default version of Go?
if ($addToDefaultPath)
{
- Write-Host "Adding Go $goVersion to the path..."
+ Write-Host "Adding Go $latestVersion to the path..."
# Add the Go binaries to the path.
Add-MachinePathItem "C:\$newDirName\bin" | Out-Null
# Set the GOROOT environment variable.
@@ -52,12 +56,12 @@ function Install-GoVersion
}
# Done
- Write-Host "Done installing Go $goVersion."
+ Write-Host "Done installing Go $latestVersion."
return "C:\$newDirName"
}
# Install Go
-$goVersionsToInstall = $env:GO_VERSIONS.split(",")
+$goVersionsToInstall = $env:GO_VERSIONS.split(", ", [System.StringSplitOptions]::RemoveEmptyEntries)
foreach($go in $goVersionsToInstall) {
Write-Host "Installing Go ${go}"
@@ -66,6 +70,6 @@ foreach($go in $goVersionsToInstall) {
} else {
$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
}
diff --git a/images/win/scripts/Installers/Install-Ruby.ps1 b/images/win/scripts/Installers/Install-Ruby.ps1
deleted file mode 100644
index 546a4591e..000000000
--- a/images/win/scripts/Installers/Install-Ruby.ps1
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-## File: Install-Ruby.ps1
-## Desc: Install Ruby for Windows
-################################################################################
-
-Import-Module -Name ImageHelpers
-
-# Ruby versions are already available in the tool cache.
-
-# Tool cache Ruby Path
-$toolcacheRubyPath = 'C:\hostedtoolcache\windows\Ruby\2.5.*'
-
-# Get Latest Ruby 2.5.x
-$latestRubyBinPath2_5 = Get-ChildItem -Path $toolcacheRubyPath | Sort-Object {[System.Version]$_.Name} | Select-Object -Last 1 | ForEach-Object {
- Join-Path $_.FullName 'x64\bin'
-}
-
-Add-MachinePathItem $latestRubyBinPath2_5
-$env:Path = Get-MachinePath
-
-# Update ruby gem to latest version
-gem update --system
-
-exit 0
diff --git a/images/win/scripts/Installers/Windows2019/Install-WDK.ps1 b/images/win/scripts/Installers/Install-WDK.ps1
similarity index 55%
rename from images/win/scripts/Installers/Windows2019/Install-WDK.ps1
rename to images/win/scripts/Installers/Install-WDK.ps1
index b70644370..9df64d914 100644
--- a/images/win/scripts/Installers/Windows2019/Install-WDK.ps1
+++ b/images/win/scripts/Installers/Install-WDK.ps1
@@ -4,8 +4,24 @@
################################################################################
# Requires Windows SDK with the same version number as the WDK
-$winSdkUrl = "https://go.microsoft.com/fwlink/p/?linkid=2083338"
-$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2085767"
+
+Import-Module -Name ImageHelpers -Force
+
+if(Test-IsWin19)
+{
+ $winSdkUrl = "https://go.microsoft.com/fwlink/p/?linkid=2083338"
+ $wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2085767"
+ $FilePath = "C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019\WDK.vsix"
+ $VSver = "2019"
+}
+else
+{
+ $winSdkUrl = "https://go.microsoft.com/fwlink/p/?LinkID=2023014"
+ $wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2026156"
+ $FilePath = "C:\Program Files (x86)\Windows Kits\10\Vsix\WDK.vsix"
+ $VSver = "2017"
+}
+
# `winsdksetup.exe /features + /quiet` installs all features without showing the GUI
$sdkExitCode = Install-EXE -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList ("/features", "+", "/quiet")
@@ -26,32 +42,4 @@ if ($wdkExitCode -ne 0)
}
# Need to install the VSIX to get the build targets when running VSBuild
-# Write-Host "Installing WDK.vsix"
-try
-{
- $process = Start-Process `
- -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VSIXInstaller.exe" `
- -ArgumentList ("/quiet", '"C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019\WDK.vsix"') `
- -Wait `
- -PassThru
-}
-catch
-{
- Write-Host "There is an error during WDK.vsix installation"
- $_
- exit 1
-}
-
-
- $exitCode = $process.ExitCode
-
-if ($exitCode -eq 0 -or $exitCode -eq 1001) # 1001 means the extension is already installed
-{
- Write-Host "WDK.vsix installed successfully"
-}
-else
-{
- Write-Host "Unsuccessful exit code returned by the installation process: $exitCode."
-}
-
-exit $exitCode
+Install-VsixExtension -FilePath $FilePath -Name "WDK.vsix" -VSversion $VSver -InstallOnly
diff --git a/images/win/scripts/Installers/Install-Wix.ps1 b/images/win/scripts/Installers/Install-Wix.ps1
new file mode 100644
index 000000000..076be86c9
--- /dev/null
+++ b/images/win/scripts/Installers/Install-Wix.ps1
@@ -0,0 +1,23 @@
+################################################################################
+## File: Install-Wix.ps1
+## Desc: Install WIX.
+################################################################################
+
+Import-Module -Name ImageHelpers -Force;
+
+choco install wixtoolset -y --force
+
+if(Test-IsWin19)
+{
+ $extensionUrl = "https://wixtoolset.gallerycdn.vsassets.io/extensions/wixtoolset/wixtoolsetvisualstudio2019extension/1.0.0.4/1563296438961/Votive2019.vsix"
+ $VSver = "2019"
+}
+else
+{
+ $extensionUrl = "https://robmensching.gallerycdn.vsassets.io/extensions/robmensching/wixtoolsetvisualstudio2017extension/0.9.21.62588/1494013210879/250616/4/Votive2017.vsix"
+ $VSver = "2017"
+}
+
+$extensionName = "Votive$VSver.vsix"
+#Installing VS extension 'Wix Toolset Visual Studio Extension'
+Install-VsixExtension -Url $extensionUrl -Name $extensionName -VSversion $VSver
diff --git a/images/win/scripts/Installers/Update-AndroidSDK.ps1 b/images/win/scripts/Installers/Update-AndroidSDK.ps1
index 0487bb4ee..4a04b0b6f 100644
--- a/images/win/scripts/Installers/Update-AndroidSDK.ps1
+++ b/images/win/scripts/Installers/Update-AndroidSDK.ps1
@@ -110,6 +110,7 @@ Push-Location -Path $sdk.FullName
"add-ons;addon-google_apis-google-22" `
"add-ons;addon-google_apis-google-21" `
"cmake;3.6.4111459" `
+ "cmake;3.10.2.4988404" `
"patcher;v4"
Pop-Location
diff --git a/images/win/scripts/Installers/Validate-Bazel.ps1 b/images/win/scripts/Installers/Validate-Bazel.ps1
index 9cdccda4d..1728a9a6c 100644
--- a/images/win/scripts/Installers/Validate-Bazel.ps1
+++ b/images/win/scripts/Installers/Validate-Bazel.ps1
@@ -41,4 +41,4 @@ $Description = @"
_Version:_ $bazelisk_version
"@
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
\ No newline at end of file
+Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
diff --git a/images/win/scripts/Installers/Validate-Boost.ps1 b/images/win/scripts/Installers/Validate-Boost.ps1
index 9e1c6965b..6289e1652 100644
--- a/images/win/scripts/Installers/Validate-Boost.ps1
+++ b/images/win/scripts/Installers/Validate-Boost.ps1
@@ -3,6 +3,8 @@
## Desc: Validate Boost
################################################################################
+Import-Module -Name ImageHelpers
+
function Validate-BoostVersion
{
Param
@@ -49,36 +51,31 @@ $tmplMarkRoot = @"
_Environment:_
* PATH: contains the location of Boost version {0}
-* BOOST_ROOT: root directory of the Boost version {0} installation
* {1}: root directory of the Boost version {0} installation
"@
-$SoftwareName = 'Boost'
$Description = New-Object System.Text.StringBuilder
-$BoostRootDirectory = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "Boost"
-$BoostVersionsToInstall = $env:BOOST_VERSIONS.split(",")
+$SoftwareName = 'Boost'
+$BoostRootDirectory = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath $SoftwareName
+$BoostTools = Get-ToolsByName -SoftwareName $SoftwareName
-foreach($BoostVersion in $BoostVersionsToInstall)
+foreach ($BoostTool in $BoostTools)
{
- Validate-BoostVersion -BoostRootPath $BoostRootDirectory -BoostRelease $BoostVersion
- $BoostVersionTag = "BOOST_ROOT_{0}" -f $BoostVersion.Replace('.', '_')
+ $BoostToolsetName = $BoostTool.Architecture
+ $BoostVersionsToInstall = $BoostTool.Versions | Foreach-Object {"{0}.0" -f $_}
+ foreach($BoostVersion in $BoostVersionsToInstall)
+ {
+ Validate-BoostVersion -BoostRootPath $BoostRootDirectory -BoostRelease $BoostVersion
+ $BoostVersionTag = "BOOST_ROOT_{0}" -f $BoostVersion.Replace('.', '_')
- if ([Version]$BoostVersion -ge "1.70.0")
- {
- $BoostToolsetName = "msvc-14.2"
- }
- else
- {
- $BoostToolsetName = "msvc-14.1"
- }
-
- if($BoostVersion -eq $env:BOOST_DEFAULT)
- {
- $null = $Description.AppendLine(($tmplMarkRoot -f $BoostVersion, $BoostVersionTag, $BoostToolsetName))
- }
- else
- {
- $null = $Description.AppendLine(($tmplMark -f $BoostVersion, $BoostVersionTag, $BoostToolsetName))
+ if($BoostVersion -eq $env:BOOST_DEFAULT)
+ {
+ $null = $Description.AppendLine(($tmplMarkRoot -f $BoostVersion, $BoostVersionTag, $BoostToolsetName))
+ }
+ else
+ {
+ $null = $Description.AppendLine(($tmplMark -f $BoostVersion, $BoostVersionTag, $BoostToolsetName))
+ }
}
}
diff --git a/images/win/scripts/Installers/Validate-Git.ps1 b/images/win/scripts/Installers/Validate-Git.ps1
index 6f2bb33f1..1927a6ad9 100644
--- a/images/win/scripts/Installers/Validate-Git.ps1
+++ b/images/win/scripts/Installers/Validate-Git.ps1
@@ -2,48 +2,61 @@
## File: Validate-Git.ps1
## Desc: Validate Git for Windows
################################################################################
-
-if((Get-Command -Name 'git') -and (Get-Command -Name 'bash') -and (Get-Command -Name 'awk') -and (Get-Command -Name 'git-lfs'))
-{
- Write-Host "$(git version) on path"
- Write-Host "$(git-lfs version) on path"
+function Test-CommandName {
+ param(
+ [parameter(Mandatory)][string] $CommandName
+ )
+ Write-Host "Checking the [$CommandName]"
+ if(-not (Get-Command $CommandName -ErrorAction "Continue")) {
+ Write-Host "[!] $CommandName is not found"
+ exit 1
+ }
}
-else
-{
- Write-Host "git or git-lfs are not on path."
- exit 1
+function Test-Command {
+ param(
+ [parameter(Mandatory)][string] $CommandName,
+ [parameter(Mandatory)][string] $CommandDescription,
+ [parameter(Mandatory)][string] $VersionCmd,
+ [parameter(Mandatory)][string] $regexVersion,
+ [parameter(Mandatory)][string] $DescriptionMarkdown
+ )
+ Test-CommandName -CommandName $CommandName
+
+ $strVersion = Invoke-Expression $VersionCmd
+ Write-Host "$strVersion on path"
+ if($strVersion -match $regexVersion) {
+ $Version = $Matches.version
+ }
+ else {
+ Write-Host "[!] $CommandName version detection failed"
+ exit 1
+ }
+ # Adding description of the software to Markdown
+ $DescriptionMarkdown = $DescriptionMarkdown -f $Version
+ Add-SoftwareDetailsToMarkdown -SoftwareName $CommandDescription -DescriptionMarkdown $DescriptionMarkdown
}
+Test-CommandName -CommandName 'bash'
+Test-CommandName -CommandName 'awk'
-if( $(git version) -match 'git version (?.*).win.*' )
-{
- $gitVersion = $Matches.version
-}
-
-if( $(git-lfs version) -match 'git-lfs\/(?.*) \(Git.*' )
-{
- $gitLfsVersion = $Matches.version
-}
-
-# Adding description of the software to Markdown
-$SoftwareName = "Git"
-
-$Description = @"
-_Version:_ $gitVersion
+$GitDescription = @"
+_Version:_ {0}
_Environment:_
* PATH: contains location of git.exe
"@
+Test-Command -CommandName 'git' -CommandDescription 'Git' -VersionCmd "git version" -regexVersion 'git version (?.*).win.*' -DescriptionMarkdown $GitDescription
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
-
-# Adding description of the software to Markdown
-$SoftwareName = "Git Large File Storage (LFS)"
-
-$Description = @"
-_Version:_ $gitLfsVersion
+$GitLfsDescription = @"
+_Version:_ {0}
_Environment:_
* PATH: contains location of git-lfs.exe
* GIT_LFS_PATH: location of git-lfs.exe
"@
+Test-Command -CommandName 'git-lfs' -CommandDescription 'Git Large File Storage (LFS)' -VersionCmd "git-lfs version" -regexVersion 'git-lfs\/(?.*) \(Git.*' -DescriptionMarkdown $GitLfsDescription
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
+$HubCliDescription = @"
+_Version:_ {0}
+_Environment:_
+* PATH: contains location of hub.exe
+"@
+Test-Command -CommandName 'hub' -CommandDescription 'Hub CLI' -VersionCmd "hub version | Select-String 'hub version'" -regexVersion 'hub version (?.*)' -DescriptionMarkdown $HubCliDescription
\ No newline at end of file
diff --git a/images/win/scripts/Installers/Validate-Go.ps1 b/images/win/scripts/Installers/Validate-Go.ps1
index 5ff3ad169..059ea8fab 100644
--- a/images/win/scripts/Installers/Validate-Go.ps1
+++ b/images/win/scripts/Installers/Validate-Go.ps1
@@ -8,18 +8,31 @@ function Get-GoVersion
{
Param
(
- [String]$goRootPath
+ [String]$goVersion
)
+ Write-Host "Check if $goVersion is presented in the system"
+ $DestinationPath = "$($env:SystemDrive)\"
+ $goDirectory = Get-ChildItem -Path $DestinationPath -Filter "Go$goVersion*" | Select-Object -First 1
+ $goPath = Join-Path $env:SystemDrive $goDirectory
- $env:Path = "$goRootPath\bin;" + $env:Path
- if( $(go version) -match 'go version go(?.*) win.*' )
+ $env:Path = "$goPath\bin;" + $env:Path
+ $version = $(go version)
+
+ $matchVersion = $version -match $goVersion
+ $semanticEquality = $version -match 'go version go(?.*) win.*'
+
+ if($semanticEquality -And $matchVersion)
{
- $goVersion = $Matches.version
- return $goVersion
- }
+ $goFullVersion = $Matches.version
+ Write-Host "$goFullVersion has been found"
- Write-Host "Unable to determine Go version at " + $goRootPath
- return ""
+ return $goFullVersion
+ }
+ else
+ {
+ Write-Host "Unable to determine Go version at " + $goPath
+ exit 1
+ }
}
# Verify that go.exe is on the path
@@ -53,10 +66,10 @@ _Environment:_
$SoftwareName = "Go (x64)"
$Description = New-Object System.Text.StringBuilder
-$goVersionsToInstall = $env:GO_VERSIONS.split(",")
+$goVersionsToInstall = $env:GO_VERSIONS.split(", ", [System.StringSplitOptions]::RemoveEmptyEntries)
foreach($go in $goVersionsToInstall) {
- $goVersion = Get-GoVersion -goRootPath "C:\Go${go}"
+ $goVersion = Get-GoVersion -goVersion $go
$goVersionTag = "GOROOT_{0}_{1}_X64" -f $go.split(".")
if ($goVersion -eq $go) {
if($go -eq $env:GO_DEFAULT) {
diff --git a/images/win/scripts/Installers/Validate-Python.ps1 b/images/win/scripts/Installers/Validate-Python.ps1
deleted file mode 100644
index 7e2ee6e46..000000000
--- a/images/win/scripts/Installers/Validate-Python.ps1
+++ /dev/null
@@ -1,45 +0,0 @@
-################################################################################
-## File: Validate-Python.ps1
-## Desc: Configure python on path based on what is installed in the tools cache
-## Must run after tools cache is downloaded and validated
-################################################################################
-
-if(Get-Command -Name 'python')
-{
- Write-Host "Python $(& python -V 2>&1) on path"
-}
-else
-{
- Write-Host "Python is not on path"
- exit 1
-}
-
-$Python3Version = $(& python -V 2>&1)
-
-if ($Python3Version -notlike "Python 3.*")
-{
- Write-Error "Python 3 is not in the PATH"
-}
-
-
-$python2path = $Env:AGENT_TOOLSDIRECTORY + '/Python/2.7*/x64'
-$python2Dir = Get-Item -Path $python2path
-
-$env:Path = $python2Dir.FullName + ";" + $env:Path
-
-$Python2Version = & $env:comspec "/s /c python --version 2>&1"
-
-# Adding description of the software to Markdown
-$SoftwareName = "Python (64 bit)"
-
-$Description = @"
-#### $Python3Version
-_Environment:_
-* PATH: contains location of python.exe
-
-#### $Python2Version
-
-_Location:_ $Python2Path
-"@
-
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
diff --git a/images/win/scripts/Installers/Validate-Ruby.ps1 b/images/win/scripts/Installers/Validate-Ruby.ps1
deleted file mode 100644
index 88347ee1b..000000000
--- a/images/win/scripts/Installers/Validate-Ruby.ps1
+++ /dev/null
@@ -1,55 +0,0 @@
-################################################################################
-## File: Validate-Ruby.ps1
-## Desc: Verify that Ruby is on the path and output version information.
-################################################################################
-
-# Function that gets the version of Ruby at the specified path
-function Get-RubyVersion
-{
- Param
- (
- [String]$rubyRootPath
- )
-
- # Prepend to the path like: C:\hostedtoolcache\windows\Ruby\2.5.0\x64\bin
- $env:Path = "$rubyRootPath;" + $env:Path
-
- # Extract the version from Ruby output like: ruby 2.5.1p57 (2018-03-29 revision 63029) [x64-mingw32]
- if( $(ruby --version) -match 'ruby (?.*) \(.*' )
- {
- $rubyVersion = $Matches.version
- return $rubyVersion
- }
-
- Write-Host "Unable to determine Ruby version at " + $rubyRootPath
- exit 1
-}
-
-# Verify that ruby is on the path
-if(Get-Command -Name 'ruby')
-{
- Write-Host "$(ruby --version) is on the path."
-}
-else
-{
- Write-Host "Ruby is not on the path."
- exit 1
-}
-
-# Default Ruby Version on Path
-$rubyExeOnPath = (Get-Command -Name 'ruby').Path
-$rubyBinOnPath = Split-Path -Path $rubyExeOnPath
-$rubyVersionOnPath = Get-RubyVersion -rubyRootPath $rubyBinOnPath
-$gemVersion = & gem -v
-
-# Add details of available versions in Markdown
-$SoftwareName = "Ruby (x64)"
-$Description = @"
-#### $rubyVersionOnPath
-_Environment:_
-* Location: $rubyBinOnPath
-* PATH: contains the location of ruby.exe version $rubyVersionOnPath
-* Gem Version: $gemVersion
-"@
-
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
diff --git a/images/win/scripts/Installers/Validate-ToolCache.ps1 b/images/win/scripts/Installers/Validate-ToolCache.ps1
index 3e3b095f2..5ad500bf4 100644
--- a/images/win/scripts/Installers/Validate-ToolCache.ps1
+++ b/images/win/scripts/Installers/Validate-ToolCache.ps1
@@ -63,6 +63,78 @@ function RunTestsByPath {
}
}
+function Get-SystemDefaultPython {
+ Write-Host "Validate system Python..."
+
+ if (Get-Command -Name 'python')
+ {
+ Write-Host "Python $(& python -V 2>&1) on path"
+ }
+ else
+ {
+ Write-Host "Python is not on path"
+ exit 1
+ }
+
+ $pythonBinVersion = $(& python -V 2>&1)
+ if ($pythonBinVersion -notlike "Python 3.*")
+ {
+ Write-Error "Python 3 is not in the PATH"
+ exit 1
+ }
+
+ $pythonBinOnPath = Split-Path -Path (Get-Command -Name 'python').Path
+ $description = GetDefaultToolDescription -SoftwareVersion $pythonBinVersion -SoftwareLocation $pythonBinOnPath
+
+ return $description
+}
+
+function Get-SystemDefaultRuby {
+ Write-Host "Validate system Ruby..."
+
+ if (Get-Command -Name 'ruby')
+ {
+ Write-Host "$(ruby --version) is on the path."
+ }
+ else
+ {
+ Write-Host "Ruby is not on the path."
+ exit 1
+ }
+
+ $rubyBinOnPath = Split-Path -Path (Get-Command -Name 'ruby').Path
+ if ( $(ruby --version) -notmatch 'ruby (?.*) \(.*' )
+ {
+ Write-Host "Unable to determine Ruby version at " + $rubyBinOnPath
+ exit 1
+
+ }
+
+ $rubyVersionOnPath = "Ruby $($Matches.version)"
+ $description = GetDefaultToolDescription -SoftwareVersion $rubyVersionOnPath -SoftwareLocation $rubyBinOnPath
+
+ $gemVersion = & gem -v
+ $description += "* Gem Version: $gemVersion
"
+
+ return $description
+}
+
+function GetDefaultToolDescription {
+ param (
+ [Parameter(Mandatory = $True)]
+ [string]$SoftwareVersion,
+ [Parameter(Mandatory = $True)]
+ [string]$SoftwareLocation
+ )
+
+ $description = "
__System default version:__ $SoftwareVersion
"
+ $description += "_Environment:_
"
+ $description += "* Location: $SoftwareLocation
"
+ $description += "* PATH: contains the location of $SoftwareVersion
"
+
+ return $description
+}
+
function GetMarkdownDescription {
param (
[Parameter(Mandatory = $True)]
@@ -123,6 +195,14 @@ function ToolcacheTest {
$markdownDescription += GetMarkdownDescription -SoftwareVersion $foundVersion -SoftwareArchitecture $requiredArchitecture
}
}
+
+ if ($SoftwareName -contains "Python") {
+ $markdownDescription += Get-SystemDefaultPython
+ }
+ if ($SoftwareName -contains "Ruby") {
+ $markdownDescription += Get-SystemDefaultRuby
+ }
+
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $markdownDescription
}
diff --git a/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1 b/images/win/scripts/Installers/Validate-WDK.ps1
similarity index 90%
rename from images/win/scripts/Installers/Windows2019/Validate-WDK.ps1
rename to images/win/scripts/Installers/Validate-WDK.ps1
index c3c6a8f04..ee64f20b5 100644
--- a/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1
+++ b/images/win/scripts/Installers/Validate-WDK.ps1
@@ -19,7 +19,7 @@ function Get-WDKVersion
}
$WDKVersion = Get-WDKVersion
-$WDKPackageVersion = Get-VS19ExtensionVersion -packageName "Microsoft.Windows.DriverKit"
+$WDKPackageVersion = Get-VSExtensionVersion -packageName "Microsoft.Windows.DriverKit"
# Adding description of the software to Markdown
$SoftwareName = "Windows Driver Kit"
diff --git a/images/win/scripts/Installers/Windows2019/Validate-Wix.ps1 b/images/win/scripts/Installers/Validate-Wix.ps1
similarity index 76%
rename from images/win/scripts/Installers/Windows2019/Validate-Wix.ps1
rename to images/win/scripts/Installers/Validate-Wix.ps1
index 4334beb14..d755939d1 100644
--- a/images/win/scripts/Installers/Windows2019/Validate-Wix.ps1
+++ b/images/win/scripts/Installers/Validate-Wix.ps1
@@ -4,6 +4,7 @@
################################################################################
Import-Module -Name ImageHelpers -Force
+
function Get-WixVersion {
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
@@ -21,14 +22,23 @@ else {
exit 1
}
-$WixPackageVersion = Get-VS19ExtensionVersion -packageName "WixToolset.VisualStudioExtension.Dev16"
+if(Test-IsWin19)
+{
+ $WixPackageVersion = Get-VSExtensionVersion -packageName "WixToolset.VisualStudioExtension.Dev16"
+ $VSver = "2019"
+}
+else
+{
+ $WixPackageVersion = Get-VSExtensionVersion -packageName "WixToolset.VisualStudioExtension.Dev15"
+ $VSver = "2017"
+}
# Adding description of the software to Markdown
$SoftwareName = "WIX Tools"
$Description = @"
_Toolset Version:_ $WixToolSetVersion
-_WIX Toolset Visual Studio Extension Version:_ $WixPackageVersion
+_WIX Toolset Studio $VSver Extension Version:_ $WixPackageVersion
_Environment:_
* WIX: Installation root of WIX
"@
diff --git a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1
index 7998f1cb7..d92105714 100644
--- a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1
+++ b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1
@@ -8,7 +8,13 @@ function Disable-InternetExplorerESC {
$UserKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"
Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 0 -Force
Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 0 -Force
- Stop-Process -Name Explorer -Force -ErrorAction Continue
+
+ $ieProcess = Get-Process -Name Explorer -ErrorAction SilentlyContinue
+
+ if ($ieProcess){
+ Stop-Process -Name Explorer -Force -ErrorAction Continue
+ }
+
Write-Host "IE Enhanced Security Configuration (ESC) has been disabled."
}
diff --git a/images/win/scripts/Installers/Windows2016/Install-Python.ps1 b/images/win/scripts/Installers/Windows2016/Install-Python.ps1
deleted file mode 100644
index f0a76ca92..000000000
--- a/images/win/scripts/Installers/Windows2016/Install-Python.ps1
+++ /dev/null
@@ -1,28 +0,0 @@
-################################################################################
-## File: Install-Python.ps1
-## Desc: Configure python on path with 3.6.* version from the tools cache
-## Must run after tools cache is setup
-################################################################################
-
-Import-Module -Name ImageHelpers -Force
-
-$python36path = $Env:AGENT_TOOLSDIRECTORY + '/Python/3.6*/x64'
-$pythonDir = Get-Item -Path $python36path
-
-if($pythonDir -is [array])
-{
- Write-Host "More than one python 3.6.* installations found"
- Write-Host $pythonDir
- exit 1
-}
-
-$currentPath = Get-MachinePath
-
-if ($currentPath | Select-String -SimpleMatch $pythonDir.FullName)
-{
- Write-Host $pythonDir.FullName ' is already in PATH'
- exit 0
-}
-
-Add-MachinePathItem -PathItem $pythonDir.FullName
-Add-MachinePathItem -PathItem "$($pythonDir.FullName)\Scripts"
diff --git a/images/win/scripts/Installers/Windows2016/Install-WDK.ps1 b/images/win/scripts/Installers/Windows2016/Install-WDK.ps1
deleted file mode 100644
index 58707f973..000000000
--- a/images/win/scripts/Installers/Windows2016/Install-WDK.ps1
+++ /dev/null
@@ -1,51 +0,0 @@
-################################################################################
-## File: Install-WDK.ps1
-## Desc: Install the Windows Driver Kit
-################################################################################
-
-# Version: 10.0.17763.0
-# Update Validate-WDK.ps1 if the version changes!
-# There doesn't seem to be any way to check the version programmatically
-
-# Requires Windows SDK with the same version number as the WDK
-$winSdkUrl = "https://go.microsoft.com/fwlink/p/?LinkID=2023014"
-$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2026156"
-
-# `winsdksetup.exe /features + /quiet` installs all features without showing the GUI
-$sdkExitCode = Install-EXE -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList ("/features", "+", "/quiet")
-
-if ($sdkExitCode -ne 0)
-{
- Write-Host "Failed to install the Windows SDK."
- exit $sdkExitCode
-}
-
-# `wdksetup.exe /features + /quiet` installs all features without showing the GUI
-$wdkExitCode = Install-EXE -Url $wdkUrl -Name "wdksetup.exe" -ArgumentList ("/features", "+", "/quiet")
-
-if ($wdkExitCode -ne 0)
-{
- Write-Host "Failed to install the Windows Driver Kit."
- exit $wdkExitCode
-}
-
-# Need to install the VSIX to get the build targets when running VSBuild
-Write-Host "Installing WDK.vsix"
-$process = Start-Process `
- -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VSIXInstaller.exe" `
- -ArgumentList ("/quiet", '"C:\Program Files (x86)\Windows Kits\10\Vsix\WDK.vsix"') `
- -Wait `
- -PassThru
-
-$exitCode = $process.ExitCode
-
-if ($exitCode -eq 0 -or $exitCode -eq 1001) # 1001 means the extension is already installed
-{
- Write-Host "WDK.vsix installed successfully"
-}
-else
-{
- Write-Host "Unsuccessful exit code returned by the installation process: $exitCode."
-}
-
-exit $exitCode
diff --git a/images/win/scripts/Installers/Windows2016/Install-Wix.ps1 b/images/win/scripts/Installers/Windows2016/Install-Wix.ps1
deleted file mode 100644
index 44ee25c2c..000000000
--- a/images/win/scripts/Installers/Windows2016/Install-Wix.ps1
+++ /dev/null
@@ -1,53 +0,0 @@
-################################################################################
-## File: Install-Wix.ps1
-## Desc: Install WIX.
-################################################################################
-function Install-VsixExtension
-{
- Param
- (
- [String]$Url,
- [String]$Name
- )
-
- $exitCode = -1
-
- try
- {
- Write-Host "Downloading $Name..."
- $FilePath = "${env:Temp}\$Name"
-
- Invoke-WebRequest -Uri $Url -OutFile $FilePath
-
- $ArgumentList = ('/quiet', $FilePath)
-
- Write-Host "Starting Install $Name..."
- $process = Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VSIXInstaller.exe' -ArgumentList $ArgumentList -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."
- return $exitCode
- }
- }
- catch
- {
- Write-Host -Object "Failed to install the Extension $Name"
- Write-Host -Object $_.Exception.Message
- return -1
- }
-}
-
-
-choco install wixtoolset -y --force
-
-#Installing VS extension 'Wix Toolset Visual Studio 2017 Extension'
-$exitCode = Install-VsixExtension -Url 'https://robmensching.gallerycdn.vsassets.io/extensions/robmensching/wixtoolsetvisualstudio2017extension/0.9.21.62588/1494013210879/250616/4/Votive2017.vsix' -Name 'Votive2017.vsix'
-
-return $exitCode
diff --git a/images/win/scripts/Installers/Windows2016/Validate-SSDT.ps1 b/images/win/scripts/Installers/Windows2016/Validate-SSDT.ps1
index 9d9a1c4a4..40444ee17 100644
--- a/images/win/scripts/Installers/Windows2016/Validate-SSDT.ps1
+++ b/images/win/scripts/Installers/Windows2016/Validate-SSDT.ps1
@@ -5,39 +5,13 @@
Import-Module -Name ImageHelpers -Force
-function Get-SSDTExtensionPackage {
- $vsProgramData = Get-Item -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances"
- $instanceFolders = Get-ChildItem -Path $vsProgramData.FullName
-
- if($instanceFolders -is [array])
- {
- Write-Host "More than one instance installed"
- exit 1
- }
-
- $stateContent = Get-Content -Path ($instanceFolders.FullName + '\state.packages.json')
- $state = $stateContent | ConvertFrom-Json
- $SsdtPackage = $state.packages | where { $_.id -eq "SSDT" }
- return $SsdtPackage
-}
-
-
-$SsdtPackage = Get-SSDTExtensionPackage
-
-if($SsdtPackage){
- Write-Host "SSDT version" $SsdtPackage.version "installed"
-}
-else {
- Write-Host "SSDT is not installed"
- exit 1
-}
-
+$SSDTPackageVersion = Get-VSExtensionVersion -packageName "SSDT"
# Adding description of the software to Markdown
$SoftwareName = "SQL Server Data Tools for VS 2017"
$Description = @"
-_Version:_ $($SsdtPackage.version)
+_Version:_ $SSDTPackageVersion
The following components are installed:
diff --git a/images/win/scripts/Installers/Windows2016/Validate-WDK.ps1 b/images/win/scripts/Installers/Windows2016/Validate-WDK.ps1
deleted file mode 100644
index f9edf1609..000000000
--- a/images/win/scripts/Installers/Windows2016/Validate-WDK.ps1
+++ /dev/null
@@ -1,13 +0,0 @@
-################################################################################
-## File: Validate-WDK.ps1
-## Desc: Validate the installation of the Windows Driver Kit
-################################################################################
-
-# Adding description of the software to Markdown
-$SoftwareName = "Windows Driver Kit"
-
-$Description = @"
-_Version:_ 10.0.17763.0
-"@
-
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
diff --git a/images/win/scripts/Installers/Windows2016/Validate-Wix.ps1 b/images/win/scripts/Installers/Windows2016/Validate-Wix.ps1
deleted file mode 100644
index 090df37a9..000000000
--- a/images/win/scripts/Installers/Windows2016/Validate-Wix.ps1
+++ /dev/null
@@ -1,62 +0,0 @@
-################################################################################
-## File: Validate-Wix.ps1
-## Desc: Validate WIX.
-################################################################################
-
-Import-Module -Name ImageHelpers -Force
-function Get-WixVersion {
- $regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
- $installedApplications = Get-ItemProperty -Path $regKey
- $Version = ($installedApplications | Where-Object { $_.DisplayName -and $_.DisplayName.toLower().Contains("wix") } | Select-Object -First 1).DisplayVersion
- return $Version
-}
-
-#Gets the extension details from state.json
-function Get-WixExtensionPackage {
- $vsProgramData = Get-Item -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances"
- $instanceFolders = Get-ChildItem -Path $vsProgramData.FullName
-
- if($instanceFolders -is [array])
- {
- Write-Host "More than one instance installed"
- exit 1
- }
-
- $stateContent = Get-Content -Path ($instanceFolders.FullName + '\state.packages.json')
- $state = $stateContent | ConvertFrom-Json
- $WixPackage = $state.packages | where { $_.id -eq "WixToolset.VisualStudioExtension.Dev15" }
- return $WixPackage
-}
-
-$WixToolSetVersion = Get-WixVersion
-
-if($WixToolSetVersion) {
- Write-Host "Wix Toolset version" $WixPackage.version "installed"
-}
-else {
- Write-Host "Wix Toolset is not installed"
- exit 1
-}
-
-$WixPackage = Get-WixExtensionPackage
-
-if($WixPackage) {
- Write-Host "Wix Extension version" $WixPackage.version "installed"
-}
-else {
- Write-Host "Wix Extension is not installed"
- exit 1
-}
-
-
-# Adding description of the software to Markdown
-$SoftwareName = "WIX Tools"
-
-$Description = @"
-_Toolset Version:_ $WixToolSetVersion
-_WIX Toolset Studio 2017 Extension Version:_ $($WixPackage.version)
-_Environment:_
-* WIX: Installation root of WIX
-"@
-
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
diff --git a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1
index 9930e6a6d..46574d7c0 100644
--- a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1
+++ b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1
@@ -8,7 +8,13 @@ function Disable-InternetExplorerESC {
$UserKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"
Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 0 -Force
Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 0 -Force
- Stop-Process -Name Explorer -Force -ErrorAction Continue
+
+ $ieProcess = Get-Process -Name Explorer -ErrorAction SilentlyContinue
+
+ if ($ieProcess){
+ Stop-Process -Name Explorer -Force -ErrorAction Continue
+ }
+
Write-Host "IE Enhanced Security Configuration (ESC) has been disabled."
}
diff --git a/images/win/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1 b/images/win/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1
deleted file mode 100644
index 43bfb6030..000000000
--- a/images/win/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1
+++ /dev/null
@@ -1,44 +0,0 @@
-###################################################################################
-## File: Install-AnalysisExtenstion.ps1
-## Desc: Install the Microsoft Analysis Services Projects Visual Studio extension
-###################################################################################
-
-
-$extensionUrl = "https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ProBITools/vsextensions/MicrosoftAnalysisServicesModelingProjects/2.9.5/vspackage"
-$extensionDownloadPath = Join-Path $Env:TEMP "Microsoft.DataTools.AnalysisServices.vsix"
-Write-Host "Downloading Microsoft.DataTools.AnalysisServices.vsix extension"
-(New-Object System.Net.WebClient).DownloadFile($extensionUrl, $extensionDownloadPath)
-
-Write-Host "Installing Microsoft.DataTools.AnalysisServices.vsix extension"
-try
-{
- $process = Start-Process `
- -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VSIXInstaller.exe" `
- -ArgumentList ("/quiet", "$extensionDownloadPath") `
- -Wait `
- -PassThru
-}
-catch
-{
- Write-Host "There is an error during Microsoft.DataTools.AnalysisServices.vsix installation"
- $_
- exit 1
-}
-
-
-$exitCode = $process.ExitCode
-
-if ($exitCode -eq 0 -or $exitCode -eq 1001) # 1001 means the extension is already installed
-{
- Write-Host "Microsoft.DataTools.AnalysisServices.vsix installed successfully"
-}
-else
-{
- Write-Host "Unsuccessful exit code returned by the installation process: $exitCode."
- exit 1
-}
-
-#Cleanup installation files
-Remove-Item -Force -Confirm:$false $extensionDownloadPath
-
-exit $exitCode
diff --git a/images/win/scripts/Installers/Windows2019/Install-Python.ps1 b/images/win/scripts/Installers/Windows2019/Install-Python.ps1
deleted file mode 100644
index 932ec197e..000000000
--- a/images/win/scripts/Installers/Windows2019/Install-Python.ps1
+++ /dev/null
@@ -1,28 +0,0 @@
-################################################################################
-## File: Install-Python.ps1
-## Desc: Configure python on path with 3.7.* version from the tools cache
-## Must run after tools cache is setup
-################################################################################
-
-Import-Module -Name ImageHelpers -Force
-
-$python37path = $Env:AGENT_TOOLSDIRECTORY + '/Python/3.7*/x64'
-$pythonDir = Get-Item -Path $python37path
-
-if($pythonDir -is [array])
-{
- Write-Host "More than one python 3.7.* installations found"
- Write-Host $pythonDir
- exit 1
-}
-
-$currentPath = Get-MachinePath
-
-if ($currentPath | Select-String -SimpleMatch $pythonDir.FullName)
-{
- Write-Host $pythonDir.FullName ' is already in PATH'
- exit 0
-}
-
-Add-MachinePathItem -PathItem $pythonDir.FullName
-Add-MachinePathItem -PathItem "$($pythonDir.FullName)\Scripts"
diff --git a/images/win/scripts/Installers/Windows2019/Install-SSDTExtensions.ps1 b/images/win/scripts/Installers/Windows2019/Install-SSDTExtensions.ps1
new file mode 100644
index 000000000..8c2a6cd7c
--- /dev/null
+++ b/images/win/scripts/Installers/Windows2019/Install-SSDTExtensions.ps1
@@ -0,0 +1,11 @@
+###################################################################################
+## File: Install-SSDTExtensions.ps1
+## Desc: Install the extensions previously known as SSDT package
+###################################################################################
+
+Import-Module -Name ImageHelpers -Force
+
+Install-VsixExtension -Url 'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ProBITools/vsextensions/MicrosoftAnalysisServicesModelingProjects/2.9.5/vspackage' -Name 'Microsoft.DataTools.AnalysisServices.vsix' -VSversion "2019"
+Install-VsixExtension -Url 'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/SSIS/vsextensions/SqlServerIntegrationServicesProjects/3.4/vspackage' -Name 'Microsoft.DataTools.IntegrationServices.exe' -VSversion "2019"
+Install-VsixExtension -Url 'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ProBITools/vsextensions/MicrosoftReportProjectsforVisualStudio/2.6.3/vspackage' -Name 'Microsoft.DataTools.ReportingServices.vsix' -VSversion "2019"
+
diff --git a/images/win/scripts/Installers/Windows2019/Install-Wix.ps1 b/images/win/scripts/Installers/Windows2019/Install-Wix.ps1
deleted file mode 100644
index 8fc79bc49..000000000
--- a/images/win/scripts/Installers/Windows2019/Install-Wix.ps1
+++ /dev/null
@@ -1,53 +0,0 @@
-################################################################################
-## File: Install-Wix.ps1
-## Desc: Install WIX.
-################################################################################
-function Install-VsixExtension
-{
- Param
- (
- [String]$Url,
- [String]$Name
- )
-
- $ReleaseInPath = 'Enterprise'
- $exitCode = -1
-
- try
- {
- Write-Host "Downloading $Name..."
- $FilePath = "${env:Temp}\$Name"
-
- Invoke-WebRequest -Uri $Url -OutFile $FilePath
-
- $ArgumentList = ('/quiet', $FilePath)
-
- Write-Host "Starting Install $Name..."
- $process = Start-Process -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\2019\$ReleaseInPath\Common7\IDE\VSIXInstaller.exe" -ArgumentList $ArgumentList -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."
- return $exitCode
- }
- }
- catch
- {
- Write-Host -Object "Failed to install the Extension $Name"
- Write-Host -Object $_.Exception.Message
- return -1
- }
-}
-
-
-choco install wixtoolset -y --force
-
-#Installing VS extension 'Wix Toolset Visual Studio 2019 Extension'
-$exitCode = Install-VsixExtension -Url 'https://wixtoolset.gallerycdn.vsassets.io/extensions/wixtoolset/wixtoolsetvisualstudio2019extension/1.0.0.4/1563296438961/Votive2019.vsix' -Name 'Votive2019.vsix'
-#return $exitCode
diff --git a/images/win/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1 b/images/win/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1
deleted file mode 100644
index fad85d512..000000000
--- a/images/win/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1
+++ /dev/null
@@ -1,18 +0,0 @@
-################################################################################
-## File: Validate-AnalysisExtenstion.ps1
-## Desc: Validate Microsoft Analysis Services Projects Visual Studio extension
-################################################################################
-
-Import-Module -Name ImageHelpers -Force
-
-#AnalysisPackage doesn't have any proper name in the state.packages.json file, only id is available
-$AnalysisPackageVersion = Get-VS19ExtensionVersion -packageName "04a86fc2-dbd5-4222-848e-911638e487fe"
-
-# Adding description of the software to Markdown
-$SoftwareName = "Microsoft Analysis Services Projects Visual Studio Extension"
-
-$Description = @"
-_Version:_ $AnalysisPackageVersion
-"@
-
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
\ No newline at end of file
diff --git a/images/win/scripts/Installers/Windows2019/Validate-SSDTExtensions.ps1 b/images/win/scripts/Installers/Windows2019/Validate-SSDTExtensions.ps1
new file mode 100644
index 000000000..731c10edc
--- /dev/null
+++ b/images/win/scripts/Installers/Windows2019/Validate-SSDTExtensions.ps1
@@ -0,0 +1,22 @@
+################################################################################
+## File: Validate-SSDTExtensions.ps1
+## Desc: Validate SQL Server Data Tools Visual Studio extensions
+################################################################################
+
+Import-Module -Name ImageHelpers -Force
+
+#These extensions don't have any proper name in the state.packages.json file, only id is available, which can be found on extension marketplace download page
+$AnalysisPackageVersion = Get-VSExtensionVersion -packageName "04a86fc2-dbd5-4222-848e-911638e487fe"
+$IntegrationPackageVersion = Get-VSExtensionVersion -packageName "851E7A09-7B2B-4F06-A15D-BABFCB26B970"
+$ReportingPackageVersion = Get-VSExtensionVersion -packageName "717ad572-c4b7-435c-c166-c2969777f718"
+
+# Adding description of the software to Markdown
+$SoftwareName = "Microsoft SSDT Visual Studio 2019 Extensions"
+
+$Description = @"
+_Microsoft Analysis Services Projects Version:_ $AnalysisPackageVersion
+_SQL Server Integration Services Projects Version:_ $IntegrationPackageVersion
+_Microsoft Reporting Services Projects Version:_ $ReportingPackageVersion
+"@
+
+Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description