diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md
index c1b9c14ec..e645485e5 100644
--- a/.github/ISSUE_TEMPLATE/bug-report.md
+++ b/.github/ISSUE_TEMPLATE/bug-report.md
@@ -10,9 +10,11 @@ assignees: ''
**Describe the bug**
A clear and concise description of what the bug is, and why you consider it to be a bug.
-**Area for Triage**:
+**Area for Triage**:
+
-**Question, Bug, or Feature?**:
+**Question, Bug, or Feature?**:
+
**Virtual environments affected**
- [ ] macOS 10.15
diff --git a/.github/ISSUE_TEMPLATE/tool-request.md b/.github/ISSUE_TEMPLATE/tool-request.md
index 615e9bfcf..33bf44540 100644
--- a/.github/ISSUE_TEMPLATE/tool-request.md
+++ b/.github/ISSUE_TEMPLATE/tool-request.md
@@ -16,9 +16,11 @@ assignees: ''
- Brief description of tool:
- URL for tool's homepage:
-**Area for Triage**:
+**Area for Triage**:
+
-**Question, Bug, or Feature?**:
+**Question, Bug, or Feature?**:
+
**Virtual environments affected**
- [ ] macOS 10.15
diff --git a/.github/workflows/issue-triager.yml b/.github/workflows/issue-triager.yml
index 36a29c302..d28b1080c 100644
--- a/.github/workflows/issue-triager.yml
+++ b/.github/workflows/issue-triager.yml
@@ -13,11 +13,24 @@ jobs:
steps:
- uses: actions/checkout@v1
+
- uses: damccorm/tag-ur-it@master
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: "./triage-rules.yml"
+ - if: failure()
+ uses: actions/github-script@0.4.0
+ with:
+ github-token: ${{secrets.GITHUB_TOKEN}}
+ script: |
+ github.issues.addLabels({
+ issue_number: context.issue,
+ owner: context.owner,
+ repo: context.repo,
+ labels: ['needs triage']
+ })
+
- name: Set Node.js 10.x
uses: actions/setup-node@master
with:
diff --git a/LICENSE b/LICENSE
index 331b241b3..b50625eb6 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2019 GitHub
+Copyright (c) 2020 GitHub
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 0cb97a2bc..cf8a7eb08 100644
--- a/README.md
+++ b/README.md
@@ -2,17 +2,20 @@
This repository contains the code that we use to create the GitHub Actions [virtual environments](https://help.github.com/en/articles/software-in-virtual-environments-for-github-actions).
Please use the issue templates to submit requests and bug reports related to the installed software.
-If you need help with how to set up your workflow file or use a specific tool,
+If you need help with how to set up your workflow file or use a specific tool,
check out the [GitHub Actions Community Forum](https://github.community/t5/GitHub-Actions/bd-p/actions).
+If you need help with how to build VM machine from source code, check out the [documentation](./help/CreateImageAndAzureResources.md).
+
## OS's offered
We currently offer Linux, macOS, and Windows virtual environments:
-[](https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu1804-README.md)
-[](https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu1604-README.md)
-[](https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md)
+[](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&redirect=1)
+[](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu16&redirect=1)
+[](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&redirect=1)
+[](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&redirect=1)
-- **Linux**. We offer Ubuntu 16.04 and Ubuntu 18.04. We do not plan to offer other Linux distributions. If you want to build using other distributions with the hosted virtual environments, we suggest you use Docker. Alternatively, you can host your own VMs and make use of self-hosted runners.
+- **Linux**. We offer Ubuntu 16.04 and Ubuntu 18.04. We do not plan to offer other Linux distributions. If you want to build using other distributions with the hosted virtual environments, we suggest you use Docker. Alternatively, you can host your own VMs and make use of self-hosted runners.
- **macOS**. We offer macOS Catalina 10.15.
- **Windows**. We offer Windows Server 2016 and Windows Server 2019.
diff --git a/help/CreateImageAndAzureResources.md b/help/CreateImageAndAzureResources.md
new file mode 100644
index 000000000..3684dfba9
--- /dev/null
+++ b/help/CreateImageAndAzureResources.md
@@ -0,0 +1,11 @@
+# Build an image.
+
+## Create required Azure resources and generate an image
+
+1. Generating required Azure resources and running a packer build for a targeted image is automated [here](../helpers/GenerateResourcesAndImage.ps1).
+
+## Create a VM based on the template created by Packer
+
+1. At the end of the output from running Packer above is a URL to the VM resource template with a read access token. It ends with `.json` plus a query string. Note this URL. For now, it seems like there is an [Az CLI bug](https://github.com/Azure/azure-cli/issues/5899) with specifying the template through a URI. So download the template locally and note the path of the template file.
+1. Generating the required Azure resources and creating the VM is automated [here](../helpers/CreateAzureVMFromPackerTemplate.ps1).
+1. After the VM is created, remote into it using its public IP address. You can test the installed tools or install the Azure Pipelines agent and connect it to your Azure DevOps organization.
\ No newline at end of file
diff --git a/helpers/GenerateResourcesAndImage.ps1 b/helpers/GenerateResourcesAndImage.ps1
index 6d328171b..9fd19fd48 100644
--- a/helpers/GenerateResourcesAndImage.ps1
+++ b/helpers/GenerateResourcesAndImage.ps1
@@ -61,8 +61,11 @@ Function GenerateResourcesAndImage {
.PARAMETER Force
Delete the resource group if it exists without user confirmation.
+ .PARAMETER GithubFeedToken
+ GitHub PAT to download tool packages from GitHub Package Registry
+
.EXAMPLE
- GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\azure-pipelines-image-generation" -ImageType Ubuntu1604 -AzureLocation "East US"
+ GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\virtual-environments" -ImageType Ubuntu1604 -AzureLocation "East US"
#>
param (
[Parameter(Mandatory = $True)]
@@ -78,9 +81,17 @@ Function GenerateResourcesAndImage {
[Parameter(Mandatory = $False)]
[int] $SecondsToWaitForServicePrincipalSetup = 30,
[Parameter(Mandatory = $False)]
+ [string] $GithubFeedToken,
+ [Parameter(Mandatory = $False)]
[Switch] $Force
)
+ if (([string]::IsNullOrEmpty($GithubFeedToken)))
+ {
+ Write-Error "'-GithubFeedToken' parameter is not specified. You have to specify valid GitHub PAT to download tool packages from GitHub Package Registry"
+ exit 1
+ }
+
$builderScriptPath = Get-PackerTemplatePath -RepositoryRoot $ImageGenerationRepositoryRoot -ImageType $ImageType
$ServicePrincipalClientSecret = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper();
$InstallPassword = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper();
@@ -155,5 +166,16 @@ Function GenerateResourcesAndImage {
$tenantId = $sub.TenantId
# "", "Note this variable-setting script for running Packer with these Azure resources in the future:", "==============================================================================================", "`$spClientId = `"$spClientId`"", "`$ServicePrincipalClientSecret = `"$ServicePrincipalClientSecret`"", "`$SubscriptionId = `"$SubscriptionId`"", "`$tenantId = `"$tenantId`"", "`$spObjectId = `"$spObjectId`"", "`$AzureLocation = `"$AzureLocation`"", "`$ResourceGroupName = `"$ResourceGroupName`"", "`$storageAccountName = `"$storageAccountName`"", "`$install_password = `"$install_password`"", ""
- packer.exe build -on-error=ask -var "client_id=$($spClientId)" -var "client_secret=$($ServicePrincipalClientSecret)" -var "subscription_id=$($SubscriptionId)" -var "tenant_id=$($tenantId)" -var "object_id=$($spObjectId)" -var "location=$($AzureLocation)" -var "resource_group=$($ResourceGroupName)" -var "storage_account=$($storageAccountName)" -var "install_password=$($InstallPassword)" $builderScriptPath
+ packer.exe build -on-error=ask `
+ -var "client_id=$($spClientId)" `
+ -var "client_secret=$($ServicePrincipalClientSecret)" `
+ -var "subscription_id=$($SubscriptionId)" `
+ -var "tenant_id=$($tenantId)" `
+ -var "object_id=$($spObjectId)" `
+ -var "location=$($AzureLocation)" `
+ -var "resource_group=$($ResourceGroupName)" `
+ -var "storage_account=$($storageAccountName)" `
+ -var "install_password=$($InstallPassword)" `
+ -var "github_feed_token=$($GithubFeedToken)" `
+ $builderScriptPath
}
diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md
index ae108c85b..d04e45c8a 100644
--- a/images/linux/Ubuntu1604-README.md
+++ b/images/linux/Ubuntu1604-README.md
@@ -1,11 +1,11 @@
-# Hosted Ubuntu 1604 Image (Ubuntu 16.04.6 LTS)
-The following software is installed on machines in the Hosted Ubuntu 1604 (20191202.1) pool
+# Ubuntu 16.04.6 LTS
+The following software is installed on machines with the 20200119.1 update.
***
- 7-Zip 9.20
-- Ansible (ansible 2.9.1)
+- Ansible (ansible 2.9.3)
- AzCopy (azcopy 7.3.0-netcore)
-- Azure CLI (azure-cli 2.0.77)
-- Azure CLI (azure-devops 0.16.0)
+- Azure CLI (azure-cli 2.0.80)
+- Azure CLI (azure-devops 0.17.0)
- Basic CLI:
- curl
- dnsutils
@@ -29,10 +29,10 @@ The following software is installed on machines in the Hosted Ubuntu 1604 (20191
- wget
- zip
- tzdata
-- AWS CLI (aws-cli/1.16.293 Python/2.7.12 Linux/4.15.0-1063-azure botocore/1.13.29)
+- AWS CLI (aws-cli/1.17.5 Python/2.7.12 Linux/4.15.0-1066-azure botocore/1.14.5)
- build-essential
-- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042730.123 (branches/release_60))
-- CMake (cmake version 3.12.4)
+- Clang 6.0 (clang version 6.0.1-svn334776-1\~exp1\~20190309042730.123 (branches/release_60))
+- CMake (cmake version 3.16.2)
- Docker Compose (docker-compose version 1.22.0, build f46880fe)
- Docker (Docker version 3.0.8, build 2355349d)
- Docker (Docker version 3.0.8, build 2355349d)
@@ -58,16 +58,19 @@ The following software is installed on machines in the Hosted Ubuntu 1604 (20191
- 2.2.102
- 2.2.101
- 2.2.100
+ - 2.1.803
- 2.1.802
- 2.1.801
- 2.1.701
- 2.1.700
+ - 2.1.608
- 2.1.607
- 2.1.606
- 2.1.605
- 2.1.604
- 2.1.603
- 2.1.602
+ - 2.1.511
- 2.1.510
- 2.1.509
- 2.1.508
@@ -84,26 +87,28 @@ The following software is installed on machines in the Hosted Ubuntu 1604 (20191
- 2.1.302
- 2.1.301
- 2.1.300
-- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.5.6)
-- Firefox (Mozilla Firefox 70.0.1)
+- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.2)
+- Firefox (Mozilla Firefox 72.0.1)
- GNU C++ 7.4.0
-- Git (2.24.0)
-- Git Large File Storage (LFS) (2.9.1)
+- Git (2.25.0)
+- Git Large File Storage (LFS) (2.9.2)
- Go 1.9 (go version go1.9.7 linux/amd64)
- Go 1.10 (go version go1.10.8 linux/amd64)
- Go 1.11 (go version go1.11.12 linux/amd64)
- Go 1.12 (go version go1.12.7 linux/amd64)
- Go 1.13 (go version go1.13 linux/amd64)
-- Google Chrome (Google Chrome 78.0.3904.108 )
-- Google Cloud SDK (272.0.0)
+- Google Chrome (Google Chrome 79.0.3945.130 )
+- Chromedriver (ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614})); Chrome Driver is available via CHROMEWEBDRIVER environment variable
+- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
+- Google Cloud SDK (276.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
compiled using version 2.2.0.1 of the Cabal library )
- Haskell Cabal (cabal-install version 2.4.1.0
compiled using version 2.4.1.0 of the Cabal library )
-- Haskell Cabal (cabal-install version 3.0.0.0
-compiled using version 3.0.0.0 of the Cabal library )
+- Haskell Cabal (cabal-install version 3.0.1.0
+compiled using version 3.0.1.0 of the Cabal library )
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.0.2)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.2.2)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.4.4)
@@ -113,62 +118,63 @@ compiled using version 3.0.0.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)
- Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2)
-- Heroku (heroku/7.35.0 linux-x64 node-v12.13.0)
-- HHVM (HipHop VM 4.33.0 (rel))
+- Heroku (heroku/7.35.1 linux-x64 node-v12.13.0)
+- HHVM (HipHop VM 4.40.0 (rel))
- ImageMagick
-- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_242")
-- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_232")
-- Azul Zulu OpenJDK (11) (openjdk version "11.0.5" 2019-10-15 LTS)
+- 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.0.1
-- Maven (Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T15:06:16Z))
+- Gradle 6.1
+- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
- Kind (v0.5.1)
-- kubectl (Client Version: v1.16.3)
+- kubectl (Client Version: v1.17.1)
- helm (Client: v2.16.1+gbbdfe5e)
-- Leiningen (Leiningen 2.9.1 on Java 1.8.0_232 OpenJDK 64-Bit Server VM)
+- 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.4.0.198 (tarball Tue Sep 24 01:20:30 UTC 2019))
+- Mono (Mono JIT compiler version 6.8.0.96 (tarball Wed Jan 15 10:09:29 UTC 2020))
- MySQL (mysql Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using EditLine wrapper)
- MySQL Server (user:root password:root)
- MS SQL Server Client Tools
-- Node.js (v12.13.1)
+- Node.js (v12.14.1)
- Grunt (grunt-cli v1.2.0)
- Gulp (CLI version: 2.2.0
Local version: Unknown)
- n (6.1.3)
- Parcel (1.12.4)
-- TypeScript (Version 3.7.2)
-- Webpack (4.41.2)
+- TypeScript (Version 3.7.5)
+- Webpack (4.41.5)
- Webpack CLI (3.3.10)
-- Yarn (1.19.2)
+- Yarn (1.21.1)
- PhantomJS (2.1.1)
-- PHP 5.6 (PHP 5.6.40-14+ubuntu16.04.1+deb.sury.org+1 (cli) )
-- PHP 7.0 (PHP 7.0.33-13+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:43:06) ( NTS ))
-- PHP 7.1 (PHP 7.1.33-2+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:41:45) ( NTS ))
-- PHP 7.2 (PHP 7.2.25-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:41:59) ( NTS ))
-- PHP 7.3 (PHP 7.3.12-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:36:56) ( NTS ))
-- Composer (Composer version 1.9.1 2019-11-01 17:20:17)
-- PHPUnit (PHPUnit 7.5.17 by Sebastian Bergmann and contributors.)
+- PHP 5.6 (PHP 5.6.40-15+ubuntu16.04.1+deb.sury.org+1 (cli) )
+- PHP 7.0 (PHP 7.0.33-14+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:55:16) ( NTS ))
+- PHP 7.1 (PHP 7.1.33-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:52:59) ( NTS ))
+- PHP 7.2 (PHP 7.2.26-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:57:40) ( NTS ))
+- PHP 7.3 (PHP 7.3.13-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:48:32) ( NTS ))
+- PHP 7.4 (PHP 7.4.1 (cli) (built: Dec 18 2019 14:44:04) ( NTS ))
+- Composer (Composer version 1.9.2 2020-01-14 16:30:31)
+- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate
- Powershell (PowerShell 6.2.3)
-- rustup (1.20.2)
-- rust (1.39.0)
-- cargo (1.39.0)
-- rustfmt (1.4.8-stable)
+- rustup (1.21.1)
+- rust (1.40.0)
+- cargo (1.40.0)
+- rustfmt (1.4.9-stable)
- clippy (0.0.212)
-- rustdoc (1.39.0)
+- rustdoc (1.40.0)
- bindgen (execute
the
0.52.0)
-- cbindgen (0.10.0)
-- sbt (1.3.4)
+- cbindgen (0.12.2)
+- sbt (1.3.7)
- Sphinx Open Source Search Server
- Subversion (svn, version 1.9.3 (r1718519))
-- Terraform (Terraform v0.12.16)
-- Vcpkg 2019.09.12-unknownhash
-- Zeit Now CLI (16.6.0)
+- Terraform (Terraform v0.12.19)
+- Vcpkg 2020.01.17-unknownhash
+- Zeit Now CLI (16.7.3)
- Google Repository 58
- Google Play services 49
- Google APIs 24
@@ -224,21 +230,23 @@ the
- Android SDK Build-Tools 20.0.0
- Android SDK Build-Tools 19.1.0
- Android SDK Build-Tools 17.0.0
-- Android NDK 20.1.5948944
+- Android NDK 21.0.6113669
- Android ConstraintLayout 1.0.2
- Android ConstraintLayout 1.0.1
- Az Module (1.0.0)
- Az Module (1.6.0)
- Az Module (2.3.2)
- Az Module (2.6.0)
+- Az Module (2.8.0)
+- Az Module (3.1.0)
- Cached container images
- - node:10 (Digest: sha256:be69034700545030c110f67ae22e0584ddd59eeb2af81e4bd7f16f3ba5fa93a6)
- - node:12 (Digest: sha256:88ee7d2a5e18d359b4b5750ecb50a9b238ab467397c306aeb9955f4f11be44ce)
- - buildpack-deps:stretch (Digest: sha256:5b4b7ee0ae71108d352f8f484b3bc113780068dad21bef7458ac3dd5211cc044)
- - debian:9 (Digest: sha256:99768ac883dc7d4f9c8f55dade9abb39afc1a3d737a8457dc5735ef868288cef)
- - debian:8 (Digest: sha256:9eaf4a70aeddf435bebc619383f3e3a178b8ad8c1f3948319cdf74b65918d156)
- - node:12-alpine (Digest: sha256:b556d8910b851c27c5c8922eeb55d94fe6dbaf878d24bf0c9a8c32ba21cd091a)
- - node:10-alpine (Digest: sha256:da8161962573bd6ab16b54a9bfa81a263458e5199074d0678d0556376b22bd22)
+ - node:10-alpine (Digest: sha256:b56110ff6dfb7ecd11f0b90d2f64fee4d8d68f6b58857ba11109bb51df4e7b6a)
+ - node:12-alpine (Digest: sha256:1dd4309479f031295f3dfb61cf3afc3efeb1a991b012e105d1a95efc038b72f6)
+ - node:10 (Digest: sha256:bdc6d102e926b70690ce0cc0b077d450b1b231524a69b874912a9b337c719e6e)
+ - node:12 (Digest: sha256:0a68eb463c4ab4db0833c786cc484ea2edfd50e73e606380e30b806aeb9eee5a)
+ - buildpack-deps:stretch (Digest: sha256:d095aae2ecefdc786823e02b2cb0abc62b432202a49abd716c12cce37aee702b)
+ - debian:9 (Digest: sha256:85c4668abb4f26e913152ba8fd04fca5f1c2345d3e2653855e6bb0acf461ed50)
+ - debian:8 (Digest: sha256:8fc7649643ca1acd3940706613ea7b170762cfce6e7955a6afb387aa40e9f9ea)
- alpine:3.10 (Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a)
- jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e)
- alpine:3.9 (Digest: sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a)
@@ -246,19 +254,21 @@ the
- alpine:3.8 (Digest: sha256:04696b491e0cc3c58a75bace8941c14c924b9f313b03ce5029ebbc040ed9dcd9)
- mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
- Python:
- - Python 2.7.16
- - Python 3.5.7
- - Python 3.6.9
- - Python 3.7.5
- - Python 3.8.0
+ - Python 2.7.17
+ - Python 3.5.9
+ - Python 3.6.10
+ - Python 3.7.6
+ - Python 3.8.1
- Ruby:
- - Ruby 2.4.6
- - Ruby 2.5.5
- - Ruby 2.6.3
+ - Ruby 2.4.9
+ - Ruby 2.5.7
+ - Ruby 2.6.5
+ - Ruby 2.7.0
+- PyPy:
+ - PyPy 2.7.13
+ - PyPy 3.6.9
- Python (Python 2.7.12)
- pip (pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7))
- Python3 (Python 3.5.2)
- pip3 (pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5))
-- PyPy2 ([PyPy 7.1.0 with GCC 6.2.0 20160901])
-- PyPy3 ([PyPy 7.2.0 with GCC 6.2.0 20160901])
- Boost C++ Libraries 1.69.0
diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md
index fb3065162..2286aded6 100644
--- a/images/linux/Ubuntu1804-README.md
+++ b/images/linux/Ubuntu1804-README.md
@@ -1,11 +1,11 @@
-# Hosted Ubuntu 1804 Image (Ubuntu 18.04.3 LTS)
-The following software is installed on machines in the Hosted Ubuntu 1804 (v20191202.1) pool
+# Ubuntu 18.04.3 LTS
+The following software is installed on machines with the 20200119.1 update.
***
- 7-Zip 16.02
-- Ansible (ansible 2.9.1)
+- Ansible (ansible 2.9.3)
- AzCopy (azcopy 7.3.0-netcore)
-- Azure CLI (azure-cli 2.0.77)
-- Azure CLI (azure-devops 0.16.0)
+- Azure CLI (azure-cli 2.0.80)
+- Azure CLI (azure-devops 0.17.0)
- Basic CLI:
- curl
- dnsutils
@@ -29,14 +29,15 @@ The following software is installed on machines in the Hosted Ubuntu 1804 (v2019
- wget
- zip
- tzdata
-- AWS CLI (aws-cli/1.16.293 Python/2.7.15+ Linux/5.0.0-1025-azure botocore/1.13.29)
+- AWS CLI (aws-cli/1.17.5 Python/2.7.17 Linux/5.0.0-1027-azure botocore/1.14.5)
- build-essential
-- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042703.125 (branches/release_60))
-- CMake (cmake version 3.12.4)
+- Clang 6.0 (clang version 6.0.1-svn334776-1\~exp1\~20190309042703.125 (branches/release_60))
+- CMake (cmake version 3.16.2)
- Docker Compose (docker-compose version 1.22.0, build f46880fe)
- Docker (Docker version 3.0.8, build 2355349d)
- Docker (Docker version 3.0.8, build 2355349d)
- .NET Core SDK:
+ - 3.0.102
- 3.0.101
- 3.0.100
- 2.2.402
@@ -60,16 +61,19 @@ The following software is installed on machines in the Hosted Ubuntu 1804 (v2019
- 2.2.102
- 2.2.101
- 2.2.100
+ - 2.1.803
- 2.1.802
- 2.1.801
- 2.1.701
- 2.1.700
+ - 2.1.608
- 2.1.607
- 2.1.606
- 2.1.605
- 2.1.604
- 2.1.603
- 2.1.602
+ - 2.1.511
- 2.1.510
- 2.1.509
- 2.1.508
@@ -86,24 +90,26 @@ The following software is installed on machines in the Hosted Ubuntu 1804 (v2019
- 2.1.302
- 2.1.301
- 2.1.300
-- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.5.6)
-- Firefox (Mozilla Firefox 70.0.1)
+- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.2)
+- Firefox (Mozilla Firefox 72.0.1)
- GNU C++ 7.4.0
-- Git (2.24.0)
-- Git Large File Storage (LFS) (2.9.1)
+- Git (2.25.0)
+- Git Large File Storage (LFS) (2.9.2)
- 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 78.0.3904.108 )
-- Google Cloud SDK (272.0.0)
+- Google Chrome (Google Chrome 79.0.3945.130 )
+- Chromedriver (ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614})); Chrome Driver is available via CHROMEWEBDRIVER environment variable
+- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
+- Google Cloud SDK (276.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
compiled using version 2.2.0.1 of the Cabal library )
- Haskell Cabal (cabal-install version 2.4.1.0
compiled using version 2.4.1.0 of the Cabal library )
-- Haskell Cabal (cabal-install version 3.0.0.0
-compiled using version 3.0.0.0 of the Cabal library )
+- Haskell Cabal (cabal-install version 3.0.1.0
+compiled using version 3.0.1.0 of the Cabal library )
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.0.2)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.2.2)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.4.4)
@@ -113,59 +119,61 @@ compiled using version 3.0.0.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)
- Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2)
-- Heroku (heroku/7.35.0 linux-x64 node-v12.13.0)
-- HHVM (HipHop VM 4.33.0 (rel))
+- Heroku (heroku/7.35.1 linux-x64 node-v12.13.0)
+- HHVM (HipHop VM 4.40.0 (rel))
- ImageMagick
-- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_242")
-- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_232")
-- Azul Zulu OpenJDK (11) (openjdk version "11.0.5" 2019-10-15 LTS)
+- 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 5.6.2
-- Maven (Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T19:00:29Z))
-- kubectl (Client Version: v1.16.0)
-- helm (Client: v2.14.3+g0e7f3b6)
-- Leiningen (Leiningen 2.9.1 on Java 1.8.0_222 OpenJDK 64-Bit Server VM)
+- Gradle 6.1
+- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
+- Kind (v0.5.1)
+- kubectl (Client Version: v1.17.1)
+- helm (Client: v2.16.1+gbbdfe5e)
+- 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.4.0.198 (tarball Tue Sep 24 01:21:28 UTC 2019))
+- Mono (Mono JIT compiler version 6.8.0.96 (tarball Wed Jan 15 10:08:18 UTC 2020))
- MySQL (mysql Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using EditLine wrapper)
- MySQL Server (user:root password:root)
- MS SQL Server Client Tools
-- Node.js (v12.13.1)
+- Node.js (v12.14.1)
- Grunt (grunt-cli v1.2.0)
- Gulp (CLI version: 2.2.0
Local version: Unknown)
- n (6.1.3)
- Parcel (1.12.4)
-- TypeScript (Version 3.7.2)
-- Webpack (4.41.2)
+- TypeScript (Version 3.7.5)
+- Webpack (4.41.5)
- Webpack CLI (3.3.10)
-- Yarn (1.19.2)
+- Yarn (1.21.1)
- PhantomJS (2.1.1)
-- PHP 7.1 (PHP 7.1.33-2+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:42:07) ( NTS ))
-- PHP 7.2 (PHP 7.2.25-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:42:26) ( NTS ))
-- PHP 7.3 (PHP 7.3.12-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:37:16) ( NTS ))
-- Composer (Composer version 1.9.1 2019-11-01 17:20:17)
-- PHPUnit (PHPUnit 7.5.17 by Sebastian Bergmann and contributors.)
+- PHP 7.1 (PHP 7.1.33-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:53:18) ( NTS ))
+- PHP 7.2 (PHP 7.2.26-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:58:00) ( NTS ))
+- PHP 7.3 (PHP 7.3.13-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:48:49) ( NTS ))
+- PHP 7.4 (PHP 7.4.1 (cli) (built: Dec 18 2019 14:44:22) ( NTS ))
+- Composer (Composer version 1.9.2 2020-01-14 16:30:31)
+- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate
- Powershell (PowerShell 6.2.3)
-- rustup (1.20.2)
-- rust (1.39.0)
-- cargo (1.39.0)
-- rustfmt (1.4.8-stable)
+- rustup (1.21.1)
+- rust (1.40.0)
+- cargo (1.40.0)
+- rustfmt (1.4.9-stable)
- clippy (0.0.212)
-- rustdoc (1.39.0)
+- rustdoc (1.40.0)
- bindgen (execute
the
0.52.0)
-- cbindgen (0.10.0)
-- sbt (1.3.4)
+- cbindgen (0.12.2)
+- sbt (1.3.7)
- Sphinx Open Source Search Server
- Subversion (svn, version 1.9.7 (r1800392))
-- Terraform (Terraform v0.12.16)
-- Vcpkg 2019.09.12-unknownhash
-- Zeit Now CLI (16.6.0)
+- Terraform (Terraform v0.12.19)
+- Vcpkg 2020.01.17-unknownhash
+- Zeit Now CLI (16.7.3)
- Google Repository 58
- Google Play services 49
- Google APIs 24
@@ -217,19 +225,21 @@ the
- Android SDK Build-Tools 20.0.0
- Android SDK Build-Tools 19.1.0
- Android SDK Build-Tools 17.0.0
-- Android NDK 20.1.5948944
+- Android NDK 21.0.6113669
- Az Module (1.0.0)
- Az Module (1.6.0)
- Az Module (2.3.2)
- Az Module (2.6.0)
+- Az Module (2.8.0)
+- Az Module (3.1.0)
- Cached container images
- - node:10 (Digest: sha256:be69034700545030c110f67ae22e0584ddd59eeb2af81e4bd7f16f3ba5fa93a6)
- - node:12 (Digest: sha256:88ee7d2a5e18d359b4b5750ecb50a9b238ab467397c306aeb9955f4f11be44ce)
- - buildpack-deps:stretch (Digest: sha256:5b4b7ee0ae71108d352f8f484b3bc113780068dad21bef7458ac3dd5211cc044)
- - debian:9 (Digest: sha256:99768ac883dc7d4f9c8f55dade9abb39afc1a3d737a8457dc5735ef868288cef)
- - debian:8 (Digest: sha256:9eaf4a70aeddf435bebc619383f3e3a178b8ad8c1f3948319cdf74b65918d156)
- - node:12-alpine (Digest: sha256:b556d8910b851c27c5c8922eeb55d94fe6dbaf878d24bf0c9a8c32ba21cd091a)
- - node:10-alpine (Digest: sha256:da8161962573bd6ab16b54a9bfa81a263458e5199074d0678d0556376b22bd22)
+ - node:10-alpine (Digest: sha256:b56110ff6dfb7ecd11f0b90d2f64fee4d8d68f6b58857ba11109bb51df4e7b6a)
+ - node:12-alpine (Digest: sha256:1dd4309479f031295f3dfb61cf3afc3efeb1a991b012e105d1a95efc038b72f6)
+ - node:10 (Digest: sha256:bdc6d102e926b70690ce0cc0b077d450b1b231524a69b874912a9b337c719e6e)
+ - node:12 (Digest: sha256:0a68eb463c4ab4db0833c786cc484ea2edfd50e73e606380e30b806aeb9eee5a)
+ - buildpack-deps:stretch (Digest: sha256:d095aae2ecefdc786823e02b2cb0abc62b432202a49abd716c12cce37aee702b)
+ - debian:9 (Digest: sha256:85c4668abb4f26e913152ba8fd04fca5f1c2345d3e2653855e6bb0acf461ed50)
+ - debian:8 (Digest: sha256:8fc7649643ca1acd3940706613ea7b170762cfce6e7955a6afb387aa40e9f9ea)
- alpine:3.10 (Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a)
- jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e)
- alpine:3.9 (Digest: sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a)
@@ -237,19 +247,21 @@ the
- alpine:3.8 (Digest: sha256:04696b491e0cc3c58a75bace8941c14c924b9f313b03ce5029ebbc040ed9dcd9)
- mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
- Python:
- - Python 2.7.16
- - Python 3.5.7
- - Python 3.6.9
- - Python 3.7.5
- - Python 3.8.0
+ - Python 2.7.17
+ - Python 3.5.9
+ - Python 3.6.10
+ - Python 3.7.6
+ - Python 3.8.1
- Ruby:
- - Ruby 2.4.6
- - Ruby 2.5.5
- - Ruby 2.6.3
-- Python (Python 2.7.15+)
+ - Ruby 2.4.9
+ - Ruby 2.5.7
+ - Ruby 2.6.5
+ - Ruby 2.7.0
+- PyPy:
+ - PyPy 2.7.13
+ - PyPy 3.6.9
+- Python (Python 2.7.17)
- pip (pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7))
- Python3 (Python 3.6.9)
- pip3 (pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6))
-- PyPy2 ([PyPy 7.1.0 with GCC 6.2.0 20160901])
-- PyPy3 ([PyPy 7.2.0 with GCC 6.2.0 20160901])
- Boost C++ Libraries 1.69.0
diff --git a/images/linux/config/ubuntu1604.conf b/images/linux/config/ubuntu1604.conf
index e9fbaed22..d2ac14231 100644
--- a/images/linux/config/ubuntu1604.conf
+++ b/images/linux/config/ubuntu1604.conf
@@ -1,2 +1,2 @@
-# Name of the hosted pool this image will support
-POOL_NAME="Hosted Ubuntu 1604"
+# Name of the pool supported by this image
+POOL_NAME="Ubuntu 1604"
diff --git a/images/linux/config/ubuntu1804.conf b/images/linux/config/ubuntu1804.conf
index 375a9382b..bca2da8a0 100644
--- a/images/linux/config/ubuntu1804.conf
+++ b/images/linux/config/ubuntu1804.conf
@@ -1,2 +1,2 @@
-# Name of the hosted pool this image will support
-POOL_NAME="Hosted Ubuntu 1804"
+# Name of pool supported by this image
+POOL_NAME="Ubuntu 1804"
diff --git a/images/linux/scripts/installers/1604/basic.sh b/images/linux/scripts/installers/1604/basic.sh
index cce26c99e..9248e0c0b 100644
--- a/images/linux/scripts/installers/1604/basic.sh
+++ b/images/linux/scripts/installers/1604/basic.sh
@@ -32,6 +32,7 @@ apt-fast install -y --no-install-recommends \
telnet \
time \
unzip \
+ upx \
wget \
zip \
tzdata
@@ -55,7 +56,7 @@ apt-fast install -y --no-install-recommends \
# Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work"
-for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet time unzip wget zip; do
+for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet time unzip upx wget zip; do
if ! command -v $cmd; then
echo "$cmd was not installed"
exit 1
@@ -85,6 +86,7 @@ DocumentInstalledItemIndent "sudo"
DocumentInstalledItemIndent "telnet"
DocumentInstalledItemIndent "time"
DocumentInstalledItemIndent "unzip"
+DocumentInstalledItemIndent "upx"
DocumentInstalledItemIndent "wget"
DocumentInstalledItemIndent "zip"
DocumentInstalledItemIndent "tzdata"
diff --git a/images/linux/scripts/installers/1604/dotnetcore-sdk.sh b/images/linux/scripts/installers/1604/dotnetcore-sdk.sh
index b2f1bc0d3..e772d924c 100644
--- a/images/linux/scripts/installers/1604/dotnetcore-sdk.sh
+++ b/images/linux/scripts/installers/1604/dotnetcore-sdk.sh
@@ -7,7 +7,7 @@
source $HELPER_SCRIPTS/apt.sh
source $HELPER_SCRIPTS/document.sh
-LATEST_DOTNET_PACKAGE=dotnet-sdk-3.0
+LATEST_DOTNET_PACKAGES=("dotnet-sdk-3.0" "dotnet-sdk-3.1")
LSB_RELEASE=$(lsb_release -rs)
@@ -30,21 +30,23 @@ mksamples()
set -e
-echo "Determing if .NET Core ($LATEST_DOTNET_PACKAGE) is installed"
-if ! IsInstalled $LATEST_DOTNET_PACKAGE; then
- echo "Could not find .NET Core ($LATEST_DOTNET_PACKAGE), installing..."
- wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
- dpkg -i packages-microsoft-prod.deb
- apt-get update
- apt-get install apt-transport-https
- apt-get update
- apt-get install $LATEST_DOTNET_PACKAGE
-else
- echo ".NET Core ($LATEST_DOTNET_PACKAGE) is already installed"
-fi
+for latest_package in ${LATEST_DOTNET_PACKAGES[@]}; do
+ echo "Determing if .NET Core ($latest_package) is installed"
+ if ! IsInstalled $latest_package; then
+ echo "Could not find .NET Core ($latest_package), installing..."
+ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
+ mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
+ sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic main" > /etc/apt/sources.list.d/dotnetdev.list'
+ apt-get install apt-transport-https
+ apt-get update
+ apt-get install $latest_package -y
+ else
+ echo ".NET Core ($latest_package) is already installed"
+ fi
+done
# Get list of all released SDKs from channels which are not end-of-life or preview
-release_urls=("https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.2/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json")
+release_urls=("https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.2/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.0/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.1/releases.json")
sdks=()
for release_url in ${release_urls[@]}; do
echo "${release_url}"
diff --git a/images/linux/scripts/installers/1604/hosted-tool-cache.sh b/images/linux/scripts/installers/1604/hosted-tool-cache.sh
deleted file mode 100644
index c68f9747e..000000000
--- a/images/linux/scripts/installers/1604/hosted-tool-cache.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash
-################################################################################
-## File: hosted-tool-cache.sh
-## Desc: Downloads and installs hosted tools cache
-################################################################################
-
-# Source the helpers for use with the script
-source $HELPER_SCRIPTS/document.sh
-
-# Fail out if any setups fail
-set -e
-
-# Download hosted tool cache
-AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
-echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment
-azcopy --recursive \
- --source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/linux \
- --destination $AGENT_TOOLSDIRECTORY
-
-# Install tools from hosted tool cache
-original_directory=$PWD
-setups=$(find $AGENT_TOOLSDIRECTORY -name setup.sh)
-for setup in $setups; do
- chmod +x $setup;
- cd $(dirname $setup);
- ./$(basename $setup);
- cd $original_directory;
-done;
-
-DocumentInstalledItem "Python:"
-pythons=$(ls $AGENT_TOOLSDIRECTORY/Python)
-for python in $pythons; do
- DocumentInstalledItemIndent "Python $python"
-done;
-
-# PyPy is also configured using the setup-python action
-pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy)
-for pypy in $pypys; do
- DocumentInstalledItemIndent "PyPy $pypy"
- # Add symlinks for pypy2 and pypy3 to usr/local/bin, there should only be 2 versions of PyPy in the tools cache that is downloaded
- if [ ${pypy:0:1} -eq "3" ] ; then
- # add pypy 3.X to PATH
- ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy3 /usr/local/bin/pypy3
- else
- # add pypy 2.X to PATH
- ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy /usr/local/bin/pypy
- fi
-done;
-
-DocumentInstalledItem "Ruby:"
-rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby)
-for ruby in $rubys; do
- DocumentInstalledItemIndent "Ruby $ruby"
-done;
\ No newline at end of file
diff --git a/images/linux/scripts/installers/1604/preparemetadata.sh b/images/linux/scripts/installers/1604/preparemetadata.sh
index 5b4c177e9..45cfcabfa 100644
--- a/images/linux/scripts/installers/1604/preparemetadata.sh
+++ b/images/linux/scripts/installers/1604/preparemetadata.sh
@@ -7,6 +7,6 @@
source $HELPER_SCRIPTS/document.sh
-AddTitle "Hosted Ubuntu 1604 Image ($(lsb_release -ds))"
-WriteItem "The following software is installed on machines in the Hosted Ubuntu 1604 ($IMAGE_VERSION) pool"
+AddTitle "$(lsb_release -ds)"
+WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
WriteItem "***"
diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh
index 5516cdea3..d9c57b275 100644
--- a/images/linux/scripts/installers/1804/basic.sh
+++ b/images/linux/scripts/installers/1804/basic.sh
@@ -10,9 +10,6 @@ source $HELPER_SCRIPTS/apt.sh
set -e
-echo "Install curl"
-apt-get install -y --no-install-recommends curl
-
echo "Install dnsutils"
apt-get install -y --no-install-recommends dnsutils
@@ -64,6 +61,9 @@ apt-get install -y --no-install-recommends time
echo "Install unzip"
apt-get install -y --no-install-recommends unzip
+echo "Install upx"
+apt-get install -y --no-install-recommends upx
+
echo "Install wget"
apt-get install -y --no-install-recommends wget
@@ -153,6 +153,7 @@ DocumentInstalledItemIndent "sudo"
DocumentInstalledItemIndent "telnet"
DocumentInstalledItemIndent "time"
DocumentInstalledItemIndent "unzip"
+DocumentInstalledItemIndent "upx"
DocumentInstalledItemIndent "wget"
DocumentInstalledItemIndent "zip"
DocumentInstalledItemIndent "tzdata"
diff --git a/images/linux/scripts/installers/1804/dotnetcore-sdk.sh b/images/linux/scripts/installers/1804/dotnetcore-sdk.sh
index 16f65edf7..e772d924c 100644
--- a/images/linux/scripts/installers/1804/dotnetcore-sdk.sh
+++ b/images/linux/scripts/installers/1804/dotnetcore-sdk.sh
@@ -7,7 +7,7 @@
source $HELPER_SCRIPTS/apt.sh
source $HELPER_SCRIPTS/document.sh
-LATEST_DOTNET_PACKAGE=dotnet-sdk-3.0
+LATEST_DOTNET_PACKAGES=("dotnet-sdk-3.0" "dotnet-sdk-3.1")
LSB_RELEASE=$(lsb_release -rs)
@@ -30,21 +30,23 @@ mksamples()
set -e
-echo "Determing if .NET Core ($LATEST_DOTNET_PACKAGE) is installed"
-if ! IsInstalled $LATEST_DOTNET_PACKAGE; then
- echo "Could not find .NET Core ($LATEST_DOTNET_PACKAGE), installing..."
- curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
- mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
- sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic main" > /etc/apt/sources.list.d/dotnetdev.list'
- apt-get install apt-transport-https
- apt-get update
- apt-get install $LATEST_DOTNET_PACKAGE -y
-else
- echo ".NET Core ($LATEST_DOTNET_PACKAGE) is already installed"
-fi
+for latest_package in ${LATEST_DOTNET_PACKAGES[@]}; do
+ echo "Determing if .NET Core ($latest_package) is installed"
+ if ! IsInstalled $latest_package; then
+ echo "Could not find .NET Core ($latest_package), installing..."
+ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
+ mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
+ sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic main" > /etc/apt/sources.list.d/dotnetdev.list'
+ apt-get install apt-transport-https
+ apt-get update
+ apt-get install $latest_package -y
+ else
+ echo ".NET Core ($latest_package) is already installed"
+ fi
+done
# Get list of all released SDKs from channels which are not end-of-life or preview
-release_urls=("https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.2/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.0/releases.json")
+release_urls=("https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.2/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.0/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.1/releases.json")
sdks=()
for release_url in ${release_urls[@]}; do
echo "${release_url}"
diff --git a/images/linux/scripts/installers/1804/hosted-tool-cache.sh b/images/linux/scripts/installers/1804/hosted-tool-cache.sh
deleted file mode 100644
index 10180a240..000000000
--- a/images/linux/scripts/installers/1804/hosted-tool-cache.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash
-################################################################################
-## File: hosted-tool-cache.sh
-## Desc: Downloads and installs hosted tools cache
-################################################################################
-
-# Source the helpers for use with the script
-source $HELPER_SCRIPTS/document.sh
-
-# Fail out if any setups fail
-set -e
-
-# Download hosted tool cache
-AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
-echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment
-azcopy --recursive \
- --source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/ubuntu-1804 \
- --destination $AGENT_TOOLSDIRECTORY
-
-# Install tools from hosted tool cache
-original_directory=$PWD
-setups=$(find $AGENT_TOOLSDIRECTORY -name setup.sh)
-for setup in $setups; do
- chmod +x $setup;
- cd $(dirname $setup);
- ./$(basename $setup);
- cd $original_directory;
-done;
-
-DocumentInstalledItem "Python:"
-pythons=$(ls $AGENT_TOOLSDIRECTORY/Python)
-for python in $pythons; do
- DocumentInstalledItemIndent "Python $python"
-done;
-
-# PyPy is also configured using the setup-python action
-pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy)
-for pypy in $pypys; do
- DocumentInstalledItemIndent "PyPy $pypy"
- # Add symlinks for pypy2 and pypy3 to usr/local/bin, there should only be 2 versions of PyPy in the tools cache that is downloaded
- if [ ${pypy:0:1} -eq "3" ] ; then
- # add pypy 3.X to PATH
- ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy3 /usr/local/bin/pypy3
- else
- # add pypy 2.X to PATH
- ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy /usr/local/bin/pypy
- fi
-done;
-
-DocumentInstalledItem "Ruby:"
-rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby)
-for ruby in $rubys; do
- DocumentInstalledItemIndent "Ruby $ruby"
-done;
\ No newline at end of file
diff --git a/images/linux/scripts/installers/1804/preparemetadata.sh b/images/linux/scripts/installers/1804/preparemetadata.sh
index 61988142c..45cfcabfa 100644
--- a/images/linux/scripts/installers/1804/preparemetadata.sh
+++ b/images/linux/scripts/installers/1804/preparemetadata.sh
@@ -7,6 +7,6 @@
source $HELPER_SCRIPTS/document.sh
-AddTitle "Hosted Ubuntu 1804 Image ($(lsb_release -ds))"
-WriteItem "The following software is installed on machines in the Hosted Ubuntu 1804 (v$IMAGE_VERSION) pool"
+AddTitle "$(lsb_release -ds)"
+WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
WriteItem "***"
diff --git a/images/linux/scripts/installers/boost.sh b/images/linux/scripts/installers/boost.sh
index 3b7d6b043..673b1f61e 100644
--- a/images/linux/scripts/installers/boost.sh
+++ b/images/linux/scripts/installers/boost.sh
@@ -7,7 +7,6 @@
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
-BOOST_ZIP_PATH=/opt/hostedtoolcache/Boost
BOOST_LIB=/usr/local/share/boost
# Install Boost
@@ -15,9 +14,6 @@ for BOOST_VERSION in ${BOOST_VERSIONS//,/ }
do
BOOST_SYMLINK_VER=`echo "${BOOST_VERSION//[.]/_}"`
BOOST_ROOT="BOOST_ROOT_$BOOST_SYMLINK_VER"
- BOOST_ZIP="boost_`echo $BOOST_VERSION`_gcc.zip"
-
- unzip $BOOST_ZIP_PATH/$BOOST_ZIP -d $BOOST_LIB
echo "$BOOST_ROOT=$BOOST_LIB/$BOOST_VERSION" | tee -a /etc/environment
if [[ $BOOST_VERSION == $BOOST_DEFAULT ]]; then
@@ -26,6 +22,3 @@ do
DocumentInstalledItem "Boost C++ Libraries $BOOST_VERSION"
done
-
-# Deleting archives with Boost Libraries
-rm -rf $BOOST_ZIP_PATH
diff --git a/images/linux/scripts/installers/clang.sh b/images/linux/scripts/installers/clang.sh
index 6d34c9216..b8e5fa402 100644
--- a/images/linux/scripts/installers/clang.sh
+++ b/images/linux/scripts/installers/clang.sh
@@ -28,4 +28,4 @@ done
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
-DocumentInstalledItem "Clang 6.0 ($(clang-6.0 --version | head -n 1))"
+DocumentInstalledItem "Clang 6.0 ($(clang-6.0 --version | head -n 1 | sed 's/~/\\~/g'))"
diff --git a/images/linux/scripts/installers/cmake.sh b/images/linux/scripts/installers/cmake.sh
index 32e98af7b..5800ce238 100644
--- a/images/linux/scripts/installers/cmake.sh
+++ b/images/linux/scripts/installers/cmake.sh
@@ -12,7 +12,7 @@ echo "Checking to see if the installer script has already been run"
if command -v cmake; then
echo "Example variable already set to $EXAMPLE_VAR"
else
- curl -sL https://cmake.org/files/v3.12/cmake-3.12.4-Linux-x86_64.sh -o cmakeinstall.sh \
+ curl -sL https://cmake.org/files/v3.16/cmake-3.16.2-Linux-x86_64.sh -o cmakeinstall.sh \
&& chmod +x cmakeinstall.sh \
&& ./cmakeinstall.sh --prefix=/usr/local --exclude-subdir \
&& rm cmakeinstall.sh
diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh
index 5fa862b74..20396e2a2 100644
--- a/images/linux/scripts/installers/google-chrome.sh
+++ b/images/linux/scripts/installers/google-chrome.sh
@@ -1,7 +1,7 @@
#!/bin/bash
################################################################################
## File: google-chrome.sh
-## Desc: Installs google-chrome
+## Desc: Installs google-chrome, chromedriver and selenium server
################################################################################
# Source the helpers for use with the script
@@ -25,3 +25,55 @@ fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Google Chrome ($(google-chrome --version))"
+
+CHROME_VERSION=$(google-chrome --product-version)
+CHROME_VERSION=${CHROME_VERSION%.*}
+
+# Determine latest release of chromedriver
+# Compatibility of Google Chrome and Chromedriver: https://sites.google.com/a/chromium.org/chromedriver/downloads/version-selection
+LATEST_CHROMEDRIVER_VERSION=$(curl "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION")
+
+# Download and unpack latest release of chromedriver
+echo "Downloading chromedriver v$LATEST_CHROMEDRIVER_VERSION..."
+wget "https://chromedriver.storage.googleapis.com/$LATEST_CHROMEDRIVER_VERSION/chromedriver_linux64.zip"
+unzip chromedriver_linux64.zip
+rm chromedriver_linux64.zip
+
+CHROMEDRIVER_BIN="/usr/bin/chromedriver"
+mv "chromedriver" $CHROMEDRIVER_BIN
+chown root:root $CHROMEDRIVER_BIN
+chmod +x $CHROMEDRIVER_BIN
+echo "CHROMEWEBDRIVER=$CHROMEDRIVER_BIN" | tee -a /etc/environment
+
+# Run tests to determine that the chromedriver installed as expected
+echo "Testing to make sure that script performed as expected, and basic scenarios work"
+if ! command -v chromedriver; then
+ echo "chromedriver was not installed"
+ exit 1
+fi
+
+echo "Lastly, documenting what we added to the metadata file"
+DocumentInstalledItem "Chromedriver ($(chromedriver --version)); Chrome Driver is available via CHROMEWEBDRIVER environment variable"
+
+# Determine latest selenium standalone server version
+SELENIUM_LATEST_VERSION_URL=https://api.github.com/repos/SeleniumHQ/selenium/releases/latest
+SELENIUM_VERSION=$(curl $SELENIUM_LATEST_VERSION_URL | jq '.name' | tr -d '"' | cut -d ' ' -f 2)
+SELENIUM_VERSION_MAJOR_MINOR=$(echo $SELENIUM_VERSION | cut -d '.' -f 1,2)
+
+# Download selenium standalone server
+echo "Downloading selenium-server-standalone v$SELENIUM_VERSION..."
+SELENIUM_JAR_NAME="selenium-server-standalone-$SELENIUM_VERSION.jar"
+wget https://selenium-release.storage.googleapis.com/$SELENIUM_VERSION_MAJOR_MINOR/$SELENIUM_JAR_NAME
+
+echo "Testing to make sure that script performed as expected, and basic scenarios work"
+if [ ! -f "$SELENIUM_JAR_NAME" ]; then
+ echo "Selenium server was not installed"
+ exit 1
+fi
+
+SELENIUM_JAR_PATH="/usr/share/java/selenium-server-standalone.jar"
+mv $SELENIUM_JAR_NAME $SELENIUM_JAR_PATH
+echo "SELENIUM_JAR_PATH=$SELENIUM_JAR_PATH" | tee -a /etc/environment
+
+echo "Lastly, documenting what we added to the metadata file"
+DocumentInstalledItem "Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)"
diff --git a/images/linux/scripts/installers/hosted-tool-cache.sh b/images/linux/scripts/installers/hosted-tool-cache.sh
new file mode 100644
index 000000000..f9e5b918a
--- /dev/null
+++ b/images/linux/scripts/installers/hosted-tool-cache.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+################################################################################
+## File: hosted-tool-cache.sh
+## Desc: Downloads and installs hosted tools cache
+################################################################################
+
+# Source the helpers for use with the script
+source $HELPER_SCRIPTS/document.sh
+
+# Fail out if any setups fail
+set -e
+
+TOOLCACHE_REGISTRY="npm.pkg.github.com"
+
+AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
+mkdir $AGENT_TOOLSDIRECTORY
+echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment
+chmod -R 777 $AGENT_TOOLSDIRECTORY
+
+echo "Configure npm to use github package registry for '@actions' scope"
+npm config set @actions:registry "https://${TOOLCACHE_REGISTRY}"
+
+# Execute in /imagegeneration/installers folder to avoid node_modules creation in $HOME
+pushd $INSTALLER_SCRIPT_FOLDER
+
+# GitHub Package Registry doesn't support downloading public packages without auth so we have to authorize
+echo "Configure auth for github package registry"
+echo "//${TOOLCACHE_REGISTRY}/:_authToken=${GITHUB_FEED_TOKEN}" > ".npmrc"
+
+echo "Installing npm-toolcache..."
+TOOLSET_PATH="$INSTALLER_SCRIPT_FOLDER/toolcache.json"
+
+PACKAGE_LIST=($(jq -r 'keys | .[]' $TOOLSET_PATH))
+
+for PACKAGE_NAME in ${PACKAGE_LIST[@]}; do
+ PACKAGE_VERSIONS=($(jq -r ".[\"$PACKAGE_NAME\"] | .[]" $TOOLSET_PATH))
+ for PACKAGE_VERSION in ${PACKAGE_VERSIONS[@]}; do
+ echo "Install ${PACKAGE_NAME}@${PACKAGE_VERSION}"
+ npm install ${PACKAGE_NAME}@${PACKAGE_VERSION}
+
+ exit_code=$?
+ if [ $exit_code -ne 0 ]; then
+ echo "${PACKAGE_NAME}@${PACKAGE_VERSION} installation failure; Error:${exit_code}"
+
+ exit 1
+ fi
+ done;
+done;
+
+popd
+
+DocumentInstalledItem "Python:"
+pythons=$(ls $AGENT_TOOLSDIRECTORY/Python)
+for python in $pythons; do
+ DocumentInstalledItemIndent "Python $python"
+done;
+
+DocumentInstalledItem "Ruby:"
+rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby)
+for ruby in $rubys; do
+ DocumentInstalledItemIndent "Ruby $ruby"
+done;
+
+DocumentInstalledItem "PyPy:"
+pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy)
+for pypy in $pypys; do
+ DocumentInstalledItemIndent "PyPy $pypy"
+done;
\ No newline at end of file
diff --git a/images/linux/scripts/installers/kind.sh b/images/linux/scripts/installers/kind.sh
index 3202f8b6c..59696906a 100644
--- a/images/linux/scripts/installers/kind.sh
+++ b/images/linux/scripts/installers/kind.sh
@@ -9,7 +9,7 @@ source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/apt.sh
# Install KIND
-KIND_VERSION="v0.5.1"
+KIND_VERSION="v0.7.0"
curl -L -o /usr/local/bin/kind "https://github.com/kubernetes-sigs/kind/releases/download/${KIND_VERSION}/kind-linux-amd64"
chmod +x /usr/local/bin/kind
diff --git a/images/linux/scripts/installers/mysql.sh b/images/linux/scripts/installers/mysql.sh
index 7750fd3d9..63474e39f 100644
--- a/images/linux/scripts/installers/mysql.sh
+++ b/images/linux/scripts/installers/mysql.sh
@@ -12,6 +12,9 @@ export ACCEPT_EULA=Y
# Install MySQL Client
apt-get install mysql-client -y
+# InstallMySQL database development files
+apt-get install libmysqlclient-dev -y
+
# Install MySQL Server
MYSQL_ROOT_PASSWORD=root
echo "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD" | debconf-set-selections
diff --git a/images/linux/scripts/installers/ruby.sh b/images/linux/scripts/installers/ruby.sh
index aa2933ffb..f0b6ffec3 100644
--- a/images/linux/scripts/installers/ruby.sh
+++ b/images/linux/scripts/installers/ruby.sh
@@ -7,5 +7,11 @@
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
+sudo apt-get install ruby-full
+sudo gem update --system
+
# Install Ruby requirements
apt-get install -y libz-dev openssl libssl-dev
+
+DocumentInstalledItem "ruby ($(ruby --version 2>&1 | cut -d ' ' -f 2))"
+DocumentInstalledItem "gem ($(gem -v 2>&1 | tail -n 1))"
\ No newline at end of file
diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh
index af2dd359f..2601db4b4 100644
--- a/images/linux/scripts/installers/test-toolcache.sh
+++ b/images/linux/scripts/installers/test-toolcache.sh
@@ -6,65 +6,69 @@
# Must be procecessed after tool cache setup(hosted-tool-cache.sh).
+Test_Hostedtoolcache_Tool() {
+ TOOL_NAME=$1
+ TOOL_EXEC_TEST=$2
+
+ if [ -d "$AGENT_TOOLSDIRECTORY/$TOOL_NAME" ]; then
+ cd $AGENT_TOOLSDIRECTORY/$TOOL_NAME
+
+ tool_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||"))
+
+ echo "--------------------------------------------"
+ echo "$TOOL_NAME versions folders: ${tool_dirs[@]}"
+ echo "--------------------------------------------"
+
+ if [ -n "$tool_dirs" ]; then
+ tool_key=$(echo $TOOL_NAME | tr "[:upper:]" "[:lower:]")
+ package_versions=($(jq -r ".[\"${TOOLCACHE_KEY_VALUE[$tool_key]}\"] | .[]" "$INSTALLER_SCRIPT_FOLDER/toolcache.json"))
+
+ for tool_version in ${package_versions[@]}
+ do
+ version_dir=$(find . -name "$tool_version.*" -print -quit)
+
+ echo "Test $AGENT_TOOLSDIRECTORY/$TOOL_NAME/$version_dir:"
+
+ actual_version=$(eval $AGENT_TOOLSDIRECTORY/$TOOL_NAME/$version_dir/$TOOL_EXEC_TEST)
+
+ if [ "$actual_version" = "$tool_version" ]; then
+ echo "Passed!"
+ else
+ echo "Expected: $tool_version; Actual: $actual_version"
+
+ exit 1
+ fi
+ done;
+ else
+ echo "$AGENT_TOOLSDIRECTORY/$tool_version does not include any folders"
+
+ exit 1
+ fi
+ else
+ echo "$AGENT_TOOLSDIRECTORY/$tool_version does not exist"
+
+ exit 1
+ fi
+}
+
# Fail out if any tests fail
set -e
+# define dictionary for key_alias and its values
+declare -A TOOLCACHE_KEY_VALUE
+
+package_list=($(jq -r 'keys | .[]' "$INSTALLER_SCRIPT_FOLDER/toolcache.json"))
+
+for package_name in ${package_list[@]}; do
+ # get key alias
+ key_alias=$(echo $package_name | cut -f2 -d-)
+
+ # set dictionary
+ TOOLCACHE_KEY_VALUE+=(["$key_alias"]="$package_name")
+done;
+
AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
-# Python test
-if [ -d "$AGENT_TOOLSDIRECTORY/Python" ]; then
- cd $AGENT_TOOLSDIRECTORY/Python
- python_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||"))
- echo "Python versions folders: ${python_dirs[@]}"
- echo "------------------------------------------"
- if [ -n "$python_dirs" ]; then
- for version_dir in "${python_dirs[@]}"
- do
- echo "Test $AGENT_TOOLSDIRECTORY/Python/$version_dir:"
- expected_ver=$(echo $version_dir | egrep -o '[0-9]+\.[0-9]+')
- actual_ver=$($AGENT_TOOLSDIRECTORY/Python/$version_dir/x64/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+')
-
- if [ "$expected_ver" = "$actual_ver" ]; then
- echo "Passed!"
- else
- echo "Expected: $expected_ver; Actual: $actual_ver"
- exit 1
- fi
- done
- else
- echo "$AGENT_TOOLSDIRECTORY/Python does not include any folders"
- exit 1
- fi
-else
- echo "$AGENT_TOOLSDIRECTORY/Python does not exist"
- exit 1
-fi
-
-# Ruby test
-if [ -d "$AGENT_TOOLSDIRECTORY/Ruby" ]; then
- cd $AGENT_TOOLSDIRECTORY/Ruby
- ruby_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||"))
- echo "Ruby versions folders: ${ruby_dirs[@]}"
- echo "--------------------------------------"
- if [ -n "$ruby_dirs" ]; then
- for version_dir in "${ruby_dirs[@]}"
- do
- echo "Test $AGENT_TOOLSDIRECTORY/Ruby/$version_dir:"
- expected_ver=$(echo $version_dir | egrep -o '[0-9]+\.[0-9]+')
- actual_ver=$($AGENT_TOOLSDIRECTORY/Ruby/$version_dir/x64/bin/ruby -e "puts RUBY_VERSION" | egrep -o '[0-9]+\.[0-9]+')
-
- if [ "$expected_ver" = "$actual_ver" ]; then
- echo "Passed!"
- else
- echo "Expected: $expected_ver; Actual: $actual_ver"
- exit 1
- fi
- done
- else
- echo "$AGENT_TOOLSDIRECTORY/Ruby does not include any folders"
- exit 1
- fi
-else
- echo "$AGENT_TOOLSDIRECTORY/Ruby does not exist"
- exit 1
-fi
+Test_Hostedtoolcache_Tool "Python" "x64/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+'"
+Test_Hostedtoolcache_Tool "Ruby" "x64/bin/ruby -e 'puts RUBY_VERSION' | egrep -o '[0-9]+\.[0-9]+'"
+Test_Hostedtoolcache_Tool "PyPy" "x64/bin/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+' | cut -d '.' -f 1"
diff --git a/images/linux/toolcache-1604.json b/images/linux/toolcache-1604.json
new file mode 100644
index 000000000..40f4cd9d4
--- /dev/null
+++ b/images/linux/toolcache-1604.json
@@ -0,0 +1,14 @@
+{
+ "@actions/toolcache-python-ubuntu-1604-x64": [
+ "2.7", "3.5", "3.6", "3.7", "3.8"
+ ],
+ "@actions/toolcache-ruby-ubuntu-1604-x64": [
+ "2.4", "2.5", "2.6", "2.7"
+ ],
+ "@actions/toolcache-pypy-ubuntu-1604-x64": [
+ "2", "3"
+ ],
+ "@actions/toolcache-boost-ubuntu-1604-x64": [
+ "1.69", "1.72"
+ ]
+}
\ No newline at end of file
diff --git a/images/linux/toolcache-1804.json b/images/linux/toolcache-1804.json
new file mode 100644
index 000000000..26ad4d98e
--- /dev/null
+++ b/images/linux/toolcache-1804.json
@@ -0,0 +1,14 @@
+{
+ "@actions/toolcache-python-ubuntu-1804-x64": [
+ "2.7", "3.5", "3.6", "3.7", "3.8"
+ ],
+ "@actions/toolcache-ruby-ubuntu-1804-x64": [
+ "2.4", "2.5", "2.6", "2.7"
+ ],
+ "@actions/toolcache-pypy-ubuntu-1804-x64": [
+ "2", "3"
+ ],
+ "@actions/toolcache-boost-ubuntu-1804-x64": [
+ "1.69", "1.72"
+ ]
+}
\ No newline at end of file
diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json
index a1e9d27fa..73d96e83c 100644
--- a/images/linux/ubuntu1604.json
+++ b/images/linux/ubuntu1604.json
@@ -20,8 +20,10 @@
"helper_script_folder": "/imagegeneration/helpers",
"vm_size": "Standard_DS2_v2",
"capture_name_prefix": "packer",
- "image_version": "dev"
+ "image_version": "dev",
+ "github_feed_token": null
},
+ "sensitive-variables": ["client_secret", "github_feed_token"],
"builders": [
{
"type": "azure-arm",
@@ -75,9 +77,10 @@
"systemctl disable apt-daily.timer",
"systemctl disable apt-daily-upgrade.timer",
"systemctl disable apt-daily-upgrade.service",
- "echo '* soft nofile 50000 \n* hard nofile 50000' >> /etc/security/limits.conf",
+ "echo '* soft nofile 65536 \n* hard nofile 65536' >> /etc/security/limits.conf",
"echo 'session required pam_limits.so' >> /etc/pam.d/common-session",
- "echo 'session required pam_limits.so' >> /etc/pam.d/common-session-noninteractive"
+ "echo 'session required pam_limits.so' >> /etc/pam.d/common-session-noninteractive",
+ "echo 'DefaultLimitNOFILE=65536' >> /etc/systemd/system.conf"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
@@ -167,19 +170,26 @@
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
+ {
+ "type": "file",
+ "source": "{{template_dir}}/toolcache-1604.json",
+ "destination": "{{user `installer_script_folder`}}/toolcache.json"
+ },
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/1604/android.sh",
"{{template_dir}}/scripts/installers/1604/azpowershell.sh",
"{{template_dir}}/scripts/helpers/containercache.sh",
- "{{template_dir}}/scripts/installers/1604/hosted-tool-cache.sh",
+ "{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
"{{template_dir}}/scripts/installers/python.sh",
"{{template_dir}}/scripts/installers/test-toolcache.sh"
],
"environment_vars": [
"METADATA_FILE={{user `metadata_file`}}",
- "HELPER_SCRIPTS={{user `helper_script_folder`}}"
+ "HELPER_SCRIPTS={{user `helper_script_folder`}}",
+ "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
+ "GITHUB_FEED_TOKEN={{user `github_feed_token`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json
index 2c10a6822..dcf2ae543 100644
--- a/images/linux/ubuntu1804.json
+++ b/images/linux/ubuntu1804.json
@@ -20,8 +20,10 @@
"helper_script_folder": "/imagegeneration/helpers",
"vm_size": "Standard_DS2_v2",
"capture_name_prefix": "packer",
- "image_version": "dev"
+ "image_version": "dev",
+ "github_feed_token": null
},
+ "sensitive-variables": ["client_secret", "github_feed_token"],
"builders": [
{
"type": "azure-arm",
@@ -78,9 +80,10 @@
"systemctl disable apt-daily.timer",
"systemctl disable apt-daily-upgrade.timer",
"systemctl disable apt-daily-upgrade.service",
- "echo '* soft nofile 50000 \n* hard nofile 50000' >> /etc/security/limits.conf",
+ "echo '* soft nofile 65536 \n* hard nofile 65536' >> /etc/security/limits.conf",
"echo 'session required pam_limits.so' >> /etc/pam.d/common-session",
- "echo 'session required pam_limits.so' >> /etc/pam.d/common-session-noninteractive"
+ "echo 'session required pam_limits.so' >> /etc/pam.d/common-session-noninteractive",
+ "echo 'DefaultLimitNOFILE=65536' >> /etc/systemd/system.conf"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
@@ -170,19 +173,26 @@
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
+ {
+ "type": "file",
+ "source": "{{template_dir}}/toolcache-1804.json",
+ "destination": "{{user `installer_script_folder`}}/toolcache.json"
+ },
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/1804/android.sh",
"{{template_dir}}/scripts/installers/1804/azpowershell.sh",
"{{template_dir}}/scripts/helpers/containercache.sh",
- "{{template_dir}}/scripts/installers/1804/hosted-tool-cache.sh",
+ "{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
"{{template_dir}}/scripts/installers/python.sh",
"{{template_dir}}/scripts/installers/test-toolcache.sh"
],
"environment_vars": [
"METADATA_FILE={{user `metadata_file`}}",
- "HELPER_SCRIPTS={{user `helper_script_folder`}}"
+ "HELPER_SCRIPTS={{user `helper_script_folder`}}",
+ "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
+ "GITHUB_FEED_TOKEN={{user `github_feed_token`}}"
],
"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 ae1301244..2a3e9b49d 100644
--- a/images/macos/macos-10.15-Readme.md
+++ b/images/macos/macos-10.15-Readme.md
@@ -1,261 +1,237 @@
---
title: GitHub Hosted Github Mojave 10.15 VM Image Updates
description: Software used on build machines
-date: Week 51
+date: Week 4
---
-#### Xcode 11.1 set by default
-
+#### ⚠️ We are going to change the default Xcode to 11.3.1 next week.
+#### Xcode 11.2.1 set by default
## Operating System
-- OS X 10.15.1 (19B88) **Catalina**
+- OS X 10.15.2 (19C57) **Catalina**
## Installed Software
-
### Language and Runtime
-
-- Java 1.7 : OpenJDK Runtime Environment (Zulu 7.34.0.5-CA-macosx) (build 1.7.0_242-b7)
-- Java 1.8 : OpenJDK Runtime Environment (Zulu 8.42.0.23-CA-macosx) (build 1.8.0_232-b18) (default)
-- Java 11 : OpenJDK Runtime Environment Zulu11.35+15-CA (build 11.0.5+10-LTS)
-- Java 12 : OpenJDK Runtime Environment Zulu12.3+11-CA (build 12.0.2+3)
-- Java 13 : OpenJDK Runtime Environment Zulu13.28+11-CA (build 13.0.1+10-MTS)
-- Node.js v12.13.1
+- Java 1.7: (Zulu 7.36.0.5-CA-macosx) (build 1.7.0_252-b10)
+- Java 1.8: (Zulu 8.44.0.9-CA-macosx) (build 1.8.0_242-b20) (default)
+- Java 11: Zulu11.37+17-CA (build 11.0.6+10-LTS)
+- Java 12: Zulu12.3+11-CA (build 12.0.2+3)
+- Java 13: Zulu13.29+9-CA (build 13.0.2+6-MTS)
+- Node.js v12.14.1
- NVM 0.33.11
-- NVM - Installed node versions:
- v6.17.1 *
- v8.16.2 *
- v10.17.0 *
- v12.13.1 *
- v13.3.0 *
+- NVM - Cached node versions: v6.17.1 v8.17.0 v10.18.1 v12.14.1 v13.6.0
- PowerShell 6.2.3
- Python 2.7.17
-- Python 3.7.5
-- Ruby -2.6.5p114
-- .NET SDK 2.0.0 3.0.100 3.0.101
-- Go 1.13.4
+- Python 3.7.6
+- Ruby 2.6.5p114
+- Rust 1.40.0
+- .NET SDK 2.0.0 3.0.100 3.0.101 3.0.102 3.1.100 3.1.101
+- Go 1.13.6
### Package Management
-
-- Bundler 2.0.2
+- Bundler version 2.1.4
- Carthage 0.34.0
- CocoaPods 1.8.4
-- Homebrew 2.2.0
-- NPM 6.12.1
-- Yarn 1.19.2
+- Homebrew 2.2.4
+- NPM 6.13.4
+- Yarn 1.21.1
- NuGet 5.3.1.6268
-- pip 19.3.1
+- Pip 19.3.1 (python 2.7)
+- Pip 19.3.1 (python 3.7)
+- Rustup 1.21.1
- Miniconda 4.7.12
+- RubyGems 3.1.2
### Project Management
-
- Apache Maven 3.6.3
-- Gradle 6.0.1
+- Gradle 6.1
### Utilities
-
-- curl 7.67.0 (x86_64-apple-darwin19.0.0) libcurl/7.67.0 SecureTransport zlib/1.2.11
-- Git 2.24.0
-- Git LFS: git-lfs/2.8.0 (GitHub; darwin amd64; go 1.12.7)
+- Curl 7.68.0
+- Git: 2.25.0
+- Git LFS: 2.9.2
- GNU Wget 1.20.3
- Subversion (SVN) 1.13.0
-- GNU parallel 20191122
+- GNU parallel 20191222
+- OpenSSL 1.0.2t 10 Sep 2019
+- jq 1.6
+- gpg (GnuPG) 2.2.19
### Tools
+- Fastlane 2.140.0
+- Cmake 3.16.2
+- App Center CLI 2.3.3
+- Azure CLI 2.0.80
-- fastlane 2.137.0
-- App Center CLI 2.3.2
-- Azure-Cli 2.0.77
+### Browsers
+- Google Chrome 79.0.3945.130
+- ChromeDriver 79.0.3945.36
-### Pre-cached tools
+### Toolcache
+#### Ruby
+- 2.4.9
+- 2.5.7
+- 2.6.5
+- 2.7.0
-- Python
- - 2.7.16
- - 3.5.7
- - 3.6.9
- - 3.7.4
- - 3.8.0
- - pypy2
- - pypy3
-- Ruby
- - 2.4.6
- - 2.5.5
- - 2.6.3
+#### Python
+- 2.7.17
+- 3.5.9
+- 3.6.10
+- 3.7.6
+- 3.8.1
-### Xcode
+#### PyPy
+- 2.7.13
+- 3.6.9
-| Version | Build | Path |
-|------------------------|---------|----------------------------------|
-| 11.3_beta | 11C24b | /Applications/Xcode_11.3_beta.app|
-| 11.2.1 | 11B53 | /Applications/Xcode_11.2.1.app |
-| 11.2 | 11B52 | /Applications/Xcode_11.2.app |
-| 11.1 | 11A1027 | /Applications/Xcode_11.1.app |
-| 11.0 | 11A420a | /Applications/Xcode_11.app |
+### Xamarin
+#### Visual Studio for Mac
+- 8.4.1.4
+#### Mono
+- 6.6.0.155
+- 6.4.0.208
-### Xcode Support Tools
-
-- Nomad CLI 3.0.6
-- Nomad CLI IPA 0.14.3
-- xcpretty 0.3.0
-- xctool 0.3.6
-- xcversion 2.6.3
-
-### Installed SDKs
-
-| SDK | SDK name |Xcode Version |
-|---------------------------|-------------|--------------|
-| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1 |
-| iOS 13.0 | iphoneos13.0 | 11.0 |
-| iOS 13.1 | iphoneos13.1 | 11.1 |
-| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1 |
-| iOS Simulator 13.0 | iphonesimulator13.0 | 11.0 |
-| iOS Simulator 13.1 | iphonesimulator13.1 | 11.1 |
-| iOS Simulator 13.2 | iphonesimulator13.2 | 11.2, 11.2.1 |
-| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
-| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1 |
-| tvOS Simulator 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
-| tvOS Simulator 13.2 | appletvsimulator13.2 | 11.2, 11.2.1 |
-| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
-| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1 |
-| watchOS Simulator 6.0 | watchsimulator6.0 | 11.0, 11.1 |
-| watchOS Simulator 6.1 | watchsimulator6.1 | 11.2, 11.2.1 |
-| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1 |
-
-### Installed Simulators
-
-#### Runtimes
-
-| OS | Xcode Version | Simulators |
-|---------|---------------------------------|------------|
-| iOS 13.0 (17A577a) | 11 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) |
-| iOS 13.1 (17A844) | 11.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) |
-| iOS 13.2 (17B102) | 11.2, 11.2.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad (7th generation)
iPad Pro
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) |
-| tvOS 11.4 (15L576)
tvOS 12.0 (16J5283n)
tvOS 12.1 (16J602)
tvOS 12.2 (16L225)
tvOS 12.4 (16M567)
tvOS 13.0 (17J559)
tvOS 13.2 (17K90) | 11.0, 11.1
11.2, 11.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
-| watchOS 6.0 (17R566)
watchOS 6.1 (17S80) | 11.0
11.1
11.2, 11.2.1 | Apple Watch Series 4 40mm
Apple Watch Series 4 44mm
Apple Watch Series 5 40mm
Apple Watch Series 5 44mm |
-
-
-### Device Pairs
-
-| Watch | Phone |
-|-----------------------------|-------------------|
-| Apple Watch - 38mm | iPhone 6s |
-| Apple Watch - 42mm | iPhone 6s Plus |
-| Apple Watch Series 2 - 38mm | iPhone 7 |
-| Apple Watch Series 2 - 42mm | iPhone 7 Plus |
-| Apple Watch Series 3 - 38mm | iPhone 8 |
-| Apple Watch Series 3 - 42mm | iPhone 8 Plus |
-| Apple Watch Series 4 - 40mm | iPhone XS |
-| Apple Watch Series 4 - 44mm | iPhone XS Max |
-| Apple Watch Series 5 - 40mm | iPhone 11 Pro |
-| Apple Watch Series 5 - 44mm | iPhone 11 Pro Max |
-
-## Android
-
-### Android SDK Tools
-
-| Package name | Description |
-|-----------------------|---------------------------------------------|
-| tools | Android SDK Tools, revision 26.1.1 |
-
-### Android SDK Platform-tools
-
-| Package name | Description |
-|-----------------------|---------------------------------------------|
-| platform-tools | Android SDK Platform-tools, revision 29.0.5 |
-
-### Android SDK Platforms
-
-| Package name | Description |
-|-----------------------|-------------------------------------------|
-| android-24 | Android SDK Platform 24, Revision 2 |
-| android-25 | Android SDK Platform 25, Revision 3 |
-| android-26 | Android SDK Platform 26, Revision 2 |
-| android-27 | Android SDK Platform 27, Revision 3 |
-| android-28 | Android SDK Platform 28, Revision 6 |
-| android-29 | Android SDK Platform 29, Revision 4 |
-
-### Android SDK Build-tools
-
-| Package name | Description |
-|-----------------------|-------------------------------------------|
-| build-tools-24.0.0 | Android SDK Build-tools, Revision 24.0.0 |
-| build-tools-24.0.1 | Android SDK Build-tools, Revision 24.0.1 |
-| build-tools-24.0.2 | Android SDK Build-tools, Revision 24.0.2 |
-| build-tools-24.0.3 | Android SDK Build-tools, Revision 24.0.3 |
-| build-tools-25.0.0 | Android SDK Build-tools, Revision 25.0.0 |
-| build-tools-25.0.1 | Android SDK Build-tools, Revision 25.0.1 |
-| build-tools-25.0.2 | Android SDK Build-tools, Revision 25.0.2 |
-| build-tools-25.0.3 | Android SDK Build-tools, Revision 25.0.3 |
-| build-tools-26.0.0 | Android SDK Build-tools, Revision 26.0.0 |
-| build-tools-26.0.1 | Android SDK Build-tools, Revision 26.0.1 |
-| build-tools-26.0.2 | Android SDK Build-tools, Revision 26.0.2 |
-| build-tools-26.0.3 | Android SDK Build-tools, Revision 26.0.3 |
-| build-tools-27.0.0 | Android SDK Build-tools, Revision 27.0.0 |
-| build-tools-27.0.1 | Android SDK Build-tools, Revision 27.0.1 |
-| build-tools-27.0.2 | Android SDK Build-tools, Revision 27.0.2 |
-| build-tools-27.0.3 | Android SDK Build-tools, Revision 27.0.3 |
-| build-tools-28.0.0 | Android SDK Build-tools, Revision 28.0.0 |
-| build-tools-28.0.1 | Android SDK Build-tools, Revision 28.0.1 |
-| build-tools-28.0.2 | Android SDK Build-tools, Revision 28.0.2 |
-| build-tools-28.0.3 | Android SDK Build-tools, Revision 28.0.3 |
-| build-tools-29.0.0 | Android SDK Build-tools, Revision 29.0.0 |
-| build-tools-29.0.1 | Android SDK Build-tools, Revision 29.0.1 |
-| build-tools-29.0.2 | Android SDK Build-tools, Revision 29.0.2 |
-
-### Utils
-
-| Package name | Description |
-|-----------------------|-------------------------------------------|
-| cmake | 3.15.5 |
-| lldb | 2.3.3614996 |
-| ndk-bundle | 18.1.5063045 |
-| ProGuard | 5.3.3 |
-| Android Emulator | 29.2.11 |
-
-### Google APIs
-
-| Package name | Description |
-|-----------------------|-------------------------------------------|
-| google_apis-google-21 | Google APIs, Android API 21, revision 1 |
-| google_apis-google-22 | Google APIs, Android API 22, revision 1 |
-| google_apis-google-23 | Google APIs, Android API 23, revision 1 |
-| google_apis-google-24 | Google APIs, Android API 24, revision 1 |
-
-### Extra packages
-
-| Package name | Description |
-|-----------------------------------|------------------------------------------|
-| extra-android-m2repository | Android Support Repository, revision 47 |
-| extra-google-google_play_services | Google Play services, revision 49 |
-| extra-google-m2repository | Google Repository, revision 58 |
-| Hardware_Accelerated_Execution_Manager | Intel x86 Emulator Accelerator 7.3.2 |
-
-## Xamarin
-
-### Visual Studio for Mac
-
-- 8.3.10.2
-
-
-### Mono
-
-- 6.4.0
-
-### Xamarin.iOS SDK
-
+#### Xamarin.iOS
+- 13.10.0.17
+- 13.8.3.0
- 13.6.0.12
- 13.4.0.2
-### Xamarin.Android SDK
-
-- 10.0.6.2
-- 10.0.3.0
-
-### Xamarin.Mac SDK
-
+#### Xamarin.Mac
+- 6.10.0.17
+- 6.8.3.0
- 6.6.0.12
- 6.4.0.2
-### Unit Test Framework
+#### Xamarin.Android
+- 10.1.3
+- 10.0.6
+
+#### Unit Test Framework
+- NUnit 3.6.1
+
+### Xcode
+| Version | Build | Path |
+| ------------------------------ | ------------------------------ | ------------------------------ |
+| 11.3.1 | 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 |
+| 11.2 | 11B52 | /Applications/Xcode_11.2.app |
+| 11.1 | 11A1027 | /Applications/Xcode_11.1.app |
+| 11.0 | 11A420a | /Applications/Xcode_11.app |
+
+#### Xcode Support Tools
+- Nomad CLI 3.1.2
+- Nomad CLI IPA ipa 0.14.3
+- xcpretty 0.3.0
+- xctool 0.3.7
+- xcversion 2.6.3
+
+#### Installed SDKs
+| SDK | SDK Name | Xcode Version |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1 |
+| iOS 13.0 | iphoneos13.0 | 11.0 |
+| iOS 13.1 | iphoneos13.1 | 11.1 |
+| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
+| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 |
+| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 |
+| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
+| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
+| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
+| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
+| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
+| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
+| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
+| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 |
+| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
+| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1 |
+
+#### Installed Simulators
+| OS | Xcode Version | Simulators |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| iOS 13.0 | 11.0 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) |
+| iOS 13.1 | 11.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) |
+| iOS 13.2 | 11.2
11.2.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad (7th generation)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) |
+| iOS 13.3 | 11.3
11.3.1 | iPhone 8
iPhone 8 Plus
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPad Pro (9.7-inch)
iPad (7th generation)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) |
+| tvOS 13.0 | 11.0
11.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 13.2 | 11.2
11.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 13.3 | 11.3
11.3.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| watchOS 6.0 | 11.0
11.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
+| watchOS 6.1 | 11.2
11.2.1
11.3
11.3.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
+
+### Android
+#### Android SDK Tools
+| Package Name | Description |
+| ---------------------------------- | ---------------------------------- |
+| tools | Android SDK Tools, Revision 26.1.1 |
+
+#### Android SDK Platform-Tools
+| Package Name | Description |
+| ------------------------------------------- | ------------------------------------------- |
+| platform-tools | Android SDK Platform-Tools, Revision 29.0.5 |
+
+#### Android SDK Platforms
+| Package Name | Description |
+| ----------------------------------- | ----------------------------------- |
+| android-24 | Android SDK Platform 24, Revision 2 |
+| android-25 | Android SDK Platform 25, Revision 3 |
+| android-26 | Android SDK Platform 26, Revision 2 |
+| android-27 | Android SDK Platform 27, Revision 3 |
+| android-28 | Android SDK Platform 28, Revision 6 |
+| android-29 | Android SDK Platform 29, Revision 4 |
+
+#### Android SDK Build-Tools
+| Package Name | Description |
+| ---------------------------------------- | ---------------------------------------- |
+| build-tools-24.0.0 | Android SDK Build-Tools, Revision 24.0.0 |
+| build-tools-24.0.1 | Android SDK Build-Tools, Revision 24.0.1 |
+| build-tools-24.0.2 | Android SDK Build-Tools, Revision 24.0.2 |
+| build-tools-24.0.3 | Android SDK Build-Tools, Revision 24.0.3 |
+| build-tools-25.0.0 | Android SDK Build-Tools, Revision 25.0.0 |
+| build-tools-25.0.1 | Android SDK Build-Tools, Revision 25.0.1 |
+| build-tools-25.0.2 | Android SDK Build-Tools, Revision 25.0.2 |
+| build-tools-25.0.3 | Android SDK Build-Tools, Revision 25.0.3 |
+| build-tools-26.0.0 | Android SDK Build-Tools, Revision 26.0.0 |
+| build-tools-26.0.1 | Android SDK Build-Tools, Revision 26.0.1 |
+| build-tools-26.0.2 | Android SDK Build-Tools, Revision 26.0.2 |
+| build-tools-26.0.3 | Android SDK Build-Tools, Revision 26.0.3 |
+| build-tools-27.0.0 | Android SDK Build-Tools, Revision 27.0.0 |
+| build-tools-27.0.1 | Android SDK Build-Tools, Revision 27.0.1 |
+| build-tools-27.0.2 | Android SDK Build-Tools, Revision 27.0.2 |
+| build-tools-27.0.3 | Android SDK Build-Tools, Revision 27.0.3 |
+| build-tools-28.0.0 | Android SDK Build-Tools, Revision 28.0.0 |
+| build-tools-28.0.1 | Android SDK Build-Tools, Revision 28.0.1 |
+| build-tools-28.0.2 | Android SDK Build-Tools, Revision 28.0.2 |
+| build-tools-28.0.3 | Android SDK Build-Tools, Revision 28.0.3 |
+| build-tools-29.0.0 | Android SDK Build-Tools, Revision 29.0.0 |
+| build-tools-29.0.1 | Android SDK Build-Tools, Revision 29.0.1 |
+| build-tools-29.0.2 | Android SDK Build-Tools, Revision 29.0.2 |
+
+#### Android Utils
+| Package Name | Version |
+| ---------------- | ---------------- |
+| cmake | 3.6.4111459 |
+| lldb | 3.1.4508709 |
+| ndk-bundle | 18.1.5063045 |
+| Android Emulator | 29.3.4 |
+
+#### Android Google APIs
+| Package Name | Description |
+| --------------------------- | --------------------------- |
+| addon-google_apis-google-21 | Google APIs, Revision 1 |
+| addon-google_apis-google-22 | Google APIs, Revision 1 |
+| addon-google_apis-google-23 | Google APIs, Revision 1 |
+| addon-google_apis-google-24 | Google APIs, Revision 1 |
+
+#### Extra Packages
+| Package Name | Version |
+| ----------------------------------------------- | ----------------------------------------------- |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 |
+
-- NUnit: 3.6.1
diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json
index c51dcdfe5..98d96feb9 100644
--- a/images/win/Windows2016-Azure.json
+++ b/images/win/Windows2016-Azure.json
@@ -16,6 +16,7 @@
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"vm_size": "Standard_DS4_v2",
+ "root_folder": "C:",
"image_folder": "C:\\image",
"commit_file": "C:\\image\\commit.txt",
"metadata_file": "C:\\image\\metadata.txt",
@@ -24,8 +25,10 @@
"install_user": "installer",
"install_password": null,
"capture_name_prefix": "packer",
- "image_version": "dev"
+ "image_version": "dev",
+ "github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}"
},
+ "sensitive-variables": ["install_password", "ssh_password", "client_secret", "github_feed_token"],
"builders": [
{
"name": "vhd",
@@ -268,6 +271,27 @@
},
{
"type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
+ ]
+ },
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
+ ]
+ },
+ {
+ "type": "file",
+ "source": "{{template_dir}}/toolcache-2016.json",
+ "destination": "{{user `root_folder`}}/toolcache.json"
+ },
+ {
+ "type": "powershell",
+ "environment_vars":[
+ "GITHUB_FEED_TOKEN={{ user `github_feed_token` }}",
+ "ROOT_FOLDER={{user `root_folder`}}"
+ ],
"scripts":[
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1"
]
@@ -330,12 +354,24 @@
"{{ template_dir }}/scripts/Installers/Install-Chrome.ps1"
]
},
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Install-Edge.ps1"
+ ]
+ },
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Firefox.ps1"
]
},
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Install-Selenium.ps1"
+ ]
+ },
{
"type": "powershell",
"scripts":[
@@ -362,12 +398,6 @@
"{{ template_dir }}/scripts/Installers/Validate-WinAppDriver.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -450,16 +480,10 @@
"{{ template_dir }}/scripts/Installers/Install-AzureCosmosDbEmulator.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
- ]
- },
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0",
+ "BOOST_VERSIONS=1.69.0,1.72.0",
"BOOST_DEFAULT=1.69.0"
],
"scripts":[
@@ -562,6 +586,9 @@
},
{
"type": "powershell",
+ "environment_vars":[
+ "ROOT_FOLDER={{user `root_folder`}}"
+ ],
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1"
]
@@ -591,7 +618,7 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0",
+ "BOOST_VERSIONS=1.69.0,1.72.0",
"BOOST_DEFAULT=1.69.0"
],
"scripts":[
@@ -634,6 +661,12 @@
"{{ template_dir }}/scripts/Installers/Validate-Chrome.ps1"
]
},
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Validate-Edge.ps1"
+ ]
+ },
{
"type": "powershell",
"scripts":[
diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md
index c550b5238..509c4f397 100644
--- a/images/win/Windows2016-Readme.md
+++ b/images/win/Windows2016-Readme.md
@@ -1,69 +1,68 @@
-# Hosted Windows2016 image
+# Windows Server 2016
+
+The following software is installed on machines with the 20200120.1 update.
+
+Components marked with **\*** have been upgraded since the previous version of the image.
-The following software is installed on machines in the Azure Pipelines **Hosted Windows2016** (v20191009.1) pool.
-
-Components marked with **\*** have been upgraded since the previous version of the image.
-
-
-## Chocolatey
-
-_Version:_ 0.10.15
-_Environment:_
+
+## Chocolatey
+
+_Version:_ 0.10.15
+_Environment:_
* PATH: contains location for choco.exe
-
-## Docker
-
-_Version:_ 19.03.3
-_Environment:_
+
+## Docker
+
+_Version:_ 19.03.5
+_Environment:_
* PATH: contains location of docker.exe
-
-## Docker-compose
-
-_Version:_ 1.24.0
-_Environment:_
+
+## Docker-compose
+
+_Version:_ 1.25.1
+_Environment:_
* PATH: contains location of docker-compose.exe
-
-## Powershell Core
-
-_Version:_ 6.2.3
-
-
-## Docker images
-
+
+## Powershell Core
+
+_Version:_ 6.2.3
+
+## Docker images
+
The following container images have been cached:
-* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016 (Digest: sha256:f247ce2cdad4711b6a597bf3a84581278251e13176a2129158e3138fa7c6730d)
-* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016 (Digest: sha256:ebb0693431d47cbd070f8b6473b5a3b79896e8a146d202f78b92cabf6ceb4b3d)
-* mcr.microsoft.com/windows/servercore:ltsc2016 (Digest: sha256:45469202b1d2630e502330c0c4e977fac9b4540611c9778dedfc140f683f8f68)
+* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016 (Digest: sha256:a1bd1a6dc00f2734b5071b9295f715f36a653e4b2d259c1a4a4d9e8cd6f3ade8)
+* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016 (Digest: sha256:7e81f462be36ba1362062306426c65547e6d63b2eab0b5583808581081393a79)
+* mcr.microsoft.com/windows/servercore:ltsc2016 (Digest: sha256:42be24b8810c861cc1b3fe75c5e99f75061cb45fdbae1de46d151c18cc8e6a9a)
* microsoft/aspnetcore-build:1.0-2.0 (Digest: sha256:9ecc7c5a8a7a11dca5f08c860165646cb30d084606360a3a72b9cbe447241c0c)
* mcr.microsoft.com/windows/nanoserver:10.0.14393.953 (Digest: sha256:fc60bd5ae0e61b334ce1cf1bcbf20c10c36b4c5482a01da319c9c989f9e6e268)
-
-## Visual Studio 2017 Enterprise
-
-_Version:_ VisualStudio/15.9.16+28307.858
-_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise
-
-The following workloads including required and recommended components are installed with Visual Studio 2017:
-
-* Universal Windows Platform development
-* .NET desktop development
-* Desktop development with C++
-* ASP.NET and web development
-* Azure development
-* Node.js development
-* Data storage and processing
-* Data science and analytical applications *
-* Game development with Unity *
-* Linux development with C++ *
-* Game development with C++ *
-* Mobile development with C++ *
-* Office/SharePoint development
-* Mobile development with .NET
-* .NET Core cross-platform development
-* Visual Studio extension development *
-* Python development *
-* Mobile development with JavaScript *
-
-In addition the following optional components are installed:
+
+## Visual Studio 2017 Enterprise
+
+_Version:_ VisualStudio/15.9.19+28307.1000
+_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise
+
+The following workloads including required and recommended components are installed with Visual Studio 2017:
+
+* Universal Windows Platform development
+* .NET desktop development
+* Desktop development with C++
+* ASP.NET and web development
+* Azure development
+* Node.js development
+* Data storage and processing
+* Data science and analytical applications *
+* Game development with Unity *
+* Linux development with C++ *
+* Game development with C++ *
+* Mobile development with C++ *
+* Office/SharePoint development
+* Mobile development with .NET
+* .NET Core cross-platform development
+* Visual Studio extension development *
+* Python development *
+* Mobile development with JavaScript *
+
+In addition the following optional components are installed:
* Microsoft.Net.Component.4.6.2.SDK
* Microsoft.Net.Component.4.6.2.TargetingPack
@@ -128,469 +127,455 @@ In addition the following optional components are installed:
* Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre
* Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre
* Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre
-
-## SQL Server Data Tools for VS 2017
-
-_Version:_ 15.1.61906.3130
-
-The following components are installed:
-
-* SQL Server Data Tools
-* SQL Server Analysis Services Designer
-* SQL Server Integration Services Designer
+
+## SQL Server Data Tools for VS 2017
+
+_Version:_ 15.1.61906.3130
+
+The following components are installed:
+
+* SQL Server Data Tools
+* SQL Server Analysis Services Designer
+* SQL Server Integration Services Designer
* SQL Server Reporting Services Designers
-
-## WIX Tools
-
-_Toolset Version:_ 3.11.4516
-_WIX Toolset Studio 2017 Extension Version:_ 0.9.21.62588
-_Environment:_
+
+## WIX Tools
+
+_Toolset Version:_ 3.11.4516
+_WIX Toolset Studio 2017 Extension Version:_ 0.9.21.62588
+_Environment:_
* WIX: Installation root of WIX
-
-## .NET 4.8
-
+
+## .NET 4.8
+
_Version:_ 4.8.03761
-
-## Windows Driver Kit
-
+
+## Windows Driver Kit
+
_Version:_ 10.0.17763.0
-
-## Azure Service Fabric
-
-_SDK Version:_ 3.3.617.9590
-_Runtime Version:_ 6.4.617.9590
-
-## WinAppDriver
-
+
+## Azure Service Fabric
+
+_SDK Version:_ 4.0.457.9590
+_Runtime Version:_ 7.0.457.9590
+
+## WinAppDriver
+
_Version:_ 1.1.1809.18001
+
+## Android SDK Build Tools
-## Android SDK Build Tools
+#### 29.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.2
-#### 29.0.2
+#### 29.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.2
+#### 28.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.3
-#### 29.0.0
+#### 28.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.0
+#### 28.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.1
-#### 28.0.3
+#### 28.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.3
+#### 27.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.3
-#### 28.0.2
+#### 27.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.2
+#### 27.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.1
-#### 28.0.1
+#### 27.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.1
+#### 26.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.3
-#### 28.0.0
+#### 26.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.0
+#### 26.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.1
-#### 27.0.3
+#### 26.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.3
+#### 25.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.3
-#### 27.0.2
+#### 25.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.2
+#### 25.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.1
-#### 27.0.1
+#### 25.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.1
+#### 24.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.3
-#### 27.0.0
+#### 24.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.0
+#### 24.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.1
-#### 26.0.3
+#### 24.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.3
+#### 23.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.3
-#### 26.0.2
+#### 23.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.2
+#### 23.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.1
-#### 26.0.1
+#### 22.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\22.0.1
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.1
+#### 21.1.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\21.1.2
-#### 26.0.0
+#### 20.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\20.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.0
+#### 19.1.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\19.1.0
-#### 25.0.3
+
+## Android SDK Platforms
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.3
+#### 10 (API 29)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-29
-#### 25.0.2
+#### 9 (API 28)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-28
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.2
+#### 8.1.0 (API 27)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-27
-#### 25.0.1
+#### 8.0.0 (API 26)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-26
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.1
+#### 7.1.1 (API 25)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-25
-#### 25.0.0
+#### 7.0 (API 24)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-24
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.0
+#### 6.0 (API 23)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-23
-#### 24.0.3
+#### 5.1.1 (API 22)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-22
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.3
+#### 5.0.1 (API 21)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-21
-#### 24.0.2
+#### 4.4.2 (API 19)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-19
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.2
-
-#### 24.0.1
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.1
-
-#### 24.0.0
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.0
-
-#### 23.0.3
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.3
-
-#### 23.0.2
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.2
-
-#### 23.0.1
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.1
-
-#### 22.0.1
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\22.0.1
-
-#### 21.1.2
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\21.1.2
-
-#### 20.0.0
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\20.0.0
-
-#### 19.1.0
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\19.1.0
-
-
-## Android SDK Platforms
-
-#### 10 (API 29)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-29
-
-#### 9 (API 28)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-28
-
-#### 8.1.0 (API 27)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-27
-
-#### 8.0.0 (API 26)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-26
-
-#### 7.1.1 (API 25)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-25
-
-#### 7.0 (API 24)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-24
-
-#### 6.0 (API 23)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-23
-
-#### 5.1.1 (API 22)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-22
-
-#### 5.0.1 (API 21)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-21
-
-#### 4.4.2 (API 19)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-19
-
-
-## Azure/AzureRM Powershell modules
-
-#### 2.1.0
-
-This version is installed and is available via Get-Module -ListAvailable
-
-#### 3.8.0
-
-This version is saved but not installed
-_Location:_ C:\Modules\azurerm_3.8.0\AzureRM\3.8.0\AzureRM.psd1
-
-#### 4.2.1
-
-This version is saved but not installed
-_Location:_ C:\Modules\azurerm_4.2.1\AzureRM\4.2.1\AzureRM.psd1
-
-#### 5.1.1
-
-This version is saved but not installed
-_Location:_ C:\Modules\azurerm_5.1.1\AzureRM\5.1.1\AzureRM.psd1
-
-#### 6.7.0
-
-This version is saved but not installed
-_Location:_ C:\Modules\azurerm_6.7.0\AzureRM\6.7.0\AzureRM.psd1
-
-
-## TLS12
-
-_Version:_ 1.2
+
+## TLS12
+
+_Version:_ 1.2
_Description:_ .NET has been configured to use TLS 1.2 by default
-
-## Azure CLI
-
-_Version:_ 2.0.74
-_Environment:_
+
+## Azure CLI
+
+_Version:_ 2.0.80
+_Environment:_
* PATH: contains location of az.cmd
-
-## Azure DevOps Cli extension
-
-_Version:_ azure-devops 0.13.0
-
-## Python
-
-_Version:_ 2.7.16 (x64)
_Version:_ 2.7.16 (x86)
_Version:_ 3.4.4 (x64)
_Version:_ 3.4.4 (x86)
_Version:_ 3.5.4 (x64)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x64)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.4 (x64)
_Version:_ 3.7.4 (x86)
-
-## PyPy
-
-_Version:_ 2.7.13 (x86)
_Version:_ 3.5.3 (x86)
-
-## Ruby
-
-_Version:_ 2.4.6 (x64)
_Version:_ 2.5.5 (x64)
_Version:_ 2.6.3 (x64)
-
-## Python (64 bit)
-
-#### Python 3.6.8
-_Environment:_
-* PATH: contains location of python.exe
-
-#### Python 2.7.16
-
+
+## Azure DevOps Cli extension
+
+_Version:_ azure-devops 0.17.0
+
+## Python
+
+_Version:_ 2.7.17 (x64)
_Version:_ 3.5.4 (x64)
_Version:_ 3.6.8 (x64)
_Version:_ 3.7.6 (x64)
_Version:_ 3.8.1 (x64)
+
+## Python
+
+_Version:_ 2.7.17 (x64)
_Version:_ 3.5.4 (x64)
_Version:_ 3.6.8 (x64)
_Version:_ 3.7.6 (x64)
_Version:_ 3.8.1 (x64)
_Version:_ 2.7.17 (x86)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.6 (x86)
_Version:_ 3.8.1 (x86)
+
+## PyPy
+
+_Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
+
+## Ruby
+
+_Version:_ 2.4.9 (x64)
_Version:_ 2.5.7 (x64)
_Version:_ 2.6.5 (x64)
_Version:_ 2.7.0 (x64)
+
+## Python (64 bit)
+
+#### Python 3.6.8
+_Environment:_
+* PATH: contains location of python.exe
+
+#### Python 2.7.17
+
_Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64
-
-## Git
-
-_Version:_ 2.23.0
-_Environment:_
+
+## Git
+
+_Version:_ 2.25.0
+_Environment:_
* PATH: contains location of git.exe
-
-## Git Large File Storage (LFS)
-
-_Version:_ 2.8.0
-_Environment:_
-* PATH: contains location of git-lfs.exe
+
+## Git Large File Storage (LFS)
+
+_Version:_ 2.9.2
+_Environment:_
+* PATH: contains location of git-lfs.exe
* GIT_LFS_PATH: location of git-lfs.exe
+
+## Go (x64)
+
+#### 1.9.7
+
+_Environment:_
+* GOROOT_1_9_X64: root directory of the Go 1.9.7 installation
-## Go (x64)
+#### 1.10.8
+
+_Environment:_
+* GOROOT_1_10_X64: root directory of the Go 1.10.8 installation
-#### 1.9.7
+#### 1.11.12
+
+_Environment:_
+* GOROOT_1_11_X64: root directory of the Go 1.11.12 installation
-_Environment:_
-* GOROOT_1_9_X64: root directory of the Go 1.9.7 installation
-
-#### 1.10.8
-
-_Environment:_
-* GOROOT_1_10_X64: root directory of the Go 1.10.8 installation
-
-#### 1.11.12
-
-_Environment:_
-* GOROOT_1_11_X64: root directory of the Go 1.11.12 installation
-
-#### 1.12.7
-
-_Environment:_
-* PATH: contains the location of go.exe version 1.12.7
-* GOROOT: root directory of the Go 1.12.7 installation
+#### 1.12.7
+
+_Environment:_
+* PATH: contains the location of go.exe version 1.12.7
+* GOROOT: root directory of the Go 1.12.7 installation
* GOROOT_1_12_X64: root directory of the Go 1.12.7 installation
-#### 1.13
-
-_Environment:_
-* GOROOT_1_13_X64: root directory of the Go 1.13 installation
+#### 1.13
+
+_Environment:_
+* GOROOT_1_13_X64: root directory of the Go 1.13 installation
-
-## Boost
-
-####
-
-* PATH: contains the location of Boost version
-* BOOST_ROOT: root directory of the Boost version installation
+
+## Boost
+
+####
+
+* PATH: contains the location of Boost version
+* BOOST_ROOT: root directory of the Boost version installation
* BOOST_ROOT_1_69_0: root directory of the Boost version installation
-
-## PHP (x64)
-
-#### 7.3.10
-
-_Environment:_
-* PATH: contains the location of php.exe version 7.3.10
-* PHPROOT: root directory of the PHP 7.3.10 installation
-
-## Ruby (x64)
-
-#### 2.5.5p157
-_Environment:_
-* Location: C:\hostedtoolcache\windows\Ruby\2.5.5\x64\bin
-* PATH: contains the location of ruby.exe version 2.5.5p157
-
-## Rust (64-bit)
-
-#### 1.38.0
-_Location:_ C:\Rust\.cargo\bin
-_Environment:_
+
+## PHP (x64)
+
+#### 7.4.1
+
+_Environment:_
+* PATH: contains the location of php.exe version 7.4.1
+* PHPROOT: root directory of the PHP 7.4.1 installation
+
+## Ruby (x64)
+
+#### 2.5.7p206
+_Environment:_
+* Location: C:\hostedtoolcache\windows\Ruby\2.5.7\x64\bin
+* PATH: contains the location of ruby.exe version 2.5.7p206
+
+## Rust (64-bit)
+
+#### 1.40.0
+_Location:_ C:\Rust\.cargo\bin
+_Environment:_
* PATH: contains the location of rustc.exe
+
+## sbt
+
-## Subversion
-
-_Version:_ 1.8.17
-_Environment:_
+
+## Subversion
+
+_Version:_ 1.8.17
+_Environment:_
* PATH: contains location of svn.exe
+
+## Google Chrome
+
+_version:_
+79.0.3945.130
+
+## Mozilla Firefox
+
+_version:_
+72.0.1
+
+## Selenium Web Drivers
+
+
+#### Chrome Driver
+
+_version:_
+79.0.3945.36
+
+_Environment:_
+* ChromeWebDriver: location of chromedriver.exe
+
+#### Gecko Driver
+
+_version:_
+0.24.0
+
+_Environment:_
+* GeckoWebDriver: location of geckodriver.exe
+
+#### IE Driver
+
+_version:_
+3.8.0.0
+
+_Environment:_
+* IEWebDriver: location of IEDriverServer.exe
-## Google Chrome
+
+## Node.js
+
+_Version:_ 12.14.1
+_Architecture:_ x64
+_Environment:_
+* PATH: contains location of node.exe
+* Gulp CLI version: 2.2.0 Local version: Unknown
+* Grunt grunt-cli v1.3.2
+* Yarn 1.21.1
-_version:_
-77.0.3865.90
-
-## Mozilla Firefox
-
-_version:_
-69.0.1
-
-## Selenium Web Drivers
-
-
-#### Chrome Driver
-
-_version:_
-77.0.3865.40
-
-_Environment:_
-* ChromeWebDriver: location of chromedriver.exe
-
-#### Gecko Driver
-
-_version:_
-0.24.0
-
-_Environment:_
-* GeckoWebDriver: location of geckodriver.exe
-
-#### IE Driver
-
-_version:_
-3.8.0.0
-
-_Environment:_
-* IEWebDriver: location of IEDriverServer.exe
-
-
-## Node.js
-
-_Version:_ 10.16.3
-_Architecture:_ x64
-_Environment:_
-* PATH: contains location of node.exe
-* Gulp CLI version: 2.2.0 Local version: Unknown
-* Grunt grunt-cli v1.3.2
-* Bower 1.8.8
-* Yarn 1.19.1
-
-> Note: You can install and use another version of Node.js on Microsoft-hosted agent pools using the [Node tool installer](https://docs.microsoft.com/vsts/pipelines/tasks/tool/node-js) task.
-
-## npm
-
-_Version:_ 6.9.0
-_Environment:_
+
+## npm
+
+_Version:_ 6.13.4
+_Environment:_
* PATH: contains location of npm.cmd
-
-## Java Development Kit
-
-#### 1.8.0_222
-
-_Environment:_
-* JAVA_HOME: location of JDK
-* PATH: contains bin folder of JDK
-
-#### 1.7.0_232
-
-_Location:_ C:\Program Files\Java\zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64
-
-#### 11.0.4
-
-_Location:_ C:\Program Files\Java\zulu-11-azure-jdk_11.33.15-11.0.4-win_x64
-
-## Ant
-
-_Version:_ 1.10.5
-_Environment:_
-* PATH: contains location of ant.cmd
-* ANT_HOME: location of ant.cmd
+
+## Java Development Kit
+
+#### 1.8.0_222
+
+_Environment:_
+* JAVA_HOME: location of JDK
+* PATH: contains bin folder of JDK
+
+#### 1.7.0_232
+
+_Location:_ C:\Program Files\Java\zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64
+
+#### 1.7.0_232
+
+_Location:_
+
+## Ant
+
+_Version:_ 1.10.5
+_Environment:_
+* PATH: contains location of ant.cmd
+* ANT_HOME: location of ant.cmd
* COBERTURA_HOME: location of cobertura-2.1.1.jar
-
-## Maven
-
-_Version:_ 3.6.2
-_Environment:_
-* PATH: contains location of mvn.bat
+
+## Maven
+
+_Version:_ 3.6.2
+_Environment:_
+* PATH: contains location of mvn.bat
* M2_HOME: Maven installation root
-
-## Gradle
-
-_Version:_ 5.6.2
-_Environment:_
+
+## Gradle
+
+_Version:_ 6.0.1
+_Environment:_
* PATH: contains location of gradle
-
-## Cmake
-
-_Version:_ 3.15.4
-_Environment:_
+
+## Cmake
+
+_Version:_ 3.16.2
+_Environment:_
* PATH: contains location of cmake.exe
-
-## SQL Server Data Tier Application Framework (x64)
-
+
+## SQL Server Data Tier Application Framework (x64)
+
_Version:_ 15.0.4538.1
-
-## .NET Core
-
-The following runtimes and SDKs are installed:
-
-_Environment:_
-* PATH: contains location of dotnet.exe
-
+
+## .NET Core
+
+The following runtimes and SDKs are installed:
+
+_Environment:_
+* PATH: contains location of dotnet.exe
+
_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.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
* 2.2.300 C:\Program Files\dotnet\sdk\2.2.300
+* 2.2.207 C:\Program Files\dotnet\sdk\2.2.207
* 2.2.206 C:\Program Files\dotnet\sdk\2.2.206
* 2.2.205 C:\Program Files\dotnet\sdk\2.2.205
* 2.2.204 C:\Program Files\dotnet\sdk\2.2.204
* 2.2.203 C:\Program Files\dotnet\sdk\2.2.203
* 2.2.202 C:\Program Files\dotnet\sdk\2.2.202
+* 2.2.110 C:\Program Files\dotnet\sdk\2.2.110
* 2.2.109 C:\Program Files\dotnet\sdk\2.2.109
* 2.2.108 C:\Program Files\dotnet\sdk\2.2.108
* 2.2.107 C:\Program Files\dotnet\sdk\2.2.107
@@ -601,15 +586,20 @@ _SDK:_
* 2.2.102 C:\Program Files\dotnet\sdk\2.2.102
* 2.2.101 C:\Program Files\dotnet\sdk\2.2.101
* 2.2.100 C:\Program Files\dotnet\sdk\2.2.100
+* 2.1.803 C:\Program Files\dotnet\sdk\2.1.803
* 2.1.802 C:\Program Files\dotnet\sdk\2.1.802
* 2.1.801 C:\Program Files\dotnet\sdk\2.1.801
* 2.1.701 C:\Program Files\dotnet\sdk\2.1.701
* 2.1.700 C:\Program Files\dotnet\sdk\2.1.700
+* 2.1.608 C:\Program Files\dotnet\sdk\2.1.608
+* 2.1.607 C:\Program Files\dotnet\sdk\2.1.607
* 2.1.606 C:\Program Files\dotnet\sdk\2.1.606
* 2.1.605 C:\Program Files\dotnet\sdk\2.1.605
* 2.1.604 C:\Program Files\dotnet\sdk\2.1.604
* 2.1.603 C:\Program Files\dotnet\sdk\2.1.603
* 2.1.602 C:\Program Files\dotnet\sdk\2.1.602
+* 2.1.511 C:\Program Files\dotnet\sdk\2.1.511
+* 2.1.510 C:\Program Files\dotnet\sdk\2.1.510
* 2.1.509 C:\Program Files\dotnet\sdk\2.1.509
* 2.1.508 C:\Program Files\dotnet\sdk\2.1.508
* 2.1.507 C:\Program Files\dotnet\sdk\2.1.507
@@ -627,8 +617,14 @@ _SDK:_
* 2.1.300 C:\Program Files\dotnet\sdk\2.1.300
* 2.1.202 C:\Program Files\dotnet\sdk\2.1.202
* 1.1.14 C:\Program Files\dotnet\sdk\1.1.14
-
+
_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.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
* 2.2.5 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.5
@@ -645,6 +641,8 @@ _Runtime:_
* 2.1.4 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.4
* 2.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.3
* 2.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.2
+* 2.1.15 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.15
+* 2.1.14 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.14
* 2.1.13 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.13
* 2.1.12 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.12
* 2.1.11 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.11
@@ -654,77 +652,89 @@ _Runtime:_
* 2.0.9 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.9
* 1.1.13 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.13
* 1.0.16 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.16
-
-## Mysql
-
-_Version:_ 5.7.21.0
-_Environment:_
+
+## Mysql
+
+_Version:_ 5.7.21.0
+_Environment:_
* PATH: contains location of mysql.exe
-
-## SQLPS
-
+
+## SQLPS
+
_Version:_ 1.0
-
-## SQLServer PS
-
-_Version:_ 21.1.18179
-
-## MinGW
-
-_Version:_ 8.1.0
-_Environment:_
+
+## SQLServer PS
+
+_Version:_ 21.1.18218
+
+## MinGW
+
+_Version:_ 8.1.0
+_Environment:_
* PATH: contains location of the MinGW 'bin' directory
-
-## TypeScript
-
-_Version:_ Version 3.6.3
-
-## Miniconda
-
-_Version:_ conda 4.6.14
-_Environment:_
+
+## TypeScript
+
+_Version:_ Version 3.7.5
+
+## Miniconda
+
+_Version:_ conda 4.6.14
+_Environment:_
* CONDA: contains location of the root of the Miniconda installation
-
-## Azure CosmosDb Emulator
-
-_Version:_ 2.5.7.0
+
+## Azure CosmosDb Emulator
+
+_Version:_ 2.7.2.0
_Location:_ C:\Program Files\Azure Cosmos DB Emulator\
-
-## 7zip
-
+
+## 7zip
+
_Version:_ 19.00
-
-## Mercurial
-
+
+## Mercurial
+
_Version:_
-
-## jq
-
+
+## jq
+
_Version:_ jq-1.6
-
-## Inno Setup
-
-_Version:_ 6.0.2
-
-## Perl
-
+
+## Inno Setup
+
+_Version:_ 6.0.3
+
+## Perl
+
_Version:_ v5.26.2
-
-## GitVersion
-
-_Version:_ 5.0.1.0
-
-## OpenSSL
-
-_Version:_ 1.1.1c at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.1.1c at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
_Version:_ 1.1.1b at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
-
-## Cloud Foundry CLI
-
-_Version:_ 6.46.1
-
-## Vcpkg
-
-_Version:_ 2019.09.12-nohash
-_Environment:_
-* PATH: contains location of the vcpkg directory
+
+## GitVersion
+
+_Version:_ 5.1.3.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
+
+## Cloud Foundry CLI
+
+_Version:_ 6.49.0
+
+## Vcpkg
+
+_Version:_ 2020.01.17-nohash
+_Environment:_
+* PATH: contains location of the vcpkg directory
* VCPKG_INSTALLATION_ROOT: root directory of the vcpkg installation
+
+## Kubectl
+
+_Version:_ Client Version: v1.17.1
+_Environment:_
+* PATH: contains location of kubectl.exe
+
+## Kind
+
+_Version:_ v0.5.1
+_Environment:_
+* PATH: contains location of kind.exe
diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json
index 6875b7f07..1b411672e 100644
--- a/images/win/Windows2019-Azure.json
+++ b/images/win/Windows2019-Azure.json
@@ -16,6 +16,7 @@
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"vm_size": "Standard_DS4_v2",
+ "root_folder": "C:",
"image_folder": "C:\\image",
"commit_file": "C:\\image\\commit.txt",
"metadata_file": "C:\\image\\metadata.txt",
@@ -24,9 +25,10 @@
"install_user": "installer",
"install_password": null,
"capture_name_prefix": "packer",
- "image_version": "dev"
+ "image_version": "dev",
+ "github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}"
},
- "sensitive-variables": ["install_password", "ssh_password", "client_secret"],
+ "sensitive-variables": ["install_password", "ssh_password", "client_secret", "github_feed_token"],
"builders": [
{
"name": "vhd",
@@ -36,7 +38,7 @@
"subscription_id": "{{user `subscription_id`}}",
"object_id": "{{user `object_id`}}",
"tenant_id": "{{user `tenant_id`}}",
- "os_disk_size_gb": "128",
+ "os_disk_size_gb": "256",
"location": "{{user `location`}}",
"vm_size": "{{user `vm_size`}}",
"resource_group_name": "{{user `resource_group`}}",
@@ -238,6 +240,27 @@
},
{
"type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
+ ]
+ },
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
+ ]
+ },
+ {
+ "type": "file",
+ "source": "{{template_dir}}/toolcache-2019.json",
+ "destination": "{{user `root_folder`}}/toolcache.json"
+ },
+ {
+ "type": "powershell",
+ "environment_vars":[
+ "GITHUB_FEED_TOKEN={{ user `github_feed_token` }}",
+ "ROOT_FOLDER={{user `root_folder`}}"
+ ],
"scripts":[
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1"
]
@@ -300,12 +323,24 @@
"{{ template_dir }}/scripts/Installers/Install-Chrome.ps1"
]
},
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Install-Edge.ps1"
+ ]
+ },
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Firefox.ps1"
]
},
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Install-Selenium.ps1"
+ ]
+ },
{
"type": "powershell",
"scripts":[
@@ -332,12 +367,6 @@
"{{ template_dir }}/scripts/Installers/Validate-WinAppDriver.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
- ]
- },
{
"type": "powershell",
"scripts":[
@@ -420,17 +449,11 @@
"{{ template_dir }}/scripts/Installers/Install-AzureCosmosDbEmulator.ps1"
]
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
- ]
- },
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0",
- "BOOST_DEFAULT=1.69.0"
+ "BOOST_VERSIONS=1.69.0,1.72.0",
+ "BOOST_DEFAULT=1.72.0"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Boost.ps1"
@@ -532,6 +555,9 @@
},
{
"type": "powershell",
+ "environment_vars":[
+ "ROOT_FOLDER={{user `root_folder`}}"
+ ],
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1"
]
@@ -561,8 +587,8 @@
{
"type": "powershell",
"environment_vars": [
- "BOOST_VERSIONS=1.69.0",
- "BOOST_DEFAULT=1.69.0"
+ "BOOST_VERSIONS=1.69.0,1.72.0",
+ "BOOST_DEFAULT=1.72.0"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Boost.ps1"
@@ -604,6 +630,12 @@
"{{ template_dir }}/scripts/Installers/Validate-Chrome.ps1"
]
},
+ {
+ "type": "powershell",
+ "scripts":[
+ "{{ template_dir }}/scripts/Installers/Validate-Edge.ps1"
+ ]
+ },
{
"type": "powershell",
"scripts":[
diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md
index aa6f5a417..47089227a 100644
--- a/images/win/Windows2019-Readme.md
+++ b/images/win/Windows2019-Readme.md
@@ -1,47 +1,46 @@
-# Hosted Windows 2019
+# Windows Server 2019
+
+The following software is installed on machines with the 20200116.1 update.
+
+Components marked with **\*** have been upgraded since the previous version of the image.
-The following software is installed on machines in the **Hosted Windows 2019** (v20191009.1) pool.
-
-Components marked with **\*** have been upgraded since the previous version of the image.
-
-
-## Chocolatey
-
-_Version:_ 0.10.15
-_Environment:_
+
+## Chocolatey
+
+_Version:_ 0.10.15
+_Environment:_
* PATH: contains location for choco.exe
-
-## Docker
-
-_Version:_ 19.03.3
-_Environment:_
+
+## Docker
+
+_Version:_ 19.03.5
+_Environment:_
* PATH: contains location of docker.exe
-
-## Docker-compose
-
-_Version:_ 1.24.0
-_Environment:_
+
+## Docker-compose
+
+_Version:_ 1.25.0
+_Environment:_
* PATH: contains location of docker-compose.exe
-
-## Powershell Core
-
-_Version:_ 6.2.3
-
-
-## Docker images
-
+
+## Powershell Core
+
+_Version:_ 6.2.3
+
+## Docker images
+
The following container images have been cached:
-* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 (Digest: sha256:e0f80fbc8bb2f39bd0eaba78b314444863ca3efec3f0e40a1b63aa501a36ef01)
-* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 (Digest: sha256:c7219ea532e525bc34402027f7974a128746ebec79a31462bc8b59a9dfa6b3d8)
-* mcr.microsoft.com/windows/servercore:ltsc2019 (Digest: sha256:404e0ee336a063619d1e93a2446061cf19cb3068bacb1775f5613e3b54e527e1)
-* mcr.microsoft.com/windows/nanoserver:1809 (Digest: sha256:da46159cc4409ccdfe8e25d1e2b2e2705c31d956122d39ea89733b19d76340dd)
+* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 (Digest: sha256:fb04ac71d809a06bd695d7647cff47a1c5ceb2e2b11c1ed7dd32283158522e36)
+* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 (Digest: sha256:85433707a809232402827a359c80d0aa08226e7833aa2914be2113e694d2b6ae)
+* mcr.microsoft.com/windows/servercore:ltsc2019 (Digest: sha256:cc6d6da31014dceab4daee8b5a8da4707233f4ef42eaf071e45cee044ac738f4)
+* mcr.microsoft.com/windows/nanoserver:1809 (Digest: sha256:26b82db3e866b52c2dd8a56706ccbc4084a6fa4eb9e62f1da4e04a4532248ca0)
* microsoft/aspnetcore-build:1.0-2.0 (Digest: sha256:9ecc7c5a8a7a11dca5f08c860165646cb30d084606360a3a72b9cbe447241c0c)
-
-## Visual Studio 2019 Enterprise
-
-_Version:_ VisualStudio/16.3.3+29403.142
-_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
-
+
+## Visual Studio 2019 Enterprise
+
+_Version:_ VisualStudio/16.4.3+29709.97
+_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
+
The following workloads and components are installed with Visual Studio 2019:
* Component.Dotfuscator
* Component.Linux.CMake
@@ -71,28 +70,33 @@ The following workloads and components are installed with Visual Studio 2019:
* Microsoft.VisualStudio.Component.TestTools.CodedUITest
* Microsoft.VisualStudio.Component.TestTools.WebLoadTest
* Microsoft.VisualStudio.Component.UWP.VC.ARM64
+* Microsoft.VisualStudio.Component.VC.140
* Microsoft.VisualStudio.Component.VC.ATL.ARM
* Microsoft.VisualStudio.Component.VC.ATLMFC
* Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre
* Microsoft.VisualStudio.Component.VC.CLI.Support
* Microsoft.VisualStudio.Component.VC.CMake.Project
* Microsoft.VisualStudio.Component.VC.DiagnosticTools
+* Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset
* Microsoft.VisualStudio.Component.VC.MFC.ARM
* Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre
* Microsoft.VisualStudio.Component.VC.MFC.ARM64
* Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre
+* Microsoft.VisualStudio.Component.VC.Redist.MSM
* Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre
* Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre
* Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre
* Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest
* Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest
* Microsoft.VisualStudio.Component.VC.v141
+* Microsoft.VisualStudio.Component.VC.v141.x86.x64
* Microsoft.VisualStudio.Component.Windows10SDK.16299
* Microsoft.VisualStudio.Component.Windows10SDK.17134
* Microsoft.VisualStudio.Component.Windows10SDK.17763
* Microsoft.VisualStudio.Component.Windows10SDK.18362
* Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices
* Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools
+* Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang
* Microsoft.VisualStudio.ComponentGroup.Web.CloudTools
* Microsoft.VisualStudio.Workload.Azure
* Microsoft.VisualStudio.Workload.Data
@@ -111,454 +115,439 @@ The following workloads and components are installed with Visual Studio 2019:
* Microsoft.VisualStudio.Workload.Python
* Microsoft.VisualStudio.Workload.Universal
* Microsoft.VisualStudio.Workload.VisualStudioExtension
-
-## WIX Tools
-
-_Toolset Version:_ 3.11.4516
-_WIX Toolset Visual Studio Extension Version:_ 1.0.0.4
-_Environment:_
+
+## WIX Tools
+
+_Toolset Version:_ 3.11.4516
+_WIX Toolset Visual Studio Extension Version:_ 1.0.0.4
+_Environment:_
* WIX: Installation root of WIX
-
-## .NET 4.8
-
+
+## .NET 4.8
+
_Version:_ 4.8.03761
-
-## Windows Driver Kit
-
-_Version:_ 10.0.17763.0
-
-## Azure Service Fabric
-
-_SDK Version:_ 3.3.617.9590
-_Runtime Version:_ 6.4.617.9590
-
-## WinAppDriver
-
+
+## Windows Driver Kit
+
+_Version:_ 10.0.18362.0
+
+## Azure Service Fabric
+
+_SDK Version:_ 4.0.457.9590
+_Runtime Version:_ 7.0.457.9590
+
+## WinAppDriver
+
_Version:_ 1.1.1809.18001
+
+## Android SDK Build Tools
-## Android SDK Build Tools
+#### 29.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.2
-#### 29.0.2
+#### 29.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.2
+#### 28.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.3
-#### 29.0.0
+#### 28.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\29.0.0
+#### 28.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.1
-#### 28.0.3
+#### 28.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.3
+#### 27.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.3
-#### 28.0.2
+#### 27.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.2
+#### 27.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.1
-#### 28.0.1
+#### 27.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.1
+#### 26.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.3
-#### 28.0.0
+#### 26.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.0
+#### 26.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.1
-#### 27.0.3
+#### 26.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.3
+#### 25.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.3
-#### 27.0.2
+#### 25.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.2
+#### 25.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.1
-#### 27.0.1
+#### 25.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.1
+#### 24.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.3
-#### 27.0.0
+#### 24.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\27.0.0
+#### 24.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.1
-#### 26.0.3
+#### 24.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.3
+#### 23.0.3
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.3
-#### 26.0.2
+#### 23.0.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.2
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.2
+#### 23.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.1
-#### 26.0.1
+#### 22.0.1
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\22.0.1
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.1
+#### 21.1.2
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\21.1.2
-#### 26.0.0
+#### 20.0.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\20.0.0
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\26.0.0
+#### 19.1.0
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\19.1.0
-#### 25.0.3
+
+## Android SDK Platforms
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.3
+#### 10 (API 29)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-29
-#### 25.0.2
+#### 9 (API 28)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-28
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.2
+#### 8.1.0 (API 27)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-27
-#### 25.0.1
+#### 8.0.0 (API 26)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-26
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.1
+#### 7.1.1 (API 25)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-25
-#### 25.0.0
+#### 7.0 (API 24)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-24
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.0
+#### 6.0 (API 23)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-23
-#### 24.0.3
+#### 5.1.1 (API 22)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-22
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.3
+#### 5.0.1 (API 21)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-21
-#### 24.0.2
+#### 4.4.2 (API 19)
+
+_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-19
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.2
-
-#### 24.0.1
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.1
-
-#### 24.0.0
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\24.0.0
-
-#### 23.0.3
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.3
-
-#### 23.0.2
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.2
-
-#### 23.0.1
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.1
-
-#### 22.0.1
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\22.0.1
-
-#### 21.1.2
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\21.1.2
-
-#### 20.0.0
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\20.0.0
-
-#### 19.1.0
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\build-tools\19.1.0
-
-
-## Android SDK Platforms
-
-#### 10 (API 29)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-29
-
-#### 9 (API 28)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-28
-
-#### 8.1.0 (API 27)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-27
-
-#### 8.0.0 (API 26)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-26
-
-#### 7.1.1 (API 25)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-25
-
-#### 7.0 (API 24)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-24
-
-#### 6.0 (API 23)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-23
-
-#### 5.1.1 (API 22)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-22
-
-#### 5.0.1 (API 21)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-21
-
-#### 4.4.2 (API 19)
-
-_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-19
-
-
-## Azure/AzureRM Powershell modules
-
-#### 2.1.0
-
-This version is installed and is available via Get-Module -ListAvailable
-
-#### 3.8.0
-
-This version is saved but not installed
-_Location:_ C:\Modules\azurerm_3.8.0\AzureRM\3.8.0\AzureRM.psd1
-
-#### 4.2.1
-
-This version is saved but not installed
-_Location:_ C:\Modules\azurerm_4.2.1\AzureRM\4.2.1\AzureRM.psd1
-
-#### 5.1.1
-
-This version is saved but not installed
-_Location:_ C:\Modules\azurerm_5.1.1\AzureRM\5.1.1\AzureRM.psd1
-
-#### 6.7.0
-
-This version is saved but not installed
-_Location:_ C:\Modules\azurerm_6.7.0\AzureRM\6.7.0\AzureRM.psd1
-
-
-## TLS12
-
-_Version:_ 1.2
+
+## TLS12
+
+_Version:_ 1.2
_Description:_ .NET has been configured to use TLS 1.2 by default
-
-## Azure CLI
-
-_Version:_ 2.0.74
-_Environment:_
+
+## Azure CLI
+
+_Version:_ 2.0.80
+_Environment:_
* PATH: contains location of az.cmd
-
-## Azure DevOps Cli extension
-
-_Version:_ azure-devops 0.13.0
-
-## Python
-
-_Version:_ 2.7.16 (x64)
_Version:_ 2.7.16 (x86)
_Version:_ 3.4.4 (x64)
_Version:_ 3.4.4 (x86)
_Version:_ 3.5.4 (x64)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x64)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.4 (x64)
_Version:_ 3.7.4 (x86)
-
-## PyPy
-
-_Version:_ 2.7.13 (x86)
_Version:_ 3.5.3 (x86)
-
-## Ruby
-
-_Version:_ 2.4.6 (x64)
_Version:_ 2.5.5 (x64)
_Version:_ 2.6.3 (x64)
-
-## Python (64 bit)
-
-#### Python 3.7.4
-_Environment:_
-* PATH: contains location of python.exe
-
-#### Python 2.7.16
-
+
+## Azure DevOps Cli extension
+
+_Version:_ azure-devops 0.16.0
+
+## Python
+
+_Version:_ 2.7.17 (x64)
_Version:_ 3.5.4 (x64)
_Version:_ 3.6.8 (x64)
_Version:_ 3.7.6 (x64)
_Version:_ 3.8.1 (x64)
+
+## Python
+
+_Version:_ 2.7.17 (x64)
_Version:_ 3.5.4 (x64)
_Version:_ 3.6.8 (x64)
_Version:_ 3.7.6 (x64)
_Version:_ 3.8.1 (x64)
_Version:_ 2.7.17 (x86)
_Version:_ 3.5.4 (x86)
_Version:_ 3.6.8 (x86)
_Version:_ 3.7.6 (x86)
_Version:_ 3.8.1 (x86)
+
+## PyPy
+
+_Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
+
+## Ruby
+
+_Version:_ 2.4.9 (x64)
_Version:_ 2.5.7 (x64)
_Version:_ 2.6.5 (x64)
_Version:_ 2.7.0 (x64)
+
+## Python (64 bit)
+
+#### Python 3.7.6
+_Environment:_
+* PATH: contains location of python.exe
+
+#### Python 2.7.17
+
_Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64
-
-## Git
-
-_Version:_ 2.23.0
-_Environment:_
+
+## Git
+
+_Version:_ 2.25.0
+_Environment:_
* PATH: contains location of git.exe
-
-## Git Large File Storage (LFS)
-
-_Version:_ 2.8.0
-_Environment:_
-* PATH: contains location of git-lfs.exe
+
+## Git Large File Storage (LFS)
+
+_Version:_ 2.9.2
+_Environment:_
+* PATH: contains location of git-lfs.exe
* GIT_LFS_PATH: location of git-lfs.exe
+
+## Go (x64)
+
+#### 1.10.8
+
+_Environment:_
+* GOROOT_1_10_X64: root directory of the Go 1.10.8 installation
-## Go (x64)
+#### 1.11.12
+
+_Environment:_
+* GOROOT_1_11_X64: root directory of the Go 1.11.12 installation
-#### 1.10.8
-
-_Environment:_
-* GOROOT_1_10_X64: root directory of the Go 1.10.8 installation
-
-#### 1.11.12
-
-_Environment:_
-* GOROOT_1_11_X64: root directory of the Go 1.11.12 installation
-
-#### 1.12.7
-
-_Environment:_
-* PATH: contains the location of go.exe version 1.12.7
-* GOROOT: root directory of the Go 1.12.7 installation
+#### 1.12.7
+
+_Environment:_
+* PATH: contains the location of go.exe version 1.12.7
+* GOROOT: root directory of the Go 1.12.7 installation
* GOROOT_1_12_X64: root directory of the Go 1.12.7 installation
-#### 1.13
-
-_Environment:_
-* GOROOT_1_13_X64: root directory of the Go 1.13 installation
+#### 1.13
+
+_Environment:_
+* GOROOT_1_13_X64: root directory of the Go 1.13 installation
-
-## Boost
-
-####
-
-* PATH: contains the location of Boost version
-* BOOST_ROOT: root directory of the Boost version installation
+
+## Boost
+
+####
+
+* PATH: contains the location of Boost version
+* BOOST_ROOT: root directory of the Boost version installation
* BOOST_ROOT_1_69_0: root directory of the Boost version installation
-
-## PHP (x64)
-
-#### 7.3.10
-
-_Environment:_
-* PATH: contains the location of php.exe version 7.3.10
-* PHPROOT: root directory of the PHP 7.3.10 installation
-
-## Ruby (x64)
-
-#### 2.5.5p157
-_Environment:_
-* Location: C:\hostedtoolcache\windows\Ruby\2.5.5\x64\bin
-* PATH: contains the location of ruby.exe version 2.5.5p157
-
-## Rust (64-bit)
-
-#### 1.38.0
-_Location:_ C:\Rust\.cargo\bin
-_Environment:_
+
+## PHP (x64)
+
+#### 7.4.1
+
+_Environment:_
+* PATH: contains the location of php.exe version 7.4.1
+* PHPROOT: root directory of the PHP 7.4.1 installation
+
+## Ruby (x64)
+
+#### 2.5.7p206
+_Environment:_
+* Location: C:\hostedtoolcache\windows\Ruby\2.5.7\x64\bin
+* PATH: contains the location of ruby.exe version 2.5.7p206
+
+## Rust (64-bit)
+
+#### 1.40.0
+_Location:_ C:\Rust\.cargo\bin
+_Environment:_
* PATH: contains the location of rustc.exe
-
-## Subversion
-
-_Version:_ 1.8.17
-_Environment:_
+
+## Subversion
+
+_Version:_ 1.8.17
+_Environment:_
* PATH: contains location of svn.exe
+
+## sbt
+
-## Google Chrome
+
+## Google Chrome
+
+_version:_
+79.0.3945.130
+
+## Mozilla Firefox
+
+_version:_
+72.0.1
+
+## Selenium Web Drivers
+
+
+#### Chrome Driver
+
+_version:_
+79.0.3945.36
+
+_Environment:_
+* ChromeWebDriver: location of chromedriver.exe
+
+#### Gecko Driver
+
+_version:_
+0.24.0
+
+_Environment:_
+* GeckoWebDriver: location of geckodriver.exe
+
+#### IE Driver
+
+_version:_
+3.8.0.0
+
+_Environment:_
+* IEWebDriver: location of IEDriverServer.exe
-_version:_
-77.0.3865.90
+
+## Node.js
+
+_Version:_ 12.14.1
+_Architecture:_ x64
+_Environment:_
+* PATH: contains location of node.exe
+* Gulp CLI version: 2.2.0 Local version: Unknown
+* Grunt grunt-cli v1.3.2
+* Yarn 1.21.1
-## Mozilla Firefox
-
-_version:_
-69.0.1
-
-## Selenium Web Drivers
-
-
-#### Chrome Driver
-
-_version:_
-77.0.3865.40
-
-_Environment:_
-* ChromeWebDriver: location of chromedriver.exe
-
-#### Gecko Driver
-
-_version:_
-0.24.0
-
-_Environment:_
-* GeckoWebDriver: location of geckodriver.exe
-
-#### IE Driver
-
-_version:_
-3.8.0.0
-
-_Environment:_
-* IEWebDriver: location of IEDriverServer.exe
-
-
-## Node.js
-
-_Version:_ 12.13.0
-_Architecture:_ x64
-_Environment:_
-* PATH: contains location of node.exe
-* Gulp CLI version: 2.2.0 Local version: Unknown
-* Grunt grunt-cli v1.3.2
-* Bower 1.8.8
-* Yarn 1.19.1
-
-> Note: You can install and use another version of Node.js on Microsoft-hosted agent pools using the [Node tool installer](https://docs.microsoft.com/vsts/pipelines/tasks/tool/node-js) task.
-
-## npm
-
-_Version:_ 6.9.0
-_Environment:_
+
+## npm
+
+_Version:_ 6.13.4
+_Environment:_
* PATH: contains location of npm.cmd
-
-## Java Development Kit
-
-#### 1.8.0_222
-
-_Environment:_
-* JAVA_HOME: location of JDK
-* PATH: contains bin folder of JDK
-
-#### 1.7.0_232
-
-_Location:_ C:\Program Files\Java\zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64
-
-#### 11.0.4
-
+
+## Java Development Kit
+
+#### 1.8.0_222
+
+_Environment:_
+* JAVA_HOME: location of JDK
+* PATH: contains bin folder of JDK
+
+#### 1.7.0_232
+
+_Location:_ C:\Program Files\Java\zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64
+
+#### 11.0.4
+
_Location:_ C:\Program Files\Java\zulu-11-azure-jdk_11.33.15-11.0.4-win_x64
-
-## Ant
-
-_Version:_ 1.10.5
-_Environment:_
-* PATH: contains location of ant.cmd
-* ANT_HOME: location of ant.cmd
+
+## Ant
+
+_Version:_ 1.10.5
+_Environment:_
+* PATH: contains location of ant.cmd
+* ANT_HOME: location of ant.cmd
* COBERTURA_HOME: location of cobertura-2.1.1.jar
-
-## Maven
-
-_Version:_ 3.6.2
-_Environment:_
-* PATH: contains location of mvn.bat
+
+## Maven
+
+_Version:_ 3.6.2
+_Environment:_
+* PATH: contains location of mvn.bat
* M2_HOME: Maven installation root
-
-## Gradle
-
-_Version:_ 5.6.2
-_Environment:_
+
+## Gradle
+
+_Version:_ 6.0.1
+_Environment:_
* PATH: contains location of gradle
-
-## Cmake
-
-_Version:_ 3.15.4
-_Environment:_
+
+## Cmake
+
+_Version:_ 3.16.2
+_Environment:_
* PATH: contains location of cmake.exe
-
-## SQL Server Data Tier Application Framework (x64)
-
+
+## SQL Server Data Tier Application Framework (x64)
+
_Version:_ 15.0.4538.1
-
-## .NET Core
-
-The following runtimes and SDKs are installed:
-
-_Environment:_
-* PATH: contains location of dotnet.exe
-
+
+## .NET Core
+
+The following runtimes and SDKs are installed:
+
+_Environment:_
+* PATH: contains location of dotnet.exe
+
_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.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
* 2.2.300 C:\Program Files\dotnet\sdk\2.2.300
+* 2.2.207 C:\Program Files\dotnet\sdk\2.2.207
* 2.2.206 C:\Program Files\dotnet\sdk\2.2.206
* 2.2.205 C:\Program Files\dotnet\sdk\2.2.205
* 2.2.204 C:\Program Files\dotnet\sdk\2.2.204
* 2.2.203 C:\Program Files\dotnet\sdk\2.2.203
* 2.2.202 C:\Program Files\dotnet\sdk\2.2.202
+* 2.2.110 C:\Program Files\dotnet\sdk\2.2.110
* 2.2.109 C:\Program Files\dotnet\sdk\2.2.109
* 2.2.108 C:\Program Files\dotnet\sdk\2.2.108
* 2.2.107 C:\Program Files\dotnet\sdk\2.2.107
@@ -569,15 +558,20 @@ _SDK:_
* 2.2.102 C:\Program Files\dotnet\sdk\2.2.102
* 2.2.101 C:\Program Files\dotnet\sdk\2.2.101
* 2.2.100 C:\Program Files\dotnet\sdk\2.2.100
+* 2.1.803 C:\Program Files\dotnet\sdk\2.1.803
* 2.1.802 C:\Program Files\dotnet\sdk\2.1.802
* 2.1.801 C:\Program Files\dotnet\sdk\2.1.801
* 2.1.701 C:\Program Files\dotnet\sdk\2.1.701
* 2.1.700 C:\Program Files\dotnet\sdk\2.1.700
+* 2.1.608 C:\Program Files\dotnet\sdk\2.1.608
+* 2.1.607 C:\Program Files\dotnet\sdk\2.1.607
* 2.1.606 C:\Program Files\dotnet\sdk\2.1.606
* 2.1.605 C:\Program Files\dotnet\sdk\2.1.605
* 2.1.604 C:\Program Files\dotnet\sdk\2.1.604
* 2.1.603 C:\Program Files\dotnet\sdk\2.1.603
* 2.1.602 C:\Program Files\dotnet\sdk\2.1.602
+* 2.1.511 C:\Program Files\dotnet\sdk\2.1.511
+* 2.1.510 C:\Program Files\dotnet\sdk\2.1.510
* 2.1.509 C:\Program Files\dotnet\sdk\2.1.509
* 2.1.508 C:\Program Files\dotnet\sdk\2.1.508
* 2.1.507 C:\Program Files\dotnet\sdk\2.1.507
@@ -593,9 +587,14 @@ _SDK:_
* 2.1.302 C:\Program Files\dotnet\sdk\2.1.302
* 2.1.301 C:\Program Files\dotnet\sdk\2.1.301
* 2.1.300 C:\Program Files\dotnet\sdk\2.1.300
-
+
_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.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
* 2.2.5 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.5
@@ -612,75 +611,97 @@ _Runtime:_
* 2.1.4 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.4
* 2.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.3
* 2.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.2
+* 2.1.15 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.15
+* 2.1.14 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.14
* 2.1.13 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.13
* 2.1.12 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.12
* 2.1.11 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.11
* 2.1.10 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.10
* 2.1.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.1
* 2.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.0
-
-## Mysql
-
-_Version:_ 5.7.21.0
-_Environment:_
+
+## Mysql
+
+_Version:_ 5.7.21.0
+_Environment:_
* PATH: contains location of mysql.exe
-
-## MinGW
-
-_Version:_ 8.1.0
-_Environment:_
+
+## SQLPS
+
+_Version:_ 1.0
+
+## SQLServer PS
+
+_Version:_ 21.1.18218
+
+## MinGW
+
+_Version:_ 8.1.0
+_Environment:_
* PATH: contains location of the MinGW 'bin' directory
-
-## TypeScript
-
-_Version:_ Version 3.6.3
-
-## Miniconda
-
-_Version:_ conda 4.6.14
-_Environment:_
+
+## TypeScript
+
+_Version:_ Version 3.7.5
+
+## Miniconda
+
+_Version:_ conda 4.6.14
+_Environment:_
* CONDA: contains location of the root of the Miniconda installation
-
-## Azure CosmosDb Emulator
-
-_Version:_ 2.5.7.0
+
+## Azure CosmosDb Emulator
+
+_Version:_ 2.7.2.0
_Location:_ C:\Program Files\Azure Cosmos DB Emulator\
-
-## 7zip
-
+
+## 7zip
+
_Version:_ 19.00
-
-## Mercurial
-
+
+## Mercurial
+
_Version:_
-
-## jq
-
+
+## jq
+
_Version:_ jq-1.6
-
-## Inno Setup
-
-_Version:_ 6.0.2
-
-## Perl
-
+
+## Inno Setup
+
+_Version:_ 6.0.3
+
+## Perl
+
_Version:_ v5.26.2
-
-## GitVersion
-
-_Version:_ 5.0.1.0
-
-## OpenSSL
-
-_Version:_ 1.1.1c at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.1.1c at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
_Version:_ 1.1.1b at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
-
-## Cloud Foundry CLI
-
-_Version:_ 6.46.1
-
-## Vcpkg
-
-_Version:_ 2019.09.12-nohash
-_Environment:_
-* PATH: contains location of the vcpkg directory
+
+## GitVersion
+
+_Version:_ 5.1.3.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
+
+## Cloud Foundry CLI
+
+_Version:_ 6.49.0
+
+## Vcpkg
+
+_Version:_ 2019.09.12-nohash
+_Environment:_
+* PATH: contains location of the vcpkg directory
* VCPKG_INSTALLATION_ROOT: root directory of the vcpkg installation
+
+## Kubectl
+
+_Version:_ Client Version: v1.17.1
+_Environment:_
+* PATH: contains location of kubectl.exe
+
+## Kind
+
+_Version:_ v0.5.1
+_Environment:_
+* PATH: contains location of kind.exe
diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
index 12df84e7a..6e091e7e7 100644
--- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1
+++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
@@ -16,4 +16,6 @@ Export-ModuleMember -Function @(
'Install-EXE'
'Add-ContentToMarkdown'
'Add-SoftwareDetailsToMarkdown'
+ 'Stop-SvcWithErrHandling'
+ 'Set-SvcWithErrHandling'
)
diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
index 12bb373fc..56fac941e 100644
--- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1
+++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
@@ -81,3 +81,82 @@ function Install-EXE
return -1
}
}
+
+function Stop-SvcWithErrHandling
+<#
+.DESCRIPTION
+Function for stopping the Windows Service with error handling
+
+.AUTHOR
+Andrey Mishechkin v-andmis@microsoft.com
+
+.PARAMETER -ServiceName
+The name of stopping service
+
+.PARAMETER -StopOnError
+Switch for stopping the script and exit from PowerShell if one service is absent
+#>
+{
+ param (
+ [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName,
+ [Parameter()] [switch] $StopOnError
+ )
+
+ Process {
+ $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue
+ if (-not $Service) {
+ Write-Warning "[!] Service [$ServiceName] is not found";
+ if ($StopOnError) {
+ exit 1;
+ }
+ }
+ else {
+ Write-Host "Try to stop service [$ServiceName]";
+ try {
+ Stop-Service -Name $ServiceName -Force;
+ $Service.WaitForStatus("Stopped", "00:01:00");
+ Write-Host "Service [$ServiceName] has been stopped successfuly";
+ }
+ catch {
+ Write-Error "[!] Failed to stop service [$ServiceName] with error:"
+ $_ | Out-String | Write-Error;
+ }
+ }
+ }
+}
+
+function Set-SvcWithErrHandling
+<#
+.DESCRIPTION
+Function for setting the Windows Service parameter with error handling
+
+.AUTHOR
+Andrey Mishechkin v-andmis@microsoft.com
+
+.PARAMETER -ServiceName
+The name of stopping service
+
+.PARAMETER -Arguments
+Hashtable for service arguments
+#>
+{
+
+ param (
+ [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName,
+ [Parameter(Mandatory)] [hashtable] $Arguments
+ )
+
+ Process {
+ $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue
+ if (-not $Service) {
+ Write-Warning "[!] Service [$ServiceName] is not found";
+ }
+ try {
+ Set-Service $ServiceName @Arguments;
+ }
+ catch {
+ Write-Error "[!] Failed to set service [$ServiceName] arguments with error:"
+ $_ | Out-String | Write-Error;
+ }
+ }
+}
diff --git a/images/win/scripts/Installers/Download-ToolCache.ps1 b/images/win/scripts/Installers/Download-ToolCache.ps1
index b7a49a285..591f0f1cc 100644
--- a/images/win/scripts/Installers/Download-ToolCache.ps1
+++ b/images/win/scripts/Installers/Download-ToolCache.ps1
@@ -1,51 +1,77 @@
################################################################################
## File: Download-ToolCache.ps1
+## Team: CI-Build
## Desc: Download tool cache
################################################################################
-Function InstallTool
-{
- Param
- (
- [System.Object]$ExecutablePath
+Function Install-NpmPackage {
+ [CmdletBinding()]
+ param(
+ [Parameter(Mandatory=$true)]
+ [System.String] $PackageName,
+ [Parameter(Mandatory=$true)]
+ [System.Uri] $FeedPrefix
)
- Write-Host $ExecutablePath.DirectoryName
- Set-Location -Path $ExecutablePath.DirectoryName
- Get-Location | Write-Host
- if (Test-Path 'tool.zip')
- {
- Expand-Archive 'tool.zip' -DestinationPath '.'
+ Push-Location -Path $env:TEMP
+
+ $FeedUri = $FeedPrefix.AbsoluteUri
+
+ Write-Host "Installing npm $PackageName from ${FeedUri}"
+ npm install $PackageName --registry "${FeedUri}"
+
+ if($LASTEXITCODE) {
+ Write-Host "$PackageName installation failure; Error: ${LASTEXITCODE}"
+
+ exit 1
}
- cmd.exe /c 'install_to_tools_cache.bat'
+
+ Pop-Location
}
-$SourceUrl = "https://vstsagenttools.blob.core.windows.net/tools"
+Function NPMFeed-AuthSetup {
+ param(
+ [Parameter(Mandatory=$true)]
+ [System.String] $AccessToken,
+ [Parameter(Mandatory=$true)]
+ [System.Uri] $FeedPrefix
+ )
+ $FeedHost = $FeedPrefix.Host
+
+ Write-Host "Configure auth for github package registry"
+ $npmrcContent = "//${FeedHost}/:_authToken=${AccessToken}"
+ $npmrcContent | Out-File -FilePath "$($env:TEMP)/.npmrc" -Encoding utf8
+}
+
+$FeedPrefix = "https://npm.pkg.github.com"
+$AccessToken = $env:GITHUB_FEED_TOKEN
+
+# HostedToolCache Path
$Dest = "C:/"
-
$Path = "hostedtoolcache/windows"
-
-$env:Path = "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy;" + $env:Path
-
-Write-Host "Started AzCopy from $SourceUrl to $Dest"
-
-AzCopy /Source:$SourceUrl /Dest:$Dest /S /V /Pattern:$Path
-
$ToolsDirectory = $Dest + $Path
-$current = Get-Location
-Set-Location -Path $ToolsDirectory
-
-Get-ChildItem -Recurse -Depth 4 -Filter install_to_tools_cache.bat | ForEach-Object {
- #In order to work correctly Python 3.4 x86 must be installed after x64, this is achieved by current toolcache catalog structure
- InstallTool($_)
-}
-
-Set-Location -Path $current
-
+# Define AGENT_TOOLSDIRECTORY environment variable
+$env:AGENT_TOOLSDIRECTORY = $ToolsDirectory
setx AGENT_TOOLSDIRECTORY $ToolsDirectory /M
+# Install HostedToolCache tools via NPM
+$ToolVersionsFileContent = Get-Content -Path "$env:ROOT_FOLDER/toolcache.json" -Raw
+$ToolVersions = ConvertFrom-Json -InputObject $ToolVersionsFileContent
+
+NPMFeed-AuthSetup -AccessToken $AccessToken -FeedPrefix $FeedPrefix
+
+$ToolVersions.PSObject.Properties | ForEach-Object {
+ $PackageName = $_.Name
+ $PackageVersions = $_.Value
+ $NpmPackages = $PackageVersions | ForEach-Object { "$PackageName@$_" }
+ foreach($NpmPackage in $NpmPackages) {
+ Install-NpmPackage -PackageName $NpmPackage -FeedPrefix $FeedPrefix
+ }
+}
+
#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"
+cmd.exe /c mklink /d "C:\Python27amd64" "$python2Dir"
\ 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 a076a47af..907f82d93 100644
--- a/images/win/scripts/Installers/Install-Boost.ps1
+++ b/images/win/scripts/Installers/Install-Boost.ps1
@@ -1,28 +1,16 @@
################################################################################
-## File: Install-Boost.ps1
+## File: Set-BoostRoot.ps1
+## Team: CI-Build
## Desc: Install boost using tool cache
################################################################################
-$ToolCache = 'C:\hostedtoolcache\windows\boost'
-$BoostDirectory = Join-Path -Path $env:ProgramFiles -ChildPath "Boost"
-$BoostVersionsToInstall = $env:BOOST_VERSIONS.split(',')
+$BoostDirectory = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "Boost"
+$BoostVersions = $env:BOOST_VERSIONS.split(',')
$BoostDefault = $env:BOOST_DEFAULT
-foreach($BoostVersion in $BoostVersionsToInstall)
+foreach($BoostVersion in $BoostVersions)
{
- $ZipName = Join-Path -Path $ToolCache -ChildPath "boost_${BoostVersion}_msvc-14.1.zip"
-
- if (-Not (Test-Path $ZipName))
- {
- Write-Host "$ZipName not found"
- exit 1
- }
-
- Write-Host "Expanding $ZipName"
-
$BoostInstallationDir = Join-Path -Path $BoostDirectory -ChildPath $BoostVersion
- # Expand-Archive slower for 70% than 7z
- & "$env:ProgramFiles\7-Zip\7z.exe" x $ZipName -o"$BoostDirectory" -y
$EnvBoostPath = "BOOST_ROOT_{0}" -f ($BoostVersion.Replace('.', '_'))
setx $EnvBoostPath $BoostInstallationDir /M | Out-Null
@@ -36,10 +24,3 @@ foreach($BoostVersion in $BoostVersionsToInstall)
setx BOOST_ROOT $BoostInstallationDir /M | Out-Null
}
}
-
-# Removing boost cache folder
-Write-Host "Removing boost cache folder"
-if (Test-Path $ToolCache)
-{
- Remove-Item -Path $ToolCache -Force -Recurse
-}
diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1
index 15a2e1e28..aac913e71 100644
--- a/images/win/scripts/Installers/Install-Chrome.ps1
+++ b/images/win/scripts/Installers/Install-Chrome.ps1
@@ -3,24 +3,40 @@
## Desc: Install Google Chrome
################################################################################
-Import-Module -Name ImageHelpers -Force
+Import-Module -Name ImageHelpers -Force;
-$temp_install_dir = 'C:\Windows\Installer'
-New-Item -Path $temp_install_dir -ItemType Directory -Force
+$ChromeInstallerFile = "chrome_installer.exe";
+$ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}";
+Install-Exe -Url $ChromeInstallerUri -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install")
-Install-MSI -MsiUrl "https://seleniumwebdrivers.blob.core.windows.net/knownchromeversion/googlechromestandaloneenterprise64.msi" -MsiName "googlechromestandaloneenterprise64.msi"
+Write-Host "Adding the firewall rule for Google update blocking";
+New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe";
-New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe"
+$GoogleSvcs = ('gupdate','gupdatem');
+$GoogleSvcs | Stop-SvcWithErrHandling -StopOnError;
+$GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"};
+
+$regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update";
+$regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome";
+($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object {
+ New-Item -Path $_ -Force;
+}
+
+$regGoogleParameters = @(
+ @{ Name = "AutoUpdateCheckPeriodMinutes"; Value = 00000000},
+ @{ Name = "UpdateDefault"; Value = 00000000 },
+ @{ Name = "DisableAutoUpdateChecksCheckboxValue"; Value = 00000001 },
+ @{ Name = "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}"; Value = 00000000 },
+ @{ Path = $regGoogleUpdateChrome; Name = "DefaultBrowserSettingEnabled"; Value = 00000000 }
+)
+
+$regGoogleParameters | ForEach-Object {
+ $Arguments = $_;
+ if (-not ($Arguments.Path)) {
+ $Arguments.Add("Path", $regGoogleUpdatePath);
+ }
+ $Arguments.Add("Force", $true);
+ New-ItemProperty @Arguments;
+}
-Stop-Service -Name gupdate -Force
-Set-Service -Name gupdate -StartupType "Disabled"
-Stop-Service -Name gupdatem -Force
-Set-Service -Name gupdatem -StartupType "Disabled"
-New-Item -Path "HKLM:\SOFTWARE\Policies\Google\Update" -Force
-New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "AutoUpdateCheckPeriodMinutes" -Value 00000000 -Force
-New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "UpdateDefault" -Value 00000000 -Force
-New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "DisableAutoUpdateChecksCheckboxValue" -Value 00000001 -Force
-New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}" -Value 00000000 -Force
-New-Item -Path "HKLM:\SOFTWARE\Policies\Google\Chrome" -Force
-New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Chrome" -Name "DefaultBrowserSettingEnabled" -Value 00000000 -Force
diff --git a/images/win/scripts/Installers/Install-DotnetSDK.ps1 b/images/win/scripts/Installers/Install-DotnetSDK.ps1
index 7bd2573da..f7c9a9e23 100644
--- a/images/win/scripts/Installers/Install-DotnetSDK.ps1
+++ b/images/win/scripts/Installers/Install-DotnetSDK.ps1
@@ -54,7 +54,8 @@ function InstallAllValidSdks()
# Consider all channels except preview/eol channels.
# Sort the channels in ascending order
- $dotnetChannels = $dotnetChannels.'releases-index' | Where-Object { !$_."support-phase".Equals('preview') -and !$_."support-phase".Equals('eol') } | Sort-Object { [Version] $_."channel-version" }
+ # HACK: Explicitly adding eol channel 2.2 for a grace period as this channel is wierdly marked as eol with no higher 2.x channel
+ $dotnetChannels = $dotnetChannels.'releases-index' | Where-Object { (!$_."support-phase".Equals('preview') -and !$_."support-phase".Equals('eol')) -or ($_."channel-version" -eq "2.2") } | Sort-Object { [Version] $_."channel-version" }
# Download installation script.
Invoke-WebRequest -Uri 'https://dot.net/v1/dotnet-install.ps1' -UseBasicParsing -OutFile 'dotnet-install.ps1'
diff --git a/images/win/scripts/Installers/Install-Edge.ps1 b/images/win/scripts/Installers/Install-Edge.ps1
new file mode 100644
index 000000000..e5a641a1b
--- /dev/null
+++ b/images/win/scripts/Installers/Install-Edge.ps1
@@ -0,0 +1,6 @@
+################################################################################
+## File: Install-Edge.ps1
+## Desc: Install latest stable version of Microsoft Edge browser
+################################################################################
+
+choco install microsoft-edge -y
diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1
index f8d2a2e7c..a67d7c998 100644
--- a/images/win/scripts/Installers/Install-Git.ps1
+++ b/images/win/scripts/Installers/Install-Git.ps1
@@ -12,7 +12,6 @@ choco install git -y --package-parameters="/GitAndUnixToolsOnPath /WindowsTermin
# Disable GCM machine-wide
[Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine)
-Add-MachinePathItem "C:\Program Files\Git\mingw64\bin"
-Add-MachinePathItem "C:\Program Files\Git\usr\bin"
Add-MachinePathItem "C:\Program Files\Git\bin"
+
exit 0
diff --git a/images/win/scripts/Installers/Install-Kind.ps1 b/images/win/scripts/Installers/Install-Kind.ps1
index 1c0339099..6093049b3 100644
--- a/images/win/scripts/Installers/Install-Kind.ps1
+++ b/images/win/scripts/Installers/Install-Kind.ps1
@@ -3,7 +3,7 @@
## Desc: Install Kind
################################################################################
-$stableKindTag = "v0.5.1"
+$stableKindTag = "v0.7.0"
$tagToUse = $stableKindTag;
$destFilePath = "C:\ProgramData\kind"
$outFilePath = "C:\ProgramData\kind\kind.exe"
diff --git a/images/win/scripts/Installers/Install-Ruby.ps1 b/images/win/scripts/Installers/Install-Ruby.ps1
index 72ad04309..546a4591e 100644
--- a/images/win/scripts/Installers/Install-Ruby.ps1
+++ b/images/win/scripts/Installers/Install-Ruby.ps1
@@ -17,4 +17,8 @@ $latestRubyBinPath2_5 = Get-ChildItem -Path $toolcacheRubyPath | Sort-Object {[S
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/Install-Selenium.ps1 b/images/win/scripts/Installers/Install-Selenium.ps1
new file mode 100644
index 000000000..ac38c3010
--- /dev/null
+++ b/images/win/scripts/Installers/Install-Selenium.ps1
@@ -0,0 +1,35 @@
+################################################################################
+## File: Install-Selenium.ps1
+## Desc: Install Selenium Server standalone
+################################################################################
+
+# Acquire latest Selenium release number from GitHub API
+$latestReleaseUrl = "https://api.github.com/repos/SeleniumHQ/selenium/releases/latest"
+try {
+ $latestReleaseInfo = Invoke-RestMethod -Uri $latestReleaseUrl
+} catch {
+ Write-Error $_
+ exit 1
+}
+Write-Debug $latestReleaseInfo
+$seleniumVersionString = $latestReleaseInfo.name.Split(" ")[1]
+Write-Debug $seleniumVersionString
+$seleniumVersion = [version]::Parse($seleniumVersionString)
+
+# Download Selenium
+Write-Host "Downloading selenium-server-standalone v$seleniumVersion..."
+
+$seleniumReleaseUrl = "https://selenium-release.storage.googleapis.com/$($seleniumVersion.ToString(2))/selenium-server-standalone-$($seleniumVersion.ToString(3)).jar"
+New-Item -ItemType directory -Path "C:\selenium\"
+$seleniumBinPath = "C:\selenium\selenium-server-standalone.jar"
+try {
+ Invoke-WebRequest -UseBasicParsing -Uri $seleniumReleaseUrl -OutFile $seleniumBinPath
+} catch {
+ Write-Error $_
+ exit 1
+}
+
+Write-Host "Add selenium jar to the environment variables..."
+setx "SELENIUM_JAR_PATH" "$($seleniumBinPath)" /M
+
+exit 0
diff --git a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1
index 3c08977a5..426c20b5b 100644
--- a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1
+++ b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1
@@ -2,16 +2,83 @@
## File: Install-SeleniumWebDrivers.ps1
## Desc: Install Selenium Web Drivers
################################################################################
+$DestinationPath = "$($env:SystemDrive)\";
+$DriversZipFile = "SeleniumWebDrivers.zip"
+Write-Host "Destination path: [$DestinationPath]";
+Write-Host "Selenium drivers download and install...";
+try {
+ Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/${DriversZipFile}" -OutFile $DriversZipFile;
+}
+catch {
+ Write-Error "[!] Failed to download $DriverZipFile";
+ exit 1;
+}
-Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/SeleniumWebDrivers.zip" -OutFile SeleniumWebDrivers.zip
+Expand-Archive -Path $DriversZipFile -DestinationPath $DestinationPath -Force;
+Remove-Item $DriversZipFile;
-Expand-Archive -Path SeleniumWebDrivers.zip -DestinationPath "C:\" -Force
+$ChromeDriverPath = "$DestinationPath\SeleniumWebDrivers\ChromeDriver";
+Write-Host "Chrome driver path: [$ChromeDriverPath]";
+Remove-Item -Path "$ChromeDriverPath\*" -Force;
-Remove-Item SeleniumWebDrivers.zip
+# Reinstall Chrome Web Driver
+$RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
+$ChromePath = (Get-ItemProperty "$RegistryPath\chrome.exe").'(default)';
+[version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion;
+Write-Host "Chrome version: [$ChromeVersion]";
-setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M
-setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M
-setx ChromeWebDriver "C:\SeleniumWebDrivers\ChromeDriver" /M
+$ChromeDriverVersionUri = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$($ChromeVersion.Major).$($ChromeVersion.Minor).$($ChromeVersion.Build)";
+Write-Host "Chrome driver version Uri [$ChromeDriverVersionUri]";
+Write-Host "Getting the Chrome driver version...";
+$ChromeDriverVersion = Invoke-WebRequest -Uri $ChromeDriverVersionUri;
+Write-Host "Current Chrome driver version: [$ChromeDriverVersion]";
-exit 0
+$ChromeDriverZipDownloadUri = "https://chromedriver.storage.googleapis.com/$($ChromeDriverVersion.ToString())/chromedriver_win32.zip";
+Write-Host "Chrome driver zip file download Uri: [$ChromeDriverZipDownloadUri]";
+$DestFile= "$ChromeDriverPath\chromedriver_win32.zip";
+$ChromeDriverVersion.Content | Out-File -FilePath "$ChromeDriverPath\versioninfo.txt" -Force;
+
+Write-Host "Chrome driver download....";
+Invoke-WebRequest -Uri $ChromeDriverZipDownloadUri -OutFile $DestFile;
+
+Write-Host "Chrome driver install....";
+Expand-Archive -Path "$ChromeDriverPath\chromedriver_win32.zip" -DestinationPath $ChromeDriverPath -Force;
+Remove-Item -Path "$ChromeDriverPath\chromedriver_win32.zip" -Force;
+
+# Install Microsoft Edge Web Driver
+Write-Host "Microsoft Edge driver download...."
+$EdgeDriverPath = "$DestinationPath\SeleniumWebDrivers\EdgeDriver"
+if (-not (Test-Path -Path $EdgeDriverPath)) {
+ New-Item -Path $EdgeDriverPath -ItemType "directory"
+}
+
+$EdgePath = (Get-ItemProperty "$RegistryPath\msedge.exe").'(default)'
+[version]$EdgeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($EdgePath).ProductVersion
+$EdgeDriverVersionUrl = "https://msedgedriver.azureedge.net/LATEST_RELEASE_$($EdgeVersion.Major)"
+$EdgeDriverVersionFile = "$EdgeDriverPath\versioninfo.txt"
+Invoke-WebRequest -Uri $EdgeDriverVersionUrl -OutFile $EdgeDriverVersionFile
+
+$EdgeDriverLatestVersion = Get-Content -Path $EdgeDriverVersionFile
+$EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/edgedriver_win64.zip"
+$DestFile = "$EdgeDriverPath\edgedriver_win64.zip"
+Invoke-WebRequest -Uri $EdgeDriverDownloadUrl -OutFile $DestFile
+
+Write-Host "Microsoft Edge driver install...."
+Expand-Archive -Path $DestFile -DestinationPath $EdgeDriverPath -Force
+Remove-Item -Path $DestFile -Force
+
+Write-Host "Setting the environment variables"
+
+setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M;
+setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M;
+setx ChromeWebDriver "$ChromeDriverPath" /M;
+setx EdgeWebDriver "$EdgeDriverPath" /M;
+
+$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\';
+$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path';
+$PathValue += ";$ChromeDriverPath\";
+$PathValue += ";$EdgeDriverPath\";
+Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue;
+
+exit 0;
diff --git a/images/win/scripts/Installers/Install-WindowsUpdates.ps1 b/images/win/scripts/Installers/Install-WindowsUpdates.ps1
index 040ee8e02..eec8ef0d7 100644
--- a/images/win/scripts/Installers/Install-WindowsUpdates.ps1
+++ b/images/win/scripts/Installers/Install-WindowsUpdates.ps1
@@ -6,5 +6,5 @@
Write-Host "Run windows updates"
Install-Module -Name PSWindowsUpdate -Force -AllowClobber
-Get-WUInstall -WindowsUpdate -AcceptAll -UpdateType Software -IgnoreReboot
-Get-WUInstall -MicrosoftUpdate -AcceptAll -IgnoreUserInput -IgnoreReboot
+Get-WUInstall -WindowsUpdate -AcceptAll -Install -UpdateType Software -IgnoreReboot
+Get-WUInstall -MicrosoftUpdate -AcceptAll -Install -IgnoreUserInput -IgnoreReboot
diff --git a/images/win/scripts/Installers/Validate-AzureModules.ps1 b/images/win/scripts/Installers/Validate-AzureModules.ps1
index abe152780..6927cce69 100644
--- a/images/win/scripts/Installers/Validate-AzureModules.ps1
+++ b/images/win/scripts/Installers/Validate-AzureModules.ps1
@@ -49,7 +49,7 @@ $SoftwareName = "Azure/AzureRM Powershell modules"
$Description = @"
#### $($DefaultModule.Version)
-This version is installed and is available via `Get-Module -ListAvailable`
+This version is installed and is available via ``Get-Module -ListAvailable``
"@
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 43629e7af..9c97c28dc 100644
--- a/images/win/scripts/Installers/Validate-Boost.ps1
+++ b/images/win/scripts/Installers/Validate-Boost.ps1
@@ -13,10 +13,10 @@ function Validate-BoostVersion
$ReleasePath = Join-Path -Path $BoostRootPath -ChildPath $BoostRelease
- if ((Test-Path "$ReleasePath\b2.exe") -and (Test-Path "$ReleasePath\bjam.exe"))
+ if (Test-Path "$ReleasePath\b2.exe")
{
Write-Host "Boost.Build $BoostRelease is successfully installed"
- Write-Host "Boost.Jam $BoostRelease is successfully installed"
+
return
}
@@ -25,7 +25,7 @@ function Validate-BoostVersion
}
# Verify that Boost is on the path
-if ((Get-Command -Name 'b2') -and (Get-Command -Name 'bjam'))
+if (Get-Command -Name 'b2')
{
Write-Host "Boost is on the path"
}
@@ -54,15 +54,15 @@ $tmplMarkRoot = @"
$SoftwareName = 'Boost'
$Description = New-Object System.Text.StringBuilder
-$BoostRootDirectory = Join-Path -Path $env:ProgramFiles -ChildPath "Boost"
+$BoostRootDirectory = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "Boost"
$BoostVersionsToInstall = $env:BOOST_VERSIONS.split(",")
-foreach($Boost in $BoostVersionsToInstall)
+foreach($BoostVersion in $BoostVersionsToInstall)
{
- Validate-BoostVersion -BoostRootPath $BoostRootDirectory -BoostRelease $Boost
- $BoostVersionTag = "BOOST_ROOT_{0}" -f $Boost.Replace('.', '_')
+ Validate-BoostVersion -BoostRootPath $BoostRootDirectory -BoostRelease $BoostVersion
+ $BoostVersionTag = "BOOST_ROOT_{0}" -f $BoostVersion.Replace('.', '_')
- if($boost -eq $env:BOOST_DEFAULT)
+ if($BoostVersion -eq $env:BOOST_DEFAULT)
{
$null = $Description.AppendLine(($tmplMarkRoot -f $BoostVersion, $BoostVersionTag))
}
diff --git a/images/win/scripts/Installers/Validate-Edge.ps1 b/images/win/scripts/Installers/Validate-Edge.ps1
new file mode 100644
index 000000000..7ca51da59
--- /dev/null
+++ b/images/win/scripts/Installers/Validate-Edge.ps1
@@ -0,0 +1,25 @@
+################################################################################
+## File: Validate-Edge.ps1
+## Desc: Validate Microsoft Edge installation.
+################################################################################
+
+$RegistryKey = "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\msedge.exe"
+if (Test-Path $RegistryKey)
+{
+ $SoftwareName = "Microsoft Edge"
+ $VersionInfo = (Get-Item (Get-ItemProperty $RegistryKey).'(Default)').VersionInfo
+ $VersionInfo
+ $Description = @"
+_version:_
+$($VersionInfo.FileVersion)
+"@
+
+ Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
+
+ exit 0
+}
+else
+{
+ Write-Host "Microsoft Edge is not installed."
+ exit 1
+}
diff --git a/images/win/scripts/Installers/Validate-Ruby.ps1 b/images/win/scripts/Installers/Validate-Ruby.ps1
index 73e11a08b..88347ee1b 100644
--- a/images/win/scripts/Installers/Validate-Ruby.ps1
+++ b/images/win/scripts/Installers/Validate-Ruby.ps1
@@ -40,6 +40,7 @@ else
$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)"
@@ -48,6 +49,7 @@ $Description = @"
_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-SeleniumWebDrivers.ps1 b/images/win/scripts/Installers/Validate-SeleniumWebDrivers.ps1
index 44c69ef2e..9a68c72bd 100644
--- a/images/win/scripts/Installers/Validate-SeleniumWebDrivers.ps1
+++ b/images/win/scripts/Installers/Validate-SeleniumWebDrivers.ps1
@@ -6,24 +6,36 @@
$IEDriverPath = $env:IEWebDriver
$GeckoDriverPath = $env:GeckoWebDriver
$ChromeDriverPath = $env:ChromeWebDriver
+$EdgeDriverPath = $env:EdgeWebDriver
+
+if (
+ ($IEDriverPath -like "C:\SeleniumWebDrivers\IEDriver") -and
+ ($GeckoDriverPath -like "C:\SeleniumWebDrivers\GeckoDriver") -and
+ ($ChromeDriverPath -like "C:\SeleniumWebDrivers\ChromeDriver") -and
+ ($EdgeDriverPath -like "C:\SeleniumWebDrivers\EdgeDriver")
+)
+{
-if(($IEDriverPath -like "C:\SeleniumWebDrivers\IEDriver") -and ($GeckoDriverPath -like "C:\SeleniumWebDrivers\GeckoDriver") -and ($ChromeDriverPath -like "C:\SeleniumWebDrivers\ChromeDriver"))
-{
-
Write-Host "IEDriver installed at "
- (Get-Item "C:\SeleniumWebDrivers\IEDriver\IEDriverServer.exe").VersionInfo
-
-
+ (Get-Item "$IEDriverPath\IEDriverServer.exe").VersionInfo
+
+
Write-Host "Gecko Driver installed at "
- (Get-Item "C:\SeleniumWebDrivers\GeckoDriver\geckodriver.exe").VersionInfo
-
-
+ (Get-Item "$GeckoDriverPath\geckodriver.exe").VersionInfo
+
+
Write-Host "Chrome Driver installed at "
- (Get-Item "C:\SeleniumWebDrivers\ChromeDriver\chromedriver.exe").VersionInfo
-
- $chromedriverversion = Get-Content -Path "C:\SeleniumWebDrivers\ChromeDriver\versioninfo.txt"
- $geckodriverversion = Get-Content -Path "C:\SeleniumWebDrivers\GeckoDriver\versioninfo.txt"
- $iedriverversion = Get-Content -Path "C:\SeleniumWebDrivers\IEDriver\versioninfo.txt"
+ (Get-Item "$ChromeDriverPath\chromedriver.exe").VersionInfo
+
+
+ Write-Host "Edge Driver installed at "
+ (Get-Item "$EdgeDriverPath\msedgedriver.exe").VersionInfo
+
+ $versionFileName = "versioninfo.txt";
+ $chromedriverversion = Get-Content -Path "$IEDriverPath\$versionFileName"
+ $geckodriverversion = Get-Content -Path "$GeckoDriverPath\$versionFileName"
+ $iedriverversion = Get-Content -Path "$ChromeDriverPath\$versionFileName"
+ $edgedriverversion = Get-Content -Path "$EdgeDriverPath\$versionFileName"
# Adding description of the software to Markdown
$SoftwareName = "Selenium Web Drivers"
@@ -54,10 +66,18 @@ $iedriverversion
_Environment:_
* IEWebDriver: location of IEDriverServer.exe
+#### Microsoft Edge Driver
+
+_version:_
+$edgedriverversion
+
+_Environment:_
+* EdgeWebDriver: location of msedgedriver.exe
+
"@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
-
+
exit 0
}
else
diff --git a/images/win/scripts/Installers/Validate-ToolCache.ps1 b/images/win/scripts/Installers/Validate-ToolCache.ps1
index 832cf13c3..3e3b095f2 100644
--- a/images/win/scripts/Installers/Validate-ToolCache.ps1
+++ b/images/win/scripts/Installers/Validate-ToolCache.ps1
@@ -12,6 +12,67 @@ function GetChildFolders {
return Get-ChildItem -Path $Path -Directory -Name
}
+function Get-ToolcachePackages {
+ $toolcachePath = Join-Path $env:ROOT_FOLDER "toolcache.json"
+ return Get-Content -Raw $toolcachePath | ConvertFrom-Json
+}
+
+$toolcachePackages = (Get-ToolcachePackages).PSObject.Properties | ForEach-Object {
+ $packageNameParts = $_.Name.Split("-")
+ return [PSCustomObject] @{
+ ToolName = $packageNameParts[1]
+ Versions = $_.Value
+ Architecture = $packageNameParts[3]
+ }
+}
+
+function GetToolsByName {
+ param (
+ [Parameter(Mandatory = $True)]
+ [string]$SoftwareName
+ )
+ return $toolcachePackages | Where-Object { $_.ToolName -eq $SoftwareName }
+}
+
+function RunTestsByPath {
+ param (
+ [Parameter(Mandatory = $True)]
+ [string[]]$ExecTests,
+ [Parameter(Mandatory = $True)]
+ [string]$Path,
+ [Parameter(Mandatory = $True)]
+ [string]$SoftwareName,
+ [Parameter(Mandatory = $True)]
+ [string]$SoftwareVersion,
+ [Parameter(Mandatory = $True)]
+ [string]$SoftwareArchitecture
+ )
+
+ foreach ($test in $ExecTests)
+ {
+ if (Test-Path "$Path\$test")
+ {
+ Write-Host "$SoftwareName($test) $SoftwareVersion($SoftwareArchitecture) is successfully installed:"
+ Write-Host (& "$Path\$test" --version)
+ }
+ else
+ {
+ Write-Host "$SoftwareName($test) $SoftwareVersion($SoftwareArchitecture) is not installed"
+ exit 1
+ }
+ }
+}
+
+function GetMarkdownDescription {
+ param (
+ [Parameter(Mandatory = $True)]
+ [string]$SoftwareVersion,
+ [Parameter(Mandatory = $True)]
+ [string]$SoftwareArchitecture
+ )
+ return "_Version:_ $SoftwareVersion ($SoftwareArchitecture)
"
+}
+
function ToolcacheTest {
param (
[Parameter(Mandatory = $True)]
@@ -19,51 +80,50 @@ function ToolcacheTest {
[Parameter(Mandatory = $True)]
[string[]]$ExecTests
)
- if (Test-Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName")
+
+ $softwarePath = "$env:AGENT_TOOLSDIRECTORY\$SoftwareName"
+
+ if (-Not (Test-Path $softwarePath))
{
- $description = ""
- [array]$versions = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName"
- if ($versions.count -gt 0){
- foreach ($version in $versions)
- {
- $architectures = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version"
-
- Write-Host "$SoftwareName version - $version : $([system.String]::Join(",", $architectures))"
-
- foreach ($arch in $architectures)
- {
- $path = "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version\$arch"
- foreach ($test in $ExecTests)
- {
- if (Test-Path "$path\$test")
- {
- Write-Host "$SoftwareName($test) $version($arch) is successfully installed:"
- Write-Host (& "$path\$test" --version)
- }
- else
- {
- Write-Host "$SoftwareName($test) $version ($arch) is not installed"
- exit 1
- }
- }
-
- $description += "_Version:_ $version ($arch)
"
- }
- }
-
- Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $description
- }
- else
- {
- Write-Host "$env:AGENT_TOOLSDIRECTORY\$SoftwareName does not include any folders"
- exit 1
- }
- }
- else
- {
- Write-Host "$env:AGENT_TOOLSDIRECTORY\$SoftwareName does not exist"
+ Write-Host "$softwarePath does not exist"
exit 1
}
+
+ [array]$installedVersions = GetChildFolders -Path $softwarePath
+ if ($installedVersions.count -eq 0)
+ {
+ Write-Host "$softwarePath does not include any folders"
+ exit 1
+ }
+
+ $markdownDescription = ""
+ $tools = GetToolsByName -SoftwareName $SoftwareName
+ foreach($tool in $tools)
+ {
+ foreach ($version in $tool.Versions)
+ {
+ $foundVersion = $installedVersions | where { $_.StartsWith($version) }
+ if ($foundVersion -eq $null)
+ {
+ Write-Host "$softwarePath\$version.* was not found"
+ exit 1
+ }
+
+ $installedArchitecture = GetChildFolders -Path "$softwarePath\$foundVersion"
+ $requiredArchitecture = $tool.Architecture
+ if (-Not ($installedArchitecture -Contains $requiredArchitecture))
+ {
+ Write-Host "$softwarePath\$foundVersion does not include the $requiredArchitecture architecture"
+ exit 1
+ }
+
+ $path = "$softwarePath\$foundVersion\$requiredArchitecture"
+ RunTestsByPath -ExecTests $ExecTests -Path $path -SoftwareName $SoftwareName -SoftwareVersion $foundVersion -SoftwareArchitecture $requiredArchitecture
+
+ $markdownDescription += GetMarkdownDescription -SoftwareVersion $foundVersion -SoftwareArchitecture $requiredArchitecture
+ }
+ }
+ Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $markdownDescription
}
# Python test
diff --git a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1
index 335719005..e22d9da8d 100644
--- a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1
+++ b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1
@@ -119,9 +119,9 @@ wmic logicaldisk get size,freespace,caption
# Adding description of the software to Markdown
$Content = @"
-# Azure Pipelines Hosted VS2017 image
+# Windows Server 2016
-The following software is installed on machines in the Azure Pipelines **Hosted VS2017** (v$env:ImageVersion) pool.
+The following software is installed on machines with the $env:ImageVersion update.
Components marked with **\*** have been upgraded since the previous version of the image.
diff --git a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1
index 83087f706..09567e71a 100644
--- a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1
+++ b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1
@@ -118,9 +118,9 @@ wmic logicaldisk get size,freespace,caption
# Adding description of the software to Markdown
$Content = @"
-# Azure Pipelines Hosted Windows 2019 with VS2019 image
+# Windows Server 2019
-The following software is installed on machines in the Azure Pipelines **Hosted Windows 2019 with VS2019** (v$env:ImageVersion) pool.
+The following software is installed on machines with the $env:ImageVersion update.
Components marked with **\*** have been upgraded since the previous version of the image.
diff --git a/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1 b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1
index 59a192d52..ac76288b8 100644
--- a/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1
+++ b/images/win/scripts/Installers/Windows2019/Install-VS2019.ps1
@@ -113,6 +113,7 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + `
'--add Microsoft.VisualStudio.Component.Windows10SDK.17134 ' + `
'--add Microsoft.VisualStudio.Component.Windows10SDK.17763 ' + `
'--add Microsoft.VisualStudio.Component.Windows10SDK.18362 ' + `
+ '--add Microsoft.VisualStudio.Component.WinXP ' + `
'--add Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices ' + `
'--add Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools ' + `
'--add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang ' + `
diff --git a/images/win/toolcache-2016.json b/images/win/toolcache-2016.json
new file mode 100644
index 000000000..8db575c23
--- /dev/null
+++ b/images/win/toolcache-2016.json
@@ -0,0 +1,17 @@
+{
+ "@actions/toolcache-python-windows-x64": [
+ "2.7", "3.5", "3.6", "3.7", "3.8"
+ ],
+ "@actions/toolcache-python-windows-x86": [
+ "2.7", "3.5", "3.6", "3.7", "3.8"
+ ],
+ "@actions/toolcache-ruby-windows-x64": [
+ "2.4", "2.5", "2.6", "2.7"
+ ],
+ "@actions/toolcache-pypy-windows-x86": [
+ "2", "3"
+ ],
+ "@actions/toolcache-boost-windows-msvc-14.1-x32-x64": [
+ "1.69", "1.72"
+ ]
+}
\ No newline at end of file
diff --git a/images/win/toolcache-2019.json b/images/win/toolcache-2019.json
new file mode 100644
index 000000000..4f946cfaf
--- /dev/null
+++ b/images/win/toolcache-2019.json
@@ -0,0 +1,20 @@
+{
+ "@actions/toolcache-python-windows-x64": [
+ "2.7", "3.5", "3.6", "3.7", "3.8"
+ ],
+ "@actions/toolcache-python-windows-x86": [
+ "2.7", "3.5", "3.6", "3.7", "3.8"
+ ],
+ "@actions/toolcache-ruby-windows-x64": [
+ "2.4", "2.5", "2.6", "2.7"
+ ],
+ "@actions/toolcache-pypy-windows-x86": [
+ "2", "3"
+ ],
+ "@actions/toolcache-boost-windows-msvc-14.1-x32-x64": [
+ "1.69"
+ ],
+ "@actions/toolcache-boost-windows-msvc-14.2-x32-x64": [
+ "1.72"
+ ]
+}
\ No newline at end of file
diff --git a/triage-rules.yml b/triage-rules.yml
index c0fba5ee8..20d1edce6 100644
--- a/triage-rules.yml
+++ b/triage-rules.yml
@@ -25,7 +25,7 @@ rules:
- valueFor: '**Area for Triage**'
contains: 'Apple'
addLabels: ['Area: Apple']
- assign: ['AlenaSviridenko']
+ assign: ['sergey-akhalkov']
# Area: Artifacts
- valueFor: '**Area for Triage**'
@@ -67,7 +67,7 @@ rules:
- valueFor: '**Area for Triage**'
contains: 'Git'
addLabels: ['Area: Git']
- assign: ['alepauly','kaylangan']
+ assign: ['alepauly','thejoebourneidentity']
# Area: Go
- valueFor: '**Area for Triage**'
@@ -103,7 +103,7 @@ rules:
- valueFor: '**Area for Triage**'
contains: 'PHP'
addLabels: ['Area: PHP']
- assign: ['alepauly', 'kaylangan']
+ assign: ['alepauly', 'thejoebourneidentity']
# Area: Python
- valueFor: '**Area for Triage**'
@@ -115,13 +115,13 @@ rules:
- valueFor: '**Area for Triage**'
contains: 'Ruby'
addLabels: ['Area: Ruby']
- assign: ['madhurig']
+ assign: ['zachariahcox']
# Area: Rust
- valueFor: '**Area for Triage**'
contains: 'Rust'
addLabels: ['Area: Rust']
- assign: ['AlenaSviridenko']
+ assign: ['sergey-akhalkov']
# Area: Scala
- valueFor: '**Area for Triage**'
@@ -157,7 +157,7 @@ rules:
- valueFor: '**Area for Triage**'
contains: 'Xamarin'
addLabels: ['Area: Xamarin']
- assign: ['AlenaSviridenko']
+ assign: ['sergey-akhalkov']
# Types
- valueFor: '**Question, Bug, or Feature?**'
@@ -189,4 +189,4 @@ tags:
- noneIn: ['bug', 'enhancement', 'question']
addLabels: ['needs triage']
- noneMatch: '\s*Area:\s*([^]*)'
- addLabels: ['needs triage']
\ No newline at end of file
+ addLabels: ['needs triage']