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