diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 000000000..54085c9b9
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,12 @@
+# Description
+New tool, Bug fixing, or Improvement?
+Please include a summary of the change and which issue is fixed. Also include relevant motivation and context.
+**For new tools, please provide total size and installation time.**
+
+#### Related issue:
+
+## Check list
+- [ ] Related issue / work item is attached
+- [ ] Tests are written (if applicable)
+- [ ] Documentation is updated (if applicable)
+- [ ] Changes are tested and related VM images are successfully generated
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
deleted file mode 100644
index 40ed12063..000000000
--- a/.github/workflows/stale.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Mark stale issues and pull requests
-
-on:
- schedule:
- - cron: "0 3 * * *"
-
-jobs:
- stale:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/stale@v1
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
- stale-issue-message: 'This issue has not had any activity for 45 days and will be closed in 45 days if there continues to be no activity.'
- stale-issue-label: 'no-issue-activity'
- days-before-stale: 45
- days-before-close: 45
diff --git a/images.CI/azure-pipelines/windows2019.yml b/images.CI/azure-pipelines/windows2019.yml
index 8675f087a..f35a4f7ac 100644
--- a/images.CI/azure-pipelines/windows2019.yml
+++ b/images.CI/azure-pipelines/windows2019.yml
@@ -17,4 +17,4 @@ jobs:
- template: image-generation.yml
parameters:
image_type: Windows2019-Azure
- image_readme_name: Windows2016-Readme.md
\ No newline at end of file
+ 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 7b5be1247..8af4c531d 100644
--- a/images/linux/Ubuntu1604-README.md
+++ b/images/linux/Ubuntu1604-README.md
@@ -1,10 +1,10 @@
# Ubuntu 16.04.6 LTS
-The following software is installed on machines with the 20200308.0 update.
+The following software is installed on machines with the 20200315.1 update.
***
- 7-Zip 9.20
- Ansible (ansible 2.9.6)
- AzCopy (azcopy 7.3.0-netcore)
-- Azure CLI (azure-cli 2.1.0)
+- Azure CLI (azure-cli 2.2.0)
- Azure CLI (azure-devops 0.17.0)
- Basic CLI:
- curl
@@ -14,6 +14,8 @@ The following software is installed on machines with the 20200308.0 update.
- iproute2
- iputils-ping
- jq
+ - libc++-dev
+ - libc++abi-dev
- libcurl3
- libicu55
- libunwind8
@@ -32,14 +34,14 @@ The following software is installed on machines with the 20200308.0 update.
- wget
- zip
- zstd
-- AWS CLI (aws-cli/1.18.16 Python/2.7.12 Linux/4.15.0-1071-azure botocore/1.15.16)
+- AWS CLI (aws-cli/1.18.21 Python/2.7.12 Linux/4.15.0-1071-azure botocore/1.15.21)
- build-essential
- Clang 6.0 (6.0.1)
- Clang 8 (8.0.1)
- Clang 9 (9.0.1)
- CMake (cmake version 3.16.2)
-- Docker Compose (docker-compose version 1.22.0, build f46880fe)
-- Docker-Moby (Docker version 3.0.10+azure, build 99c5edceb48d64c1aa5d09b8c9c499d431d98bb9)
+- Docker Compose (docker-compose version 1.25.4, build 8d51620a)
+- Docker-Moby (Docker version 3.0.11+azure, build eb310fca49568dccd87c6136f774ef6fff2a1b51)
- .NET Core SDK:
- 3.1.101
- 3.1.100
@@ -101,7 +103,7 @@ The following software is installed on machines with the 20200308.0 update.
- 2.1.301
- 2.1.300
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.4)
-- Firefox (Mozilla Firefox 73.0.1)
+- Firefox (Mozilla Firefox 74.0)
- Geckodriver (0.26.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
- GNU C++ 7.4.0
- GNU C++ 8.3.0
@@ -110,14 +112,9 @@ The following software is installed on machines with the 20200308.0 update.
- GNU Fortran 9.2.1
- Git (2.25.1)
- Git Large File Storage (LFS) (2.10.0)
-- Go 1.9 (go version go1.9.7 linux/amd64)
-- Go 1.10 (go version go1.10.8 linux/amd64)
-- 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.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)
+- Google Cloud SDK (284.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,7 +135,7 @@ compiled using version 3.0.2.0 of the Cabal library )
- 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.39.0 linux-x64 node-v12.13.0)
-- HHVM (HipHop VM 4.47.0 (rel))
+- HHVM (HipHop VM 4.48.0 (rel))
- ImageMagick
- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_252")
- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_242")
@@ -148,11 +145,11 @@ compiled using version 3.0.2.0 of the Cabal library )
- 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 (v3.1.1+gafe7058)
+- kubectl (Client Version: v1.17.4)
+- helm (v3.1.2+gd878d4d)
- 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)
+- Miniconda (conda 4.8.2)
- Mono (Mono JIT compiler version 6.8.0.105 (tarball Tue Feb 4 21:20:35 UTC 2020))
- MySQL (mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper)
- MySQL Server (user:root password:root)
@@ -161,12 +158,12 @@ compiled using version 3.0.2.0 of the Cabal library )
- Grunt (grunt-cli v1.2.0)
- Gulp (CLI version: 2.2.0
Local version: Unknown)
-- n (6.3.1)
+- n (6.4.0)
- Parcel (1.12.4)
- TypeScript (Version 3.8.3)
- Webpack (4.42.0)
- Webpack CLI (3.3.11)
-- Yarn (1.22.1)
+- Yarn (1.22.4)
- Bazel (bazel 2.2.0)
- Bazelisk (1.3.0)
- PhantomJS (2.1.1)
@@ -176,7 +173,7 @@ Local version: Unknown)
- PHP 7.2 (PHP 7.2.28-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:23:01) ( NTS ))
- PHP 7.3 (PHP 7.3.15-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:23:10) ( NTS ))
- PHP 7.4 (PHP 7.4.3 (cli) (built: Feb 23 2020 07:24:02) ( NTS ))
-- Composer (Composer version 1.9.3 2020-02-04 12:58:49)
+- Composer (Composer version 1.10.1 2020-03-13 20:34:27)
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate
- psql (PostgreSQL) 9.5.19
@@ -184,14 +181,12 @@ Local version: Unknown)
- ruby (2.3.1p112)
- gem (3.1.2)
- rustup (1.21.1)
-- rust (1.41.1)
-- cargo (1.41.0)
+- rust (1.42.0)
+- cargo (1.42.0)
- rustfmt (1.4.11-stable)
- clippy (0.0.212)
-- rustdoc (1.41.1)
-- bindgen (execute
-the
-0.53.1)
+- rustdoc (1.42.0)
+- bindgen (0.53.2)
- cbindgen (0.13.1)
- Julia (julia version 1.3.1)
- sbt (1.3.8)
@@ -202,6 +197,10 @@ the
- Packer (1.5.4)
- Vcpkg 2020.02.04-unknownhash
- Zeit Now CLI (17.0.4)
+- Go 1.11 (go version go1.11.13 linux/amd64)
+- Go 1.12 (go version go1.12.17 linux/amd64)
+- Go 1.13 (go version go1.13.8 linux/amd64)
+- Go 1.14 (go version go1.14 linux/amd64)
- Google Repository 58
- Google Play services 49
- Google APIs 24
diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md
index 4b35378c3..61577a940 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 20200316.1 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-cli 2.2.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,14 +32,14 @@ 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.21 Python/2.7.17 Linux/5.0.0-1032-azure botocore/1.15.21)
- build-essential
- Clang 6.0 (6.0.1)
- Clang 8 (8.0.1)
- Clang 9 (9.0.0)
- CMake (cmake version 3.16.2)
-- Docker Compose (docker-compose version 1.22.0, build f46880fe)
-- Docker-Moby (Docker version 3.0.10+azure, build 99c5edceb48d64c1aa5d09b8c9c499d431d98bb9)
+- Docker Compose (docker-compose version 1.25.4, build 8d51620a)
+- Docker-Moby (Docker version 3.0.11+azure, build eb310fca49568dccd87c6136f774ef6fff2a1b51)
- .NET Core SDK:
- 3.1.101
- 3.1.100
@@ -106,21 +101,18 @@ Build timestamp as int: 1582297007)
- 2.1.301
- 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
-- GNU C++ 7.4.0
+- Firefox (Mozilla Firefox 74.0)
+- Geckodriver (0.26.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
+- GNU C++ 7.5.0
- GNU C++ 8.3.0
- GNU C++ 9.2.1
- GNU Fortran 8.3.0
- GNU Fortran 9.2.1
- Git (2.25.1)
- Git Large File Storage (LFS) (2.10.0)
-- 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 (284.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,23 +130,24 @@ 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.48.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)
+- kubectl (Client Version: v1.17.4)
+- helm (v3.1.2+gd878d4d)
+- 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)
+- Miniconda (conda 4.8.2)
- Mono (Mono JIT compiler version 6.8.0.105 (tarball Tue Feb 4 21:20:20 UTC 2020))
- MySQL (mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper)
- MySQL Server (user:root password:root)
@@ -163,41 +156,47 @@ compiled using version 3.0.2.0 of the Cabal library )
- Grunt (grunt-cli v1.2.0)
- Gulp (CLI version: 2.2.0
Local version: Unknown)
-- n (6.3.1)
+- n (6.4.0)
- 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.4)
+- 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 ))
- PHP 7.3 (PHP 7.3.15-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:23:33) ( NTS ))
- PHP 7.4 (PHP 7.4.3 (cli) (built: Feb 23 2020 07:24:28) ( NTS ))
-- Composer (Composer version 1.9.3 2020-02-04 12:58:49)
+- Composer (Composer version 1.10.1 2020-03-13 20:34:27)
- 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)
-- rust (1.41.1)
-- cargo (1.41.0)
+- rust (1.42.0)
+- cargo (1.42.0)
- rustfmt (1.4.11-stable)
- clippy (0.0.212)
-- rustdoc (1.41.1)
-- bindgen (execute
-the
-0.53.1)
+- rustdoc (1.42.0)
+- bindgen (0.53.2)
- 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)
+- Go 1.11 (go version go1.11.13 linux/amd64)
+- Go 1.12 (go version go1.12.17 linux/amd64)
+- Go 1.13 (go version go1.13.8 linux/amd64)
+- Go 1.14 (go version go1.14 linux/amd64)
- Google Repository 58
- Google Play services 49
- Google APIs 24
@@ -219,6 +218,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..8dd2d6fa4 100644
--- a/images/linux/scripts/installers/1604/android.sh
+++ b/images/linux/scripts/installers/1604/android.sh
@@ -4,6 +4,8 @@
## Desc: Installs Android SDK
################################################################################
+set -e
+
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/apt.sh
@@ -16,14 +18,28 @@ source $HELPER_SCRIPTS/apt.sh
# ANDROID_HOME is deprecated, but older versions of Gradle rely on it
echo "ANDROID_HOME=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
+# Create android sdk directory
+mkdir -p ${ANDROID_SDK_ROOT}
+
# Download the latest command line tools so that we can accept all of the licenses.
# See https://developer.android.com/studio/#command-tools
wget -O android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
-unzip android-sdk.zip -d ${ANDROID_ROOT}
+unzip android-sdk.zip -d ${ANDROID_SDK_ROOT}
rm -f android-sdk.zip
+# Check sdk manager installation
+/usr/local/lib/android/sdk/tools/bin/sdkmanager --list 1>/dev/null
+if [ $? -eq 0 ]
+then
+ echo "Android SDK manager was installed"
+else
+ echo "Android SDK manager was not installed"
+ exit 1
+fi
+
+
# Install the following SDKs and build tools, passing in "y" to accept licenses.
-echo "y" | ${ANDROID_ROOT}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} \
+echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \
"ndk-bundle" \
"platform-tools" \
"platforms;android-29" \
@@ -82,6 +98,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..0bb58fb8e 100644
--- a/images/linux/scripts/installers/1804/android.sh
+++ b/images/linux/scripts/installers/1804/android.sh
@@ -4,6 +4,8 @@
## Desc: Installs Android SDK
################################################################################
+set -e
+
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/apt.sh
@@ -16,14 +18,27 @@ echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
# ANDROID_HOME is deprecated, but older versions of Gradle rely on it
echo "ANDROID_HOME=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
+# Create android sdk directory
+mkdir -p ${ANDROID_SDK_ROOT}
+
# Download the latest command line tools so that we can accept all of the licenses.
# See https://developer.android.com/studio/#command-tools
wget -O android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
-unzip android-sdk.zip -d ${ANDROID_ROOT}
+unzip android-sdk.zip -d ${ANDROID_SDK_ROOT}
rm -f android-sdk.zip
+# Check sdk manager installation
+/usr/local/lib/android/sdk/tools/bin/sdkmanager --list 1>/dev/null
+if [ $? -eq 0 ]
+then
+ echo "Android SDK manager was installed"
+else
+ echo "Android SDK manager was not installed"
+ exit 1
+fi
+
# Install the following SDKs and build tools, passing in "y" to accept licenses.
-echo "y" | ${ANDROID_ROOT}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} \
+echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \
"ndk-bundle" \
"platform-tools" \
"platforms;android-29" \
@@ -76,6 +91,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/boost.sh b/images/linux/scripts/installers/boost.sh
index 673b1f61e..5cdae6a0c 100644
--- a/images/linux/scripts/installers/boost.sh
+++ b/images/linux/scripts/installers/boost.sh
@@ -7,18 +7,16 @@
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
+TOOLSET_PATH="$INSTALLER_SCRIPT_FOLDER/toolcache.json"
BOOST_LIB=/usr/local/share/boost
+BOOST_VERSIONS=$(cat $TOOLSET_PATH | jq -r 'to_entries[] | select(.key | match("boost")) | .value[] +".0"')
# Install Boost
-for BOOST_VERSION in ${BOOST_VERSIONS//,/ }
+for BOOST_VERSION in ${BOOST_VERSIONS}
do
- BOOST_SYMLINK_VER=`echo "${BOOST_VERSION//[.]/_}"`
- BOOST_ROOT="BOOST_ROOT_$BOOST_SYMLINK_VER"
-
- echo "$BOOST_ROOT=$BOOST_LIB/$BOOST_VERSION" | tee -a /etc/environment
- if [[ $BOOST_VERSION == $BOOST_DEFAULT ]]; then
- echo "BOOST_ROOT=$BOOST_LIB/$BOOST_VERSION" | tee -a /etc/environment
- fi
+ BOOST_SYMLINK_VER=$(echo "${BOOST_VERSION//[.]/_}")
+ BOOST_ROOT_VERSION="BOOST_ROOT_$BOOST_SYMLINK_VER"
+ echo "$BOOST_ROOT_VERSION=$BOOST_LIB/$BOOST_VERSION" | tee -a /etc/environment
DocumentInstalledItem "Boost C++ Libraries $BOOST_VERSION"
done
diff --git a/images/linux/scripts/installers/clang.sh b/images/linux/scripts/installers/clang.sh
index 1ca4cde2c..631be1909 100644
--- a/images/linux/scripts/installers/clang.sh
+++ b/images/linux/scripts/installers/clang.sh
@@ -12,13 +12,11 @@ function InstallClang {
version=$1
echo "Installing clang-$version..."
- # Clang 6.0 is not supported by automatic installation script (`llvm.sh`)
- # Thus we have to install it explicitly
- if [[ $version == 6* ]]; then
- apt-get install -y "clang-$version" "lldb-$version" "lld-$version"
- else
+ if [[ $version =~ 9 ]]; then
./llvm.sh $version
apt-get install -y "clang-format-$version"
+ else
+ apt-get install -y "clang-$version" "lldb-$version" "lld-$version" "clang-format-$version"
fi
# Run tests to determine that the software installed as expected
@@ -35,11 +33,6 @@ function InstallClang {
DocumentInstalledItem "Clang $version ($(clang-$version --version | head -n 1 | cut -d ' ' -f 3 | cut -d '-' -f 1))"
}
-# Install Clang compiler
-wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
-apt-add-repository "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-6.0 main"
-apt-get update -y
-
# Download script for automatic installation
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
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/scripts/installers/java-tools.sh b/images/linux/scripts/installers/java-tools.sh
index c979613e8..c4586039b 100644
--- a/images/linux/scripts/installers/java-tools.sh
+++ b/images/linux/scripts/installers/java-tools.sh
@@ -68,10 +68,11 @@ done
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
-DocumentInstalledItem "Azul Zulu OpenJDK (7) ($(/usr/lib/jvm/zulu-7-azure-amd64/bin/java -showversion |& head -n 1))"
-DocumentInstalledItem "Azul Zulu OpenJDK (8) ($(/usr/lib/jvm/zulu-8-azure-amd64/bin/java -showversion |& head -n 1))"
-DocumentInstalledItem "Azul Zulu OpenJDK (11) ($(/usr/lib/jvm/zulu-11-azure-amd64/bin/java -showversion |& head -n 1))"
-DocumentInstalledItem "Azul Zulu OpenJDK (12) ($(/usr/lib/jvm/zulu-12-azure-amd64/bin/java -showversion |& head -n 1))"
+DocumentInstalledItem "Azul Zulu OpenJDK:"
+DocumentInstalledItemIndent "7 ($(/usr/lib/jvm/zulu-7-azure-amd64/bin/java -showversion |& head -n 1))"
+DocumentInstalledItemIndent "8 ($(/usr/lib/jvm/zulu-8-azure-amd64/bin/java -showversion |& head -n 1)) (default)"
+DocumentInstalledItemIndent "11 ($(/usr/lib/jvm/zulu-11-azure-amd64/bin/java -showversion |& head -n 1))"
+DocumentInstalledItemIndent "12 ($(/usr/lib/jvm/zulu-12-azure-amd64/bin/java -showversion |& head -n 1))"
DocumentInstalledItem "Ant ($(ant -version))"
DocumentInstalledItem "Gradle ${gradleVersion}"
DocumentInstalledItem "Maven ($(mvn -version | head -n 1))"
diff --git a/images/linux/scripts/installers/rust.sh b/images/linux/scripts/installers/rust.sh
index 571538a30..850868a4d 100644
--- a/images/linux/scripts/installers/rust.sh
+++ b/images/linux/scripts/installers/rust.sh
@@ -12,16 +12,14 @@ set -e
export RUSTUP_HOME=/usr/share/rust/.rustup
export CARGO_HOME=/usr/share/rust/.cargo
-curl https://sh.rustup.rs -sSf | sh -s -- -y
+curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain=stable --profile=minimal
# Initialize environment variables
source $CARGO_HOME/env
# Install common tools
-rustup component add rustfmt
-rustup component add clippy
-cargo install bindgen
-cargo install cbindgen
+rustup component add rustfmt clippy
+cargo install bindgen cbindgen
echo "Test installation of the Rust toochain"
diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json
index 45b7386c7..e604b0581 100644
--- a/images/linux/ubuntu1604.json
+++ b/images/linux/ubuntu1604.json
@@ -240,8 +240,7 @@
"environment_vars": [
"METADATA_FILE={{user `metadata_file`}}",
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
- "BOOST_VERSIONS=1.69.0",
- "BOOST_DEFAULT=1.69.0"
+ "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json
index 4cf6f15bb..6396229d7 100644
--- a/images/linux/ubuntu1804.json
+++ b/images/linux/ubuntu1804.json
@@ -242,8 +242,7 @@
"environment_vars": [
"METADATA_FILE={{user `metadata_file`}}",
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
- "BOOST_VERSIONS=1.69.0",
- "BOOST_DEFAULT=1.69.0"
+ "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}"
],
"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 10c9ac286..ec7f0a4ee 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 20200307.2 update.
+The following software is installed on machines with the 20200321.1 update.
#### Xcode 11.3.1 set by default
## Operating System
@@ -13,37 +13,38 @@ The following software is installed on machines with the 20200307.2 update.
- Java 11: Zulu11.37+17-CA (build 11.0.6+10-LTS)
- Java 12: Zulu12.3+11-CA (build 12.0.2+3)
- Java 13: Zulu13.29+9-CA (build 13.0.2+6-MTS)
-- Rust 1.41.1
+- Java 14: Zulu14.27+1-CA (build 14+36)
+- Rust 1.42.0
- Clang/LLVM 9.0.1
-- gcc-8 (Homebrew GCC 8.3.0_2) 8.3.0
-- gcc-9 (Homebrew GCC 9.2.0_3) 9.2.0
-- GNU Fortran (Homebrew GCC 8.3.0_2) 8.3.0
-- GNU Fortran (Homebrew GCC 9.2.0_3) 9.2.0
+- gcc-8 (Homebrew GCC 8.4.0) 8.4.0
+- gcc-9 (Homebrew GCC 9.3.0) 9.3.0
+- GNU Fortran (Homebrew GCC 8.4.0) 8.4.0
+- GNU Fortran (Homebrew GCC 9.3.0) 9.3.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.10.1
+- NVM - Cached node versions: v6.17.1 v8.17.0 v10.19.0 v12.16.1 v13.11.0
- PowerShell 7.0.0
- Python 2.7.17
-- Python 3.7.6
+- Python 3.7.7
- 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
+- .NET SDK 2.0.0 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.200
- Go 1.14
-- PHP 7.4.3
-- julia 1.3.1
+- PHP 7.4.4
+- julia 1.4.0
### 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.9
+- CocoaPods 1.9.1
+- Homebrew 2.2.10
- NPM 6.13.4
-- Yarn 1.22.1
+- Yarn 1.22.4
- NuGet 5.4.0.6315
- Pip 19.3.1 (python 2.7)
-- Pip 19.3.1 (python 3.7)
-- Miniconda 4.7.12
+- Pip 20.0.2 (python 3.7)
+- Miniconda 4.8.2
- RubyGems 3.1.2
### Project Management
@@ -51,9 +52,10 @@ The following software is installed on machines with the 20200307.2 update.
- Gradle 6.2.2
### Utilities
-- Curl 7.69.0
-- Git: 2.25.1
+- Curl 7.69.1
+- Git: 2.25.2
- Git LFS: 2.10.0
+- Hub CLI: 2.14.2
- GNU Wget 1.20.3
- Subversion (SVN) 1.13.0
- Packer 1.5.4
@@ -67,19 +69,23 @@ The following software is installed on machines with the 20200307.2 update.
- zstd 1.4.4
- bazel 2.2.0
- bazelisk v1.3.0
+- helm v3.1.2+gd878d4d
+- Docker 19.03.8
+- docker-machine 0.16.2
+- docker-compose 1.25.4
### Tools
- Fastlane 2.143.0
- Cmake 3.16.5
-- App Center CLI 2.3.3
-- Azure CLI 2.1.0
+- App Center CLI 2.3.4
+- Azure CLI 2.2.0
### Browsers
-- Google Chrome 80.0.3987.132
+- Google Chrome 80.0.3987.149
- ChromeDriver 80.0.3987.106
-- Microsoft Edge 80.0.361.66
+- Microsoft Edge 80.0.361.69
- MSEdgeDriver 80.0.361.66
-- Mozilla Firefox 73.0.1
+- Mozilla Firefox 74.0
- geckodriver 0.26.0
### Toolcache
diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json
index b6aafce8c..e0bf37f50 100644
--- a/images/win/Windows2016-Azure.json
+++ b/images/win/Windows2016-Azure.json
@@ -15,6 +15,7 @@
"virtual_network_subnet_name": "{{env `VNET_SUBNET`}}",
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"vm_size": "Standard_DS4_v2",
+ "run_scan_antivirus": "false",
"root_folder": "C:",
"image_folder": "C:\\image",
@@ -100,7 +101,8 @@
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Windows2016/Initialize-VM.ps1"
- ]
+ ],
+ "execution_policy": "unrestricted"
},
{
"type": "powershell",
@@ -213,7 +215,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Install-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-Wix.ps1"
]
},
{
@@ -229,7 +231,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Install-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-WDK.ps1"
]
},
{
@@ -251,7 +253,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Validate-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-Wix.ps1"
]
},
{
@@ -263,7 +265,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Validate-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-WDK.ps1"
]
},
{
@@ -516,8 +518,7 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0,1.72.0",
- "BOOST_DEFAULT=1.69.0"
+ "ROOT_FOLDER={{user `root_folder`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Boost.ps1"
@@ -651,8 +652,7 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0,1.72.0",
- "BOOST_DEFAULT=1.69.0"
+ "ROOT_FOLDER={{user `root_folder`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Boost.ps1"
@@ -874,8 +874,17 @@
},
{
"type": "powershell",
+ "environment_vars":[
+ "RUN_SCAN_ANTIVIRUS={{user `run_scan_antivirus`}}"
+ ],
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Run-Antivirus.ps1"
+ "{{ template_dir }}/scripts/Installers/Run-Antivirus.ps1"
+ ]
+ },
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1"
]
},
{
diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md
index c60d1ffa7..e81702625 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 20200308.0 update.
+The following software is installed on machines with the 20200316.1 update.
Components marked with **\*** have been upgraded since the previous version of the image.
@@ -30,15 +30,15 @@ _Version:_ 7.0.0
## Docker images
The following container images have been cached:
-* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016 (Digest: sha256:2053602020c89ff2d6c0d4005372ebc6cebcf866fb5785e562d91389aa467943)
-* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016 (Digest: sha256:ca895ab76f1d3ab95f022cbca076e06b62daebafe61af34212bb3ed1fe982d78)
-* mcr.microsoft.com/windows/servercore:ltsc2016 (Digest: sha256:10e43e24be6eb5f3e19e705a88adb9794b569028f0e0d715d40f25e53e04c3fc)
+* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016 (Digest: sha256:e53049e13aa29b2df35642fa827c532ceaa78745e6ca72be2cbe74b1d75b5b99)
+* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016 (Digest: sha256:9d34bebe71fdebfd288b3e87a9b8372e47a9291782c09fbaeb657f8f78817779)
+* mcr.microsoft.com/windows/servercore:ltsc2016 (Digest: sha256:5bd97dbab1afe8d3200f5d5c974df3b0130e74e8a69fddcd427699c4c8cb5037)
* microsoft/aspnetcore-build:1.0-2.0 (Digest: sha256:9ecc7c5a8a7a11dca5f08c860165646cb30d084606360a3a72b9cbe447241c0c)
* mcr.microsoft.com/windows/nanoserver:10.0.14393.953 (Digest: sha256:fc60bd5ae0e61b334ce1cf1bcbf20c10c36b4c5482a01da319c9c989f9e6e268)
## Visual Studio 2017 Enterprise
-_Version:_ VisualStudio/15.9.20+28307.1033
+_Version:_ VisualStudio/15.9.21+28307.1064
_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise
The following workloads including required and recommended components are installed with Visual Studio 2017:
@@ -415,7 +415,7 @@ _Description:_ .NET has been configured to use TLS 1.2 by default
## Azure CLI
-_Version:_ 2.1.0
+_Version:_ 2.2.0
_Environment:_
* PATH: contains location of az.cmd
@@ -425,7 +425,7 @@ _Version:_ azure-devops 0.17.0
## Python
-_Version:_ 2.7.17 (x64)
_Version:_ 3.5.4 (x64)
_Version:_ 3.6.8 (x64)
_Version:_ 3.7.6 (x64)
_Version:_ 3.8.2 (x64)
_Version:_ 2.7.17 (x86)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.6 (x86)
_Version:_ 3.8.2 (x86)
+_Version:_ 2.7.17 (x64)
_Version:_ 3.5.4 (x64)
_Version:_ 3.6.8 (x64)
_Version:_ 3.7.6 (x64)
_Version:_ 3.8.2 (x64)
_Version:_ 2.7.17 (x86)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.6 (x86)
_Version:_ 3.8.2 (x86)
__System default version:__ Python 3.7.6
_Environment:_
* Location: C:\hostedtoolcache\windows\Python\3.7.6\x64
* PATH: contains the location of Python 3.7.6
## PyPy
@@ -433,17 +433,11 @@ _Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
## Ruby
-_Version:_ 2.4.9 (x64)
_Version:_ 2.5.7 (x64)
_Version:_ 2.6.5 (x64)
_Version:_ 2.7.0 (x64)
+_Version:_ 2.4.9 (x64)
_Version:_ 2.5.7 (x64)
_Version:_ 2.6.5 (x64)
_Version:_ 2.7.0 (x64)
__System default version:__ Ruby 2.5.7p206
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.7\x64\bin
* PATH: contains the location of Ruby 2.5.7p206
* Gem Version: 2.7.6.2
-## Python (64 bit)
+## OpenSSL
-#### Python 3.6.8
-_Environment:_
-* PATH: contains location of python.exe
-
-#### Python 2.7.17
-
-_Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64
+_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
## Perl
@@ -464,32 +458,12 @@ _Environment:_
## Go (x64)
-#### 1.9.7
+#### 1.14
_Environment:_
-* GOROOT_1_9_X64: root directory of the Go 1.9.7 installation
-
-#### 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:_
-* PATH: contains the location of go.exe version 1.12.7
-* GOROOT: root directory of the Go 1.12.7 installation
-* GOROOT_1_12_X64: root directory of the Go 1.12.7 installation
-#### 1.13
-
-_Environment:_
-* GOROOT_1_13_X64: root directory of the Go 1.13 installation
-
+* PATH: contains the location of go.exe version 1.14
+* GOROOT: root directory of the Go 1.14 installation
+* GOROOT_1_14_X64: root directory of the Go 1.14 installation
## Boost
@@ -514,17 +488,9 @@ _Environment:_
* PATH: contains the location of php.exe version 7.4.3
* PHPROOT: root directory of the PHP 7.4.3 installation
-## Ruby (x64)
-
-#### 2.5.7p206
-_Environment:_
-* Location: C:\hostedtoolcache\windows\Ruby\2.5.7\x64\bin
-* PATH: contains the location of ruby.exe version 2.5.7p206
-* Gem Version: 3.1.2
-
## Rust (64-bit)
-#### 1.41.1
+#### 1.42.0
_Location:_ C:\Rust\.cargo\bin
_Environment:_
* PATH: contains the location of rustc.exe
@@ -556,7 +522,7 @@ _version:_
## Mozilla Firefox
_version:_
-73.0.1
+74.0
## Selenium Web Drivers
@@ -602,7 +568,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.1
+* Yarn 1.22.4
## npm
@@ -823,15 +789,11 @@ _Version:_ 1.4.0
## Inno Setup
-_Version:_ 6.0.3
+_Version:_ 6.0.4
## GitVersion
-_Version:_ 5.2.0.0
-
-## OpenSSL
-
-_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
+_Version:_ 5.2.3.0
## Cloud Foundry CLI
diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json
index c7c0da02c..c93f79e75 100644
--- a/images/win/Windows2019-Azure.json
+++ b/images/win/Windows2019-Azure.json
@@ -15,6 +15,7 @@
"virtual_network_subnet_name": "{{env `VNET_SUBNET`}}",
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"vm_size": "Standard_DS4_v2",
+ "run_scan_antivirus": "false",
"root_folder": "C:",
"image_folder": "C:\\image",
@@ -100,7 +101,8 @@
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Windows2019/Initialize-VM.ps1"
- ]
+ ],
+ "execution_policy": "unrestricted"
},
{
"type": "powershell",
@@ -188,13 +190,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"
]
},
{
@@ -210,7 +212,7 @@
{
"type": "powershell",
"scripts": [
- "{{ template_dir }}/scripts/Installers/Windows2019/Install-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-WDK.ps1"
]
},
{
@@ -226,13 +228,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"
]
},
{
@@ -244,7 +246,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Validate-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-WDK.ps1"
]
},
{
@@ -497,8 +499,7 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0,1.72.0",
- "BOOST_DEFAULT=1.72.0"
+ "ROOT_FOLDER={{user `root_folder`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Boost.ps1"
@@ -638,8 +639,7 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0,1.72.0",
- "BOOST_DEFAULT=1.72.0"
+ "ROOT_FOLDER={{user `root_folder`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Boost.ps1"
@@ -867,8 +867,17 @@
},
{
"type": "powershell",
+ "environment_vars":[
+ "RUN_SCAN_ANTIVIRUS={{user `run_scan_antivirus`}}"
+ ],
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Run-Antivirus.ps1"
+ "{{ template_dir }}/scripts/Installers/Run-Antivirus.ps1"
+ ]
+ },
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1"
]
},
{
diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
index f38e35630..743dc7a18 100644
--- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1
+++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
@@ -14,10 +14,15 @@ Export-ModuleMember -Function @(
'Set-SystemVariable'
'Install-MSI'
'Install-EXE'
+ 'Get-ToolcachePackages'
+ 'Get-ToolsByName'
'Add-ContentToMarkdown'
'Add-SoftwareDetailsToMarkdown'
'Stop-SvcWithErrHandling'
'Set-SvcWithErrHandling'
'Install-VsixExtension'
- 'Get-VS19ExtensionVersion'
+ '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 eaabd2368..61dce5628 100644
--- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1
+++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
@@ -165,46 +165,62 @@ function Install-VsixExtension
{
Param
(
- [String]$Url,
- [String]$Name
+ [string] $Url,
+ [Parameter(Mandatory = $true)]
+ [string] $Name,
+ [string] $FilePath,
+ [Parameter(Mandatory = $true)]
+ [string] $VSversion,
+ [int] $retries = 20,
+ [switch] $InstallOnly
)
- $FilePath = "${env:Temp}\$Name"
- $retries = 20
-
- while($retries -gt 0)
+ if (!$InstallOnly)
{
- try
- {
- Write-Host "Downloading $Name..."
- (New-Object System.Net.WebClient).DownloadFile($Url, $FilePath)
- break
- }
- catch
- {
- Write-Host "There is an error during $Name downloading"
- $_
+ $FilePath = "${env:Temp}\$Name"
- $retries--
-
- if ($retries -eq 0)
+ while($retries -gt 0)
+ {
+ try
{
- Write-Host "File can't be downloaded"
- $_
- exit 1
+ Write-Host "Downloading $Name..."
+ (New-Object System.Net.WebClient).DownloadFile($Url, $FilePath)
+ break
}
+ catch
+ {
+ Write-Host "There is an error during $Name downloading"
+ $_
- Write-Host "Waiting 30 seconds before retrying. Retries left: $retries"
- Start-Sleep -Seconds 30
+ $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)
+ $ArgumentList = ('/quiet', "`"$FilePath`"")
Write-Host "Starting Install $Name..."
try
{
- $process = Start-Process -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VSIXInstaller.exe" -ArgumentList $ArgumentList -Wait -PassThru
+ #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
{
@@ -225,11 +241,14 @@ function Install-VsixExtension
exit 1
}
- #Cleanup installation files
- Remove-Item -Force -Confirm:$false $FilePath
+ #Cleanup downloaded installation files
+ if (!$InstallOnly)
+ {
+ Remove-Item -Force -Confirm:$false $FilePath
+ }
}
-function Get-VS19ExtensionVersion
+function Get-VSExtensionVersion
{
param (
[string] [Parameter(Mandatory=$true)] $packageName
@@ -255,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/Configure-Antivirus.ps1 b/images/win/scripts/Installers/Configure-Antivirus.ps1
new file mode 100644
index 000000000..650d3a982
--- /dev/null
+++ b/images/win/scripts/Installers/Configure-Antivirus.ps1
@@ -0,0 +1,2 @@
+Write-Host "Set antivirus parameters"
+Set-MpPreference -ScanAvgCPULoadFactor 5 -ExclusionPath "D:\", "C:\"
\ 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..d46a150c8 100644
--- a/images/win/scripts/Installers/Install-Boost.ps1
+++ b/images/win/scripts/Installers/Install-Boost.ps1
@@ -4,9 +4,11 @@
## Desc: Install boost using tool cache
################################################################################
-$BoostDirectory = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "Boost"
-$BoostVersions = $env:BOOST_VERSIONS.split(',')
-$BoostDefault = $env:BOOST_DEFAULT
+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 $_}
foreach($BoostVersion in $BoostVersions)
{
@@ -14,13 +16,4 @@ foreach($BoostVersion in $BoostVersions)
$EnvBoostPath = "BOOST_ROOT_{0}" -f ($BoostVersion.Replace('.', '_'))
setx $EnvBoostPath $BoostInstallationDir /M | Out-Null
-
- if ($BoostVersion -eq $BoostDefault)
- {
- 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-Docker.ps1 b/images/win/scripts/Installers/Install-Docker.ps1
index cd1f96969..ec4f0d895 100644
--- a/images/win/scripts/Installers/Install-Docker.ps1
+++ b/images/win/scripts/Installers/Install-Docker.ps1
@@ -14,3 +14,7 @@ Install-Package -Name docker -ProviderName DockerMsftProvider -Force
Start-Service docker
choco install docker-compose -y
+
+# Install helm
+Write-Host "Install Helm"
+choco install kubernetes-helm
\ No newline at end of file
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-PHP.ps1 b/images/win/scripts/Installers/Install-PHP.ps1
index 02d38931d..72db2ee27 100644
--- a/images/win/scripts/Installers/Install-PHP.ps1
+++ b/images/win/scripts/Installers/Install-PHP.ps1
@@ -10,8 +10,11 @@ Import-Module -Name ImageHelpers
$installDir = "c:\tools\php"
choco install php -y --force --params "/InstallDir:$installDir"
-# update path to extensions and enable curl and mbstring extensions
-((Get-Content -path $installDir\php.ini -Raw) -replace ';extension=curl','extension=curl' -replace ';extension=mbstring','extension=mbstring' -replace ';extension_dir = "ext"','extension_dir = "ext"') | Set-Content -Path $installDir\php.ini
+# Install latest Composer in chocolatey
+choco install composer --ia "/DEV=$installDir /PHP=$installDir"
+
+# update path to extensions and enable curl and mbstring extensions, and enable php openssl extensions.
+((Get-Content -path $installDir\php.ini -Raw) -replace ';extension=curl','extension=curl' -replace ';extension=mbstring','extension=mbstring' -replace ';extension_dir = "ext"','extension_dir = "ext"' -replace 'extension=";php_openssl.dll"','extension_dir = "php_openssl.dll"') | Set-Content -Path $installDir\php.ini
# Set the PHPROOT environment variable.
setx PHPROOT $installDir /M
diff --git a/images/win/scripts/Installers/Install-Rust.ps1 b/images/win/scripts/Installers/Install-Rust.ps1
index e19cd4c14..61588a86f 100644
--- a/images/win/scripts/Installers/Install-Rust.ps1
+++ b/images/win/scripts/Installers/Install-Rust.ps1
@@ -14,7 +14,7 @@ $env:CARGO_HOME="C:\Rust\.cargo"
Invoke-WebRequest -UseBasicParsing -Uri "https://win.rustup.rs/x86_64" -OutFile rustup-init.exe
# Install Rust by running rustup-init.exe (disabling the confirmation prompt with -y)
-.\rustup-init.exe -y
+.\rustup-init.exe -y --default-toolchain=stable --profile=minimal
# Delete rustup-init.exe when it's no longer needed
Remove-Item -Path .\rustup-init.exe
@@ -24,10 +24,8 @@ Add-MachinePathItem "$env:CARGO_HOME\bin"
$env:Path = Get-MachinePath
# Install common tools
-rustup component add rustfmt
-rustup component add clippy
-cargo install bindgen
-cargo install cbindgen
+rustup component add rustfmt clippy
+cargo install bindgen cbindgen
# Run script at startup for all users
$cmdRustSymScript = @"
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/Run-Antivirus.ps1 b/images/win/scripts/Installers/Run-Antivirus.ps1
new file mode 100644
index 000000000..7993146ae
--- /dev/null
+++ b/images/win/scripts/Installers/Run-Antivirus.ps1
@@ -0,0 +1,30 @@
+################################################################################
+## File: Run-Antivirus.ps1
+## Desc: Run a full antivirus scan.
+## Run right after cleanup before we sysprep
+################################################################################
+
+if ($env:run_scan_antivirus -eq $true) {
+ try {
+ Update-MpSignature
+ }
+ catch {
+ Write-Host "Some error was found"
+ Write-Host $_
+ }
+
+ Write-Host "Make sure windefend is going to start"
+ Start-Service windefend -ErrorAction Continue
+ Write-Host "Waiting for windefend to report as running"
+ $service = Get-Service "Windefend"
+ $service.WaitForStatus("Running","00:10:00")
+
+ Write-Host "Run antivirus"
+ # Tell Defender to use 100% of the CPU during the scan
+ Set-MpPreference -ScanAvgCPULoadFactor 100
+ # Full Scan
+ Start-Process -FilePath "C:\Program Files\Windows Defender\MpCmdRun.exe" -ArgumentList ("-Scan","-ScanType", 2) -Wait
+}
+else {
+ Write-Host "Scanning process has been skipped"
+}
\ No newline at end of file
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-Boost.ps1 b/images/win/scripts/Installers/Validate-Boost.ps1
index 9c97c28dc..e9b7554e3 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
@@ -16,7 +18,6 @@ function Validate-BoostVersion
if (Test-Path "$ReleasePath\b2.exe")
{
Write-Host "Boost.Build $BoostRelease is successfully installed"
-
return
}
@@ -24,52 +25,46 @@ function Validate-BoostVersion
exit 1
}
-# Verify that Boost is on the path
-if (Get-Command -Name 'b2')
-{
- Write-Host "Boost is on the path"
-}
-else
-{
- Write-Host "Boost is not on the path"
- exit 1
-}
-
# Adding description of the software to Markdown
$tmplMark = @"
-#### {0}
+#### {0} [{2}]
_Environment:_
* {1}: root directory of the Boost version {0} installation
"@
-$tmplMarkRoot = @"
-#### {0}
-
-* 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($BoostVersion -eq $env:BOOST_DEFAULT)
- {
- $null = $Description.AppendLine(($tmplMarkRoot -f $BoostVersion, $BoostVersionTag))
- }
- else
- {
- $null = $Description.AppendLine(($tmplMark -f $BoostVersion, $BoostVersionTag))
+ $null = $Description.AppendLine(($tmplMark -f $BoostVersion, $BoostVersionTag, $BoostToolsetName))
}
}
+$CMakeFindBoostInfo = @"
+
+#### _Notes:_
+Link: https://cmake.org/cmake/help/latest/module/FindBoost.html
+
+If Boost was built using the ``boost-cmake`` project or from ``Boost 1.70.0`` on it provides a package
+configuration file for use with find\_package's config mode. This module looks for the package
+configuration file called BoostConfig.cmake or boost-config.cmake and stores the result in CACHE entry "Boost_DIR".
+If found, the package configuration file is loaded and this module returns with no further action.
+See documentation of the Boost CMake package configuration for details on what it provides.
+
+Set ``Boost_NO_BOOST_CMAKE to ON``, to disable the search for boost-cmake.
+"@
+
+$null = $Description.AppendLine($CMakeFindBoostInfo)
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description.ToString()
diff --git a/images/win/scripts/Installers/Validate-Docker.ps1 b/images/win/scripts/Installers/Validate-Docker.ps1
index cc9d496ef..9dab4f460 100644
--- a/images/win/scripts/Installers/Validate-Docker.ps1
+++ b/images/win/scripts/Installers/Validate-Docker.ps1
@@ -44,3 +44,25 @@ _Environment:_
"@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
+
+# Validate helm
+if (Get-Command -Name 'helm')
+{
+ Write-Host "helm on path"
+}
+else
+{
+ Write-Host 'helm is not on path'
+ exit 1
+}
+
+$version = $(helm version --short)
+$SoftwareName = "Helm"
+
+$Description = @"
+_Version:_ $version
+_Environment:_
+* PATH: contains location of helm
+"@
+
+Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
\ No newline at end of file
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-JavaTools.ps1 b/images/win/scripts/Installers/Validate-JavaTools.ps1
index 0fdd5c82a..714776890 100644
--- a/images/win/scripts/Installers/Validate-JavaTools.ps1
+++ b/images/win/scripts/Installers/Validate-JavaTools.ps1
@@ -56,7 +56,7 @@ if( $( $(gradle -version) | Out-String) -match 'Gradle (?.*)' )
$SoftwareName = "Java Development Kit"
$Description = @"
-#### $javaVersion
+#### $javaVersion (default)
_Environment:_
* JAVA_HOME: location of JDK
diff --git a/images/win/scripts/Installers/Validate-NSIS.ps1 b/images/win/scripts/Installers/Validate-NSIS.ps1
index b38624e75..276eb139f 100644
--- a/images/win/scripts/Installers/Validate-NSIS.ps1
+++ b/images/win/scripts/Installers/Validate-NSIS.ps1
@@ -28,5 +28,4 @@ $Description = @"
_Version:_ $Version
"@
-#Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
-Write-Host $description
+Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
diff --git a/images/win/scripts/Installers/Validate-PHP.ps1 b/images/win/scripts/Installers/Validate-PHP.ps1
index a8663617f..f2f26a526 100644
--- a/images/win/scripts/Installers/Validate-PHP.ps1
+++ b/images/win/scripts/Installers/Validate-PHP.ps1
@@ -33,6 +33,32 @@ else
exit 1
}
+# Verify that composer.exe is on the path
+if(Get-Command -Name 'composer')
+{
+ Write-Host "$(composer --version) is on the path."
+}
+else
+{
+ Write-Host "composer is not on the path."
+ exit 1
+}
+
+# Get the composer version.
+$composerVersion = $(composer --version)
+
+# Add composer version details in Markdown
+$SoftwareName = "Composer"
+$Description = @"
+#### $composerVersion
+
+_Environment:_
+* PATH: contains the location of composer.exe version $composerVersion
+* PHPROOT: root directory of the Composer $composerVersion installation
+"@
+
+Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
+
# Get available versions of PHP
$phpVersionOnPath = Get-PHPVersion -phpRootPath "C:\tools\php72"
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-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/Run-Antivirus.ps1 b/images/win/scripts/Installers/Windows2016/Run-Antivirus.ps1
deleted file mode 100644
index 77b3b2bc9..000000000
--- a/images/win/scripts/Installers/Windows2016/Run-Antivirus.ps1
+++ /dev/null
@@ -1,19 +0,0 @@
-################################################################################
-## File: Run-Antivirus.ps1
-## Desc: Run a full antivirus scan.
-## Run right after cleanup before we sysprep
-################################################################################
-
-Write-Host "Run antivirus"
-Push-Location "C:\Program Files\Windows Defender"
-
-# Tell Defender to use 100% of the CPU during the scan
-Set-MpPreference -ScanAvgCPULoadFactor 100
-
-# Full Scan
-.\MpCmdRun.exe -Scan -ScanType 2
-Pop-Location
-
-Write-Host "Set antivirus parmeters"
-Set-MpPreference -ScanAvgCPULoadFactor 5 `
- -ExclusionPath "D:\", "C:\"
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 2d477c187..000000000
--- a/images/win/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1
+++ /dev/null
@@ -1,11 +0,0 @@
-###################################################################################
-## File: Install-AnalysisExtenstion.ps1
-## Desc: Install the Microsoft Analysis Services Projects Visual Studio extension
-###################################################################################
-
-Import-Module -Name ImageHelpers -Force;
-
-$extensionUrl = "https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ProBITools/vsextensions/MicrosoftAnalysisServicesModelingProjects/2.9.5/vspackage"
-$extensionName = "Microsoft.DataTools.AnalysisServices.vsix"
-
-Install-VsixExtension -Url $extensionUrl -Name $extensionName
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-VS2019.ps1 b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1
index a9658fd72..1ccd5c422 100644
--- a/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1
+++ b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1
@@ -121,6 +121,7 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre ' + `
+ '--add Microsoft.VisualStudio.Component.Windows10SDK.14393 ' + `
'--add Microsoft.VisualStudio.Component.Windows10SDK.16299 ' + `
'--add Microsoft.VisualStudio.Component.Windows10SDK.17134 ' + `
'--add Microsoft.VisualStudio.Component.Windows10SDK.17763 ' + `
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 918217c5a..000000000
--- a/images/win/scripts/Installers/Windows2019/Install-Wix.ps1
+++ /dev/null
@@ -1,14 +0,0 @@
-################################################################################
-## File: Install-Wix.ps1
-## Desc: Install WIX.
-################################################################################
-
-Import-Module -Name ImageHelpers -Force;
-
-choco install wixtoolset -y --force
-
-$extensionUrl = "https://wixtoolset.gallerycdn.vsassets.io/extensions/wixtoolset/wixtoolsetvisualstudio2019extension/1.0.0.4/1563296438961/Votive2019.vsix"
-$extensionName = "Votive2019.vsix"
-
-#Installing VS extension 'Wix Toolset Visual Studio 2019 Extension'
-Install-VsixExtension -Url $extensionUrl -Name $extensionName
diff --git a/images/win/scripts/Installers/Windows2019/Run-Antivirus.ps1 b/images/win/scripts/Installers/Windows2019/Run-Antivirus.ps1
deleted file mode 100644
index e38126af0..000000000
--- a/images/win/scripts/Installers/Windows2019/Run-Antivirus.ps1
+++ /dev/null
@@ -1,27 +0,0 @@
-################################################################################
-## File: Run-Antivirus.ps1
-## Desc: Run a full antivirus scan.
-## Run right after cleanup before we sysprep
-################################################################################
-
-Write-Host "Make sure windefend is going to start"
-Start-Service windefend -ErrorAction Continue
-
-Write-Host "Waiting for windefend to report as running"
-$service = Get-Service "Windefend"
-$service.WaitForStatus("Running","00:10:00")
-
-Write-Host "Run antivirus"
-Push-Location "C:\Program Files\Windows Defender"
-
-# Tell Defender to use 100% of the CPU during the scan
-Set-MpPreference -ScanAvgCPULoadFactor 100
-
-# Full Scan
-.\MpCmdRun.exe -Scan -ScanType 2
-Pop-Location
-
-Update-MpSignature
-Write-Host "Set antivirus parmeters"
-Set-MpPreference -ScanAvgCPULoadFactor 5 `
- -ExclusionPath "D:\", "C:\"
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