Merge branch 'master' into v-dmshib/update-gem-latest
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
# Hosted Ubuntu 1604 Image (Ubuntu 16.04.6 LTS)
|
||||
The following software is installed on machines in the Hosted Ubuntu 1604 (20191202.1) pool
|
||||
The following software is installed on machines in the Hosted Ubuntu 1604 (20200102.1) pool
|
||||
***
|
||||
- 7-Zip 9.20
|
||||
- Ansible (ansible 2.9.1)
|
||||
- Ansible (ansible 2.9.2)
|
||||
- AzCopy (azcopy 7.3.0-netcore)
|
||||
- Azure CLI (azure-cli 2.0.77)
|
||||
- Azure CLI (azure-cli 2.0.78)
|
||||
- Azure CLI (azure-devops 0.16.0)
|
||||
- Basic CLI:
|
||||
- curl
|
||||
@@ -29,7 +29,7 @@ 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.16.310 Python/2.7.12 Linux/4.15.0-1064-azure botocore/1.13.46)
|
||||
- build-essential
|
||||
- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042730.123 (branches/release_60))
|
||||
- CMake (cmake version 3.12.4)
|
||||
@@ -84,26 +84,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.1)
|
||||
- Firefox (Mozilla Firefox 71.0)
|
||||
- GNU C++ 7.4.0
|
||||
- Git (2.24.0)
|
||||
- Git Large File Storage (LFS) (2.9.1)
|
||||
- Git (2.24.1)
|
||||
- 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.88 )
|
||||
- Chromedriver (ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}))
|
||||
- Selenium server standalone
|
||||
- Google Cloud SDK (274.0.1)
|
||||
- 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,8 +115,8 @@ 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.38.0 (rel))
|
||||
- ImageMagick
|
||||
- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_242")
|
||||
- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_232")
|
||||
@@ -122,53 +124,54 @@ compiled using version 3.0.0.0 of the Cabal library )
|
||||
- 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))
|
||||
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
|
||||
- Kind (v0.5.1)
|
||||
- kubectl (Client Version: v1.16.3)
|
||||
- kubectl (Client Version: v1.17.0)
|
||||
- helm (Client: v2.16.1+gbbdfe5e)
|
||||
- Leiningen (Leiningen 2.9.1 on Java 1.8.0_232 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.6.0.161 (tarball Tue Dec 10 10:36:47 UTC 2019))
|
||||
- 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.0)
|
||||
- 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.4)
|
||||
- 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 ))
|
||||
- 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.1 2019-11-01 17:20:17)
|
||||
- PHPUnit (PHPUnit 7.5.17 by Sebastian Bergmann and contributors.)
|
||||
- PHPUnit (PHPUnit 7.5.18 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.1)
|
||||
- sbt (1.3.6)
|
||||
- Sphinx Open Source Search Server
|
||||
- Subversion (svn, version 1.9.3 (r1718519))
|
||||
- Terraform (Terraform v0.12.16)
|
||||
- Terraform (Terraform v0.12.18)
|
||||
- Vcpkg 2019.09.12-unknownhash
|
||||
- Zeit Now CLI (16.6.0)
|
||||
- Zeit Now CLI (16.7.0)
|
||||
- Google Repository 58
|
||||
- Google Play services 49
|
||||
- Google APIs 24
|
||||
@@ -231,14 +234,16 @@ the
|
||||
- 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 (Digest: sha256:49f77fd32e8e796f85581a8d2321c2a9f1b084e1f8b9baa02cb28bce49563ad5)
|
||||
- node:12 (Digest: sha256:f490ebb9c7d5dcf1a8a1e4d3b3a65e133be44d26abb66815ca1612ef69410c51)
|
||||
- buildpack-deps:stretch (Digest: sha256:d095aae2ecefdc786823e02b2cb0abc62b432202a49abd716c12cce37aee702b)
|
||||
- debian:9 (Digest: sha256:85c4668abb4f26e913152ba8fd04fca5f1c2345d3e2653855e6bb0acf461ed50)
|
||||
- debian:8 (Digest: sha256:8fc7649643ca1acd3940706613ea7b170762cfce6e7955a6afb387aa40e9f9ea)
|
||||
- node:10-alpine (Digest: sha256:8d664f80270a63e0734d38420e97e9f9764a0e9184383640973bded21bfa1382)
|
||||
- node:12-alpine (Digest: sha256:452cad05f6fd2a6fe03da8b9230c9c4ad356d205e00c1a9c29020c14ac5679f8)
|
||||
- alpine:3.10 (Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a)
|
||||
- jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e)
|
||||
- alpine:3.9 (Digest: sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a)
|
||||
@@ -251,6 +256,8 @@ the
|
||||
- Python 3.6.9
|
||||
- Python 3.7.5
|
||||
- Python 3.8.0
|
||||
- PyPy 2.7.13
|
||||
- PyPy 3.6.9
|
||||
- Ruby:
|
||||
- Ruby 2.4.6
|
||||
- Ruby 2.5.5
|
||||
@@ -259,6 +266,4 @@ the
|
||||
- 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
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Hosted Ubuntu 1804 Image (Ubuntu 18.04.3 LTS)
|
||||
The following software is installed on machines in the Hosted Ubuntu 1804 (v20191202.1) pool
|
||||
The following software is installed on machines in the Hosted Ubuntu 1804 (v20200102.1) pool
|
||||
***
|
||||
- 7-Zip 16.02
|
||||
- Ansible (ansible 2.9.1)
|
||||
- Ansible (ansible 2.9.2)
|
||||
- AzCopy (azcopy 7.3.0-netcore)
|
||||
- Azure CLI (azure-cli 2.0.77)
|
||||
- Azure CLI (azure-cli 2.0.78)
|
||||
- Azure CLI (azure-devops 0.16.0)
|
||||
- Basic CLI:
|
||||
- curl
|
||||
@@ -29,7 +29,7 @@ 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.16.310 Python/2.7.17 Linux/5.0.0-1027-azure botocore/1.13.46)
|
||||
- build-essential
|
||||
- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042703.125 (branches/release_60))
|
||||
- CMake (cmake version 3.12.4)
|
||||
@@ -86,24 +86,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.1)
|
||||
- Firefox (Mozilla Firefox 71.0)
|
||||
- GNU C++ 7.4.0
|
||||
- Git (2.24.0)
|
||||
- Git Large File Storage (LFS) (2.9.1)
|
||||
- Git (2.24.1)
|
||||
- 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.88 )
|
||||
- Chromedriver (ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}))
|
||||
- Selenium server standalone
|
||||
- Google Cloud SDK (274.0.1)
|
||||
- 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 +115,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.38.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 (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.0.1
|
||||
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
|
||||
- Kind (v0.5.1)
|
||||
- kubectl (Client Version: v1.17.0)
|
||||
- helm (Client: v2.16.1+gbbdfe5e)
|
||||
- Leiningen (Leiningen 2.9.1 on Java 1.8.0_232 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.6.0.161 (tarball Tue Dec 10 10:36:32 UTC 2019))
|
||||
- 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.0)
|
||||
- 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.4)
|
||||
- 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 ))
|
||||
- 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.1 2019-11-01 17:20:17)
|
||||
- PHPUnit (PHPUnit 7.5.17 by Sebastian Bergmann and contributors.)
|
||||
- PHPUnit (PHPUnit 7.5.18 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.1)
|
||||
- sbt (1.3.6)
|
||||
- Sphinx Open Source Search Server
|
||||
- Subversion (svn, version 1.9.7 (r1800392))
|
||||
- Terraform (Terraform v0.12.16)
|
||||
- Terraform (Terraform v0.12.18)
|
||||
- Vcpkg 2019.09.12-unknownhash
|
||||
- Zeit Now CLI (16.6.0)
|
||||
- Zeit Now CLI (16.7.0)
|
||||
- Google Repository 58
|
||||
- Google Play services 49
|
||||
- Google APIs 24
|
||||
@@ -222,14 +226,16 @@ the
|
||||
- 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 (Digest: sha256:49f77fd32e8e796f85581a8d2321c2a9f1b084e1f8b9baa02cb28bce49563ad5)
|
||||
- node:12 (Digest: sha256:f490ebb9c7d5dcf1a8a1e4d3b3a65e133be44d26abb66815ca1612ef69410c51)
|
||||
- buildpack-deps:stretch (Digest: sha256:d095aae2ecefdc786823e02b2cb0abc62b432202a49abd716c12cce37aee702b)
|
||||
- debian:9 (Digest: sha256:85c4668abb4f26e913152ba8fd04fca5f1c2345d3e2653855e6bb0acf461ed50)
|
||||
- debian:8 (Digest: sha256:8fc7649643ca1acd3940706613ea7b170762cfce6e7955a6afb387aa40e9f9ea)
|
||||
- node:10-alpine (Digest: sha256:8d664f80270a63e0734d38420e97e9f9764a0e9184383640973bded21bfa1382)
|
||||
- node:12-alpine (Digest: sha256:452cad05f6fd2a6fe03da8b9230c9c4ad356d205e00c1a9c29020c14ac5679f8)
|
||||
- alpine:3.10 (Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a)
|
||||
- jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e)
|
||||
- alpine:3.9 (Digest: sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a)
|
||||
@@ -242,14 +248,14 @@ the
|
||||
- Python 3.6.9
|
||||
- Python 3.7.5
|
||||
- Python 3.8.0
|
||||
- PyPy 2.7.13
|
||||
- PyPy 3.6.9
|
||||
- Ruby:
|
||||
- Ruby 2.4.6
|
||||
- Ruby 2.5.5
|
||||
- Ruby 2.6.3
|
||||
- Python (Python 2.7.15+)
|
||||
- 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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 "***"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
@@ -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 "***"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'))"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -43,6 +43,7 @@ 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"
|
||||
@@ -52,7 +53,7 @@ if ! command -v chromedriver; then
|
||||
fi
|
||||
|
||||
echo "Lastly, documenting what we added to the metadata file"
|
||||
DocumentInstalledItem "Chromedriver ($(chromedriver --version))"
|
||||
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
|
||||
@@ -61,7 +62,7 @@ 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
|
||||
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"
|
||||
@@ -70,8 +71,9 @@ if [ ! -f "$SELENIUM_JAR_NAME" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mv "selenium-server-standalone-$SELENIUM_VERSION.jar" "/usr/share/java/selenium-server-standalone.jar"
|
||||
echo "CLASSPATH=/usr/share/java/selenium-server-standalone.jar:.:$CLASSPATH" | tee -a /etc/environment
|
||||
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"
|
||||
DocumentInstalledItem "Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)"
|
||||
|
||||
+21
-27
@@ -10,21 +10,23 @@ source $HELPER_SCRIPTS/document.sh
|
||||
# Fail out if any setups fail
|
||||
set -e
|
||||
|
||||
# Download hosted tool cache
|
||||
AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
||||
mkdir $AGENT_TOOLSDIRECTORY
|
||||
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;
|
||||
chmod -R 777 $AGENT_TOOLSDIRECTORY
|
||||
|
||||
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} --registry=${TOOLCACHE_REGISTRY}
|
||||
done;
|
||||
done;
|
||||
|
||||
DocumentInstalledItem "Python:"
|
||||
@@ -33,22 +35,14 @@ 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;
|
||||
done;
|
||||
|
||||
DocumentInstalledItem "PyPy:"
|
||||
pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy)
|
||||
for pypy in $pypys; do
|
||||
DocumentInstalledItemIndent "PyPy $pypy"
|
||||
done;
|
||||
@@ -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"
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"toolcache-python-ubuntu-1604-x64": [
|
||||
"2.7", "3.5", "3.6", "3.7", "3.8"
|
||||
],
|
||||
"toolcache-ruby-ubuntu-1604-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"toolcache-pypy-ubuntu-1604-x64": [
|
||||
"2", "3"
|
||||
],
|
||||
"toolcache-boost-ubuntu-1604-x64": [
|
||||
"1.69"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"toolcache-python-ubuntu-1804-x64": [
|
||||
"2.7", "3.5", "3.6", "3.7", "3.8"
|
||||
],
|
||||
"toolcache-ruby-ubuntu-1804-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"toolcache-pypy-ubuntu-1804-x64": [
|
||||
"2", "3"
|
||||
],
|
||||
"toolcache-boost-ubuntu-1804-x64": [
|
||||
"1.69"
|
||||
]
|
||||
}
|
||||
@@ -20,8 +20,10 @@
|
||||
"helper_script_folder": "/imagegeneration/helpers",
|
||||
"vm_size": "Standard_DS2_v2",
|
||||
"capture_name_prefix": "packer",
|
||||
"image_version": "dev"
|
||||
"image_version": "dev",
|
||||
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/"
|
||||
},
|
||||
"sensitive-variables": ["client_secret"],
|
||||
"builders": [
|
||||
{
|
||||
"type": "azure-arm",
|
||||
@@ -167,19 +169,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`}}",
|
||||
"TOOLCACHE_REGISTRY={{user `toolcache_registry`}}",
|
||||
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
|
||||
@@ -20,8 +20,10 @@
|
||||
"helper_script_folder": "/imagegeneration/helpers",
|
||||
"vm_size": "Standard_DS2_v2",
|
||||
"capture_name_prefix": "packer",
|
||||
"image_version": "dev"
|
||||
"image_version": "dev",
|
||||
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/"
|
||||
},
|
||||
"sensitive-variables": ["client_secret"],
|
||||
"builders": [
|
||||
{
|
||||
"type": "azure-arm",
|
||||
@@ -170,19 +172,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`}}",
|
||||
"TOOLCACHE_REGISTRY={{user `toolcache_registry`}}",
|
||||
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
title: GitHub Hosted Github Mojave 10.15 VM Image Updates
|
||||
description: Software used on build machines
|
||||
date: Week 51
|
||||
date: Week 2
|
||||
---
|
||||
|
||||
#### Xcode 11.1 set by default
|
||||
#### 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
|
||||
|
||||
@@ -19,29 +19,29 @@ date: Week 51
|
||||
- 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
|
||||
- Node.js v12.14.0
|
||||
- NVM 0.33.11
|
||||
- NVM - Installed node versions:
|
||||
v6.17.1 *
|
||||
v8.16.2 *
|
||||
v10.17.0 *
|
||||
v12.13.1 *
|
||||
v13.3.0 *
|
||||
v8.17.0 *
|
||||
v10.18.0 *
|
||||
v12.14.0 *
|
||||
v13.5.0 *
|
||||
- PowerShell 6.2.3
|
||||
- Python 2.7.17
|
||||
- Python 3.7.5
|
||||
- Python 3.7.6
|
||||
- Ruby -2.6.5p114
|
||||
- .NET SDK 2.0.0 3.0.100 3.0.101
|
||||
- Go 1.13.4
|
||||
- Go 1.13.5
|
||||
|
||||
### Package Management
|
||||
|
||||
- Bundler 2.0.2
|
||||
- Bundler 2.1.3
|
||||
- Carthage 0.34.0
|
||||
- CocoaPods 1.8.4
|
||||
- Homebrew 2.2.0
|
||||
- NPM 6.12.1
|
||||
- Yarn 1.19.2
|
||||
- Homebrew 2.2.2
|
||||
- NPM 6.13.4
|
||||
- Yarn 1.21.1
|
||||
- NuGet 5.3.1.6268
|
||||
- pip 19.3.1
|
||||
- Miniconda 4.7.12
|
||||
@@ -54,17 +54,18 @@ date: Week 51
|
||||
### 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)
|
||||
- Git 2.24.1
|
||||
- Git LFS: git-lfs/2.9.2 (GitHub; darwin amd64; go 1.13.5)
|
||||
- GNU Wget 1.20.3
|
||||
- Subversion (SVN) 1.13.0
|
||||
- GNU parallel 20191122
|
||||
- GNU parallel 20191222
|
||||
|
||||
### Tools
|
||||
|
||||
- fastlane 2.137.0
|
||||
- App Center CLI 2.3.2
|
||||
- Azure-Cli 2.0.77
|
||||
- fastlane 2.139.0
|
||||
- App Center CLI 2.3.3
|
||||
- Azure-Cli 2.0.78
|
||||
- CMake 3.16.2
|
||||
|
||||
### Pre-cached tools
|
||||
|
||||
@@ -81,11 +82,15 @@ date: Week 51
|
||||
- 2.5.5
|
||||
- 2.6.3
|
||||
|
||||
### Browsers
|
||||
- Google Chrome 79.0.3945.88
|
||||
- ChromeDriver 79.0.3945.36
|
||||
|
||||
### Xcode
|
||||
|
||||
| Version | Build | Path |
|
||||
|------------------------|---------|----------------------------------|
|
||||
| 11.3_beta | 11C24b | /Applications/Xcode_11.3_beta.app|
|
||||
| 11.3 | 11C29 | /Applications/Xcode_11.3.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 |
|
||||
@@ -97,29 +102,29 @@ date: Week 51
|
||||
- Nomad CLI 3.0.6
|
||||
- Nomad CLI IPA 0.14.3
|
||||
- xcpretty 0.3.0
|
||||
- xctool 0.3.6
|
||||
- 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 |
|
||||
| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3 |
|
||||
| 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 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3 |
|
||||
| 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 |
|
||||
| iOS Simulator 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3 |
|
||||
| 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 |
|
||||
| tvOS Simulator 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3 |
|
||||
| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
|
||||
| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1 |
|
||||
| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3 |
|
||||
| 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 |
|
||||
| watchOS Simulator 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3 |
|
||||
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3 |
|
||||
|
||||
### Installed Simulators
|
||||
|
||||
@@ -129,23 +134,15 @@ date: Week 51
|
||||
|---------|---------------------------------|------------|
|
||||
| iOS 13.0 (17A577a) | 11 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.1 (17A844) | 11.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.2 (17B102) | 11.2, 11.2.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| tvOS 11.4 (15L576)<br>tvOS 12.0 (16J5283n)<br>tvOS 12.1 (16J602)<br>tvOS 12.2 (16L225)<br>tvOS 12.4 (16M567)<br>tvOS 13.0 (17J559)<br>tvOS 13.2 (17K90) | 11.0, 11.1<br>11.2, 11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| watchOS 6.0 (17R566)<br><br>watchOS 6.1 (17S80) | 11.0<br>11.1<br>11.2, 11.2.1 | Apple Watch Series 4 40mm<br>Apple Watch Series 4 44mm<br>Apple Watch Series 5 40mm<br>Apple Watch Series 5 44mm |
|
||||
| iOS 13.2 (17B102) <br> iOS 13.3 (17C45) | 11.2, 11.2.1 <br> 11.3 | iPhone 8 <br> iPhone 8 Plus <br> iPhone 11 <br> iPhone 11 Pro <br> iPhone 11 Pro Max <br> iPad Pro (9.7-inch) <br> iPad (7th generation) <br> iPad Pro <br> iPad Pro (12.9-inch) (3rd generation) <br> iPad Air (3rd generation) |
|
||||
| tvOS 13.0 (17J559)<br>tvOS 13.2 (17K90)<br>tvOS 13.3 (17K446) | 11.2, 11.2.1<br> 11.3 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| watchOS 6.0 (17R566)<br><br>watchOS 6.1 (17S80)<br>watchOS 6.1.1 (17S445) | 11.0<br>11.1<br>11.2, 11.2.1<br> 11.3 | Apple Watch Series 4 40mm<br>Apple Watch Series 4 44mm<br>Apple Watch Series 5 40mm<br>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 |
|
||||
|
||||
@@ -210,7 +207,7 @@ date: Week 51
|
||||
| lldb | 2.3.3614996 |
|
||||
| ndk-bundle | 18.1.5063045 |
|
||||
| ProGuard | 5.3.3 |
|
||||
| Android Emulator | 29.2.11 |
|
||||
| Android Emulator | 29.3.2 |
|
||||
|
||||
### Google APIs
|
||||
|
||||
@@ -234,7 +231,7 @@ date: Week 51
|
||||
|
||||
### Visual Studio for Mac
|
||||
|
||||
- 8.3.10.2
|
||||
- 8.3.11.1
|
||||
|
||||
|
||||
### Mono
|
||||
|
||||
@@ -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",
|
||||
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/"
|
||||
},
|
||||
"sensitive-variables": ["install_password", "ssh_password", "client_secret"],
|
||||
"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.json",
|
||||
"destination": "{{user `root_folder`}}/toolcache.json"
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"TOOLCACHE_REGISTRY={{ user `toolcache_registry` }}",
|
||||
"ROOT_FOLDER={{user `root_folder`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1"
|
||||
]
|
||||
@@ -336,6 +360,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-Firefox.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Selenium.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -362,12 +392,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-WinAppDriver.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -450,12 +474,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-AzureCosmosDbEmulator.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars": [
|
||||
@@ -562,6 +580,9 @@
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"ROOT_FOLDER={{user `root_folder`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1"
|
||||
]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Hosted Windows2016 image
|
||||
# Windows Server 2016
|
||||
|
||||
The following software is installed on machines in the Azure Pipelines **Hosted Windows2016** (v20191009.1) pool.
|
||||
The following software is installed on machines with the 20191009.1 update.
|
||||
|
||||
Components marked with **\*** have been upgraded since the previous version of the image.
|
||||
|
||||
@@ -519,8 +519,6 @@ _Environment:_
|
||||
* Bower 1.8.8<br/>
|
||||
* Yarn 1.19.1<br/>
|
||||
|
||||
> 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<br/>
|
||||
|
||||
@@ -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,7 +25,8 @@
|
||||
"install_user": "installer",
|
||||
"install_password": null,
|
||||
"capture_name_prefix": "packer",
|
||||
"image_version": "dev"
|
||||
"image_version": "dev",
|
||||
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/"
|
||||
},
|
||||
"sensitive-variables": ["install_password", "ssh_password", "client_secret"],
|
||||
"builders": [
|
||||
@@ -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.json",
|
||||
"destination": "{{user `root_folder`}}/toolcache.json"
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"TOOLCACHE_REGISTRY={{ user `toolcache_registry` }}",
|
||||
"ROOT_FOLDER={{user `root_folder`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1"
|
||||
]
|
||||
@@ -306,6 +329,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-Firefox.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Selenium.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -332,12 +361,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-WinAppDriver.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -420,12 +443,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-AzureCosmosDbEmulator.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars": [
|
||||
@@ -532,6 +549,9 @@
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"ROOT_FOLDER={{user `root_folder`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1"
|
||||
]
|
||||
|
||||
+473
-464
File diff suppressed because it is too large
Load Diff
@@ -16,4 +16,6 @@ Export-ModuleMember -Function @(
|
||||
'Install-EXE'
|
||||
'Add-ContentToMarkdown'
|
||||
'Add-SoftwareDetailsToMarkdown'
|
||||
'Stop-SvcWithErrHandling'
|
||||
'Set-SvcWithErrHandling'
|
||||
)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,51 +1,48 @@
|
||||
################################################################################
|
||||
## 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]
|
||||
$Name,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[System.String]
|
||||
$NpmRegistry
|
||||
)
|
||||
|
||||
Write-Host $ExecutablePath.DirectoryName
|
||||
Set-Location -Path $ExecutablePath.DirectoryName
|
||||
Get-Location | Write-Host
|
||||
if (Test-Path 'tool.zip')
|
||||
{
|
||||
Expand-Archive 'tool.zip' -DestinationPath '.'
|
||||
}
|
||||
cmd.exe /c 'install_to_tools_cache.bat'
|
||||
Write-Host "Installing npm '$Name' package from '$NpmRegistry'"
|
||||
|
||||
npm install $Name --registry=$NpmRegistry
|
||||
}
|
||||
|
||||
$SourceUrl = "https://vstsagenttools.blob.core.windows.net/tools"
|
||||
|
||||
# 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
|
||||
|
||||
$ToolVersions.PSObject.Properties | ForEach-Object {
|
||||
$PackageName = $_.Name
|
||||
$PackageVersions = $_.Value
|
||||
$NpmPackages = $PackageVersions | ForEach-Object { "$PackageName@$_" }
|
||||
foreach($NpmPackage in $NpmPackages) {
|
||||
Install-NpmPackage -Name $NpmPackage -NpmRegistry $env:TOOLCACHE_REGISTRY
|
||||
}
|
||||
}
|
||||
|
||||
#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"
|
||||
|
||||
@@ -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(',')
|
||||
$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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -12,7 +12,4 @@ 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
|
||||
|
||||
@@ -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
|
||||
@@ -2,16 +2,58 @@
|
||||
## 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
|
||||
$ChromePath = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\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;
|
||||
|
||||
Write-Host "Setting the environment variables";
|
||||
|
||||
setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M;
|
||||
setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M;
|
||||
setx ChromeWebDriver "C:\SeleniumWebDrivers\ChromeDriver" /M;
|
||||
|
||||
$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\';
|
||||
$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path';
|
||||
$PathValue += ";C:\SeleniumWebDrivers\ChromeDriver\";
|
||||
Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue;
|
||||
|
||||
exit 0;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -12,6 +12,21 @@ 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
|
||||
}
|
||||
|
||||
$packages = (Get-ToolcachePackages).PSObject.Properties | ForEach-Object {
|
||||
$packageNameParts = $_.Name.Split("-")
|
||||
$toolName = $packageNameParts[1]
|
||||
return [PSCustomObject] @{
|
||||
ToolName = $packageNameParts[1]
|
||||
Versions = $_.Value
|
||||
Arch = $packageNameParts[3]
|
||||
}
|
||||
}
|
||||
|
||||
function ToolcacheTest {
|
||||
param (
|
||||
[Parameter(Mandatory = $True)]
|
||||
@@ -22,36 +37,53 @@ function ToolcacheTest {
|
||||
if (Test-Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName")
|
||||
{
|
||||
$description = ""
|
||||
[array]$versions = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName"
|
||||
if ($versions.count -gt 0){
|
||||
foreach ($version in $versions)
|
||||
[array]$installedVersions = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName"
|
||||
if ($installedVersions.count -gt 0){
|
||||
$softwarePackages = $packages | Where-Object { $_.ToolName -eq $SoftwareName }
|
||||
foreach($softwarePackage in $softwarePackages)
|
||||
{
|
||||
$architectures = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version"
|
||||
|
||||
Write-Host "$SoftwareName version - $version : $([system.String]::Join(",", $architectures))"
|
||||
|
||||
foreach ($arch in $architectures)
|
||||
foreach ($version in $softwarePackage.Versions)
|
||||
{
|
||||
$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)
|
||||
$foundVersion = $installedVersions | where { $_.StartsWith($version) }
|
||||
|
||||
if ($foundVersion -ne $null){
|
||||
|
||||
$architectures = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$foundVersion"
|
||||
|
||||
$softwareArch = $softwarePackage.Arch
|
||||
|
||||
if ($architectures -Contains $softwareArch) {
|
||||
$path = "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$foundVersion\$softwareArch"
|
||||
foreach ($test in $ExecTests)
|
||||
{
|
||||
if (Test-Path "$path\$test")
|
||||
{
|
||||
Write-Host "$SoftwareName($test) $foundVersion($softwareArch) is successfully installed:"
|
||||
Write-Host (& "$path\$test" --version)
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "$SoftwareName($test) $foundVersion ($softwareArch) is not installed"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
$description += "_Version:_ $foundVersion ($softwareArch)<br/>"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "$SoftwareName($test) $version ($arch) is not installed"
|
||||
Write-Host "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$foundVersion does not include required architecture"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
$description += "_Version:_ $version ($arch)<br/>"
|
||||
else
|
||||
{
|
||||
Write-Host "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version.* was not found"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $description
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $description
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"toolcache-python-windows-x64": [
|
||||
"2.7", "3.5", "3.6", "3.7", "3.8"
|
||||
],
|
||||
"toolcache-python-windows-x86": [
|
||||
"2.7", "3.5", "3.6", "3.7", "3.8"
|
||||
],
|
||||
"toolcache-ruby-windows-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"toolcache-pypy-windows-x86": [
|
||||
"2", "3"
|
||||
],
|
||||
"toolcache-boost-windows-x64": [
|
||||
"1.69"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user