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