From bd10babf2fab9de07425fcf2b735807dbaa04769 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Mon, 6 Apr 2020 16:21:15 +0300 Subject: [PATCH 01/74] install haveged random generator --- .../linux/scripts/installers/rndgenerator.sh | 24 +++++++++++++++++++ images/linux/ubuntu1604.json | 3 ++- images/linux/ubuntu1804.json | 3 ++- 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 images/linux/scripts/installers/rndgenerator.sh diff --git a/images/linux/scripts/installers/rndgenerator.sh b/images/linux/scripts/installers/rndgenerator.sh new file mode 100644 index 00000000..c2575989 --- /dev/null +++ b/images/linux/scripts/installers/rndgenerator.sh @@ -0,0 +1,24 @@ +#!/bin/bash +################################################################################ +## File: rndgenerator.sh +## Desc: Install random number generator +################################################################################ + +# Source the helpers for use with the script +source $HELPER_SCRIPTS/document.sh + +# Install haveged +apt-get -y install haveged + +# 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 haveged; do + if ! command -v $cmd; then + echo "$cmd was not installed or not found on PATH" + exit 1 + fi +done + +# Document what was added to the image +echo "Lastly, documenting what we added to the metadata file" +DocumentInstalledItem "Haveged $(dpkg-query --showformat='${Version}' --show haveged)" \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index 5b1e2688..95ddc8cd 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -189,7 +189,8 @@ "{{template_dir}}/scripts/installers/zeit-now.sh", "{{template_dir}}/scripts/installers/updatepath.sh", "{{template_dir}}/scripts/installers/dpkg-config.sh", - "{{template_dir}}/scripts/installers/mongodb.sh" + "{{template_dir}}/scripts/installers/mongodb.sh", + "{{template_dir}}/scripts/installers/rndgenerator.sh" ], "environment_vars": [ diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index cb7e8819..89871ce0 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -192,7 +192,8 @@ "{{template_dir}}/scripts/installers/zeit-now.sh", "{{template_dir}}/scripts/installers/updatepath.sh", "{{template_dir}}/scripts/installers/dpkg-config.sh", - "{{template_dir}}/scripts/installers/mongodb.sh" + "{{template_dir}}/scripts/installers/mongodb.sh", + "{{template_dir}}/scripts/installers/rndgenerator.sh" ], "environment_vars": [ "METADATA_FILE={{user `metadata_file`}}", From 20b3f4783910d9696b44203dbc00a6f0c91f7013 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Tue, 7 Apr 2020 12:27:26 +0500 Subject: [PATCH 02/74] Add Office/SharePoint development and build tools --- images/win/scripts/Installers/Windows2016/Install-VS2017.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Windows2016/Install-VS2017.ps1 b/images/win/scripts/Installers/Windows2016/Install-VS2017.ps1 index 72801bd6..9edcb14f 100644 --- a/images/win/scripts/Installers/Windows2016/Install-VS2017.ps1 +++ b/images/win/scripts/Installers/Windows2016/Install-VS2017.ps1 @@ -125,7 +125,9 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + ` '--add Microsoft.VisualStudio.Component.Windows10SDK.17763 ' + ` '--add Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre '+ ` '--add Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre ' + ` - '--add Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre ' + '--add Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre ' + ` + '--add Microsoft.VisualStudio.Workload.Office ' + ` + '--add Microsoft.VisualStudio.Workload.OfficeBuildTools ' $Sku = 'Enterprise' $VSBootstrapperURL = 'https://aka.ms/vs/15/release/vs_enterprise.exe' From ad0ddd13e76870809a39365c8ecafd20ea0e1b1e Mon Sep 17 00:00:00 2001 From: "Dariy.Nurgaleev" Date: Tue, 7 Apr 2020 17:57:47 +0700 Subject: [PATCH 03/74] added credscan file to ignore SQL Express pass --- images.CI/credscan-exclusions.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 images.CI/credscan-exclusions.json diff --git a/images.CI/credscan-exclusions.json b/images.CI/credscan-exclusions.json new file mode 100644 index 00000000..979dfa68 --- /dev/null +++ b/images.CI/credscan-exclusions.json @@ -0,0 +1,9 @@ +{ + "tool": "Credential Scanner", + "suppressions": [ + { + "placeholder": "P@ssword!!", + "_justification": "Password used by SQL Express. It is required to interact with database." + } + ] +} \ No newline at end of file From 7e71c789d86582af67aa5bd24b506d8149454392 Mon Sep 17 00:00:00 2001 From: Sander Holvoet Date: Tue, 7 Apr 2020 17:21:41 +0200 Subject: [PATCH 04/74] Refer to Azure Pipelines Azure Pipelines VM images used to be managed in the [microsoft/azure-pipelines-image-generation](https://github.com/microsoft/azure-pipelines-image-generation) repo. This makes it visible to Azure Pipelines users that these VM images are being maintained in this virtual-environments repo. No mention of this in the current README. Both the old azure-pipelines-image-generation repo as well as [MS Docs](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#use-a-microsoft-hosted-agent) already links to this new repo. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 79c92534..5ccfdf2e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # GitHub Actions Virtual Environments -This repository contains the source used to create the [virtual environments](https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners) for GitHub Actions hosted runners. To file bug reports, or request that tools be added/updated, please [open an issue using the appropriate template](https://github.com/actions/virtual-environments/issues/new/choose). To build a VM machine from this repo's source, see the [instructions](./help/CreateImageAndAzureResources.md). +This repository contains the source used to create the [virtual environments](https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners) for GitHub Actions hosted runners, as well as the VM images of [Microsoft-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#use-a-microsoft-hosted-agent) used for Azure Pipelines. To file bug reports, or request that tools be added/updated, please [open an issue using the appropriate template](https://github.com/actions/virtual-environments/issues/new/choose). To build a VM machine from this repo's source, see the [instructions](./help/CreateImageAndAzureResources.md). For general questions about using the virtual environments or writing your Actions workflow, please open requests in the [GitHub Actions Community Forum](https://github.community/t5/GitHub-Actions/bd-p/actions). @@ -43,4 +43,4 @@ we pin the tool to specific version(s). [Windows-2019]: https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md [windows-2016]: https://github.com/actions/virtual-environments/blob/master/images/win/Windows2016-Readme.md [macOS-10.15]: https://github.com/actions/virtual-environments/blob/master/images/macos/macos-10.15-Readme.md -[self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners \ No newline at end of file +[self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners From 2e5f4dc1c04a33e6f8843855ac3b7cf9e0d98c88 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Wed, 8 Apr 2020 12:47:03 +0300 Subject: [PATCH 05/74] Change default locale for Firefox on Ubuntu (#678) Co-authored-by: Dmitry Shibanov --- images/linux/scripts/installers/firefox.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/images/linux/scripts/installers/firefox.sh b/images/linux/scripts/installers/firefox.sh index 8a849c85..e6e28afd 100644 --- a/images/linux/scripts/installers/firefox.sh +++ b/images/linux/scripts/installers/firefox.sh @@ -17,6 +17,10 @@ if ! command -v firefox; then exit 1 fi +# add to gloabl system preferences for firefox locale en_US, because other browsers have en_US local. +# Default firefox local is en_GB +echo 'pref("intl.locale.requested","en_US");' >> "/usr/lib/firefox/browser/defaults/preferences/syspref.js" + # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" # Resolves: Running Firefox as root in a regular user's session is not supported. From 6d40a6c846412ea06761d157598c73694f129499 Mon Sep 17 00:00:00 2001 From: phozzy Date: Fri, 24 Jan 2020 19:51:04 +0000 Subject: [PATCH 06/74] Add installation of container tools Signed-off-by: phozzy --- .../scripts/installers/1804/containers.sh | 24 +++++++++++++++++++ images/linux/ubuntu1804.json | 1 + 2 files changed, 25 insertions(+) create mode 100644 images/linux/scripts/installers/1804/containers.sh diff --git a/images/linux/scripts/installers/1804/containers.sh b/images/linux/scripts/installers/1804/containers.sh new file mode 100644 index 00000000..0ccf746a --- /dev/null +++ b/images/linux/scripts/installers/1804/containers.sh @@ -0,0 +1,24 @@ +#!/bin/bash +################################################################################ +## File: containers.sh +## Desc: Installs container tools: podman, buildah and skopeo onto the image +################################################################################ + +source $HELPER_SCRIPTS/apt.sh +source $HELPER_SCRIPTS/document.sh + +source /etc/os-release +sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" +wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key +apt-key add - < Release.key +apt-get update -qq +apt-get -qq -y install podman buildah skopeo +mkdir -p /etc/containers +echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | tee /etc/containers/registries.conf + +## Add version information to the metadata file +echo "Documenting container tools version" +PODMAN_VERSION='podman --version' +BUILDAH_VERSION='buildah --version' +SKOPEO_VERSION='skopeo --version' +DocumentInstalledItem "Podman ($PODMAN_VERSION)\nBuildah ($BUILDAH_VERSION)\nSkopeo ($SKOPEO_VERSION)" diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 89871ce0..0fffd8c1 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -149,6 +149,7 @@ "{{template_dir}}/scripts/installers/clang.sh", "{{template_dir}}/scripts/installers/swift.sh", "{{template_dir}}/scripts/installers/cmake.sh", + "{{template_dir}}/scripts/installers/1804/containers.sh", "{{template_dir}}/scripts/installers/docker-compose.sh", "{{template_dir}}/scripts/installers/docker-moby.sh", "{{template_dir}}/scripts/installers/dotnetcore-sdk.sh", From f6e2d05862a5c009e57583e27fec233c8b85d7d4 Mon Sep 17 00:00:00 2001 From: rickdewater Date: Wed, 8 Apr 2020 20:06:19 +0200 Subject: [PATCH 07/74] Update CMake to 3.17.0 on all environments --- images/linux/scripts/installers/cmake.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/cmake.sh b/images/linux/scripts/installers/cmake.sh index 5800ce23..340df3ee 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.16/cmake-3.16.2-Linux-x86_64.sh -o cmakeinstall.sh \ + curl -sL https://cmake.org/files/v3.17/cmake-3.17.0-Linux-x86_64.sh -o cmakeinstall.sh \ && chmod +x cmakeinstall.sh \ && ./cmakeinstall.sh --prefix=/usr/local --exclude-subdir \ && rm cmakeinstall.sh From 37d7f5165d65c805884d08abdc23abf12e1d27ae Mon Sep 17 00:00:00 2001 From: Mark Prins <1165786+mprins@users.noreply.github.com> Date: Thu, 9 Apr 2020 10:16:26 +0200 Subject: [PATCH 08/74] use the right software name seems a copy-paste error --- images/win/scripts/Installers/Validate-SQLExpress.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Validate-SQLExpress.ps1 b/images/win/scripts/Installers/Validate-SQLExpress.ps1 index 1b5a3578..2cb7f4f3 100644 --- a/images/win/scripts/Installers/Validate-SQLExpress.ps1 +++ b/images/win/scripts/Installers/Validate-SQLExpress.ps1 @@ -40,7 +40,7 @@ $instanceName = "$env:computername\$sqlInstance" $version = Test-SqlConnection -ServerName $instanceName -IntegratedSecurity "false" -UserName $sqlUser -Password $sqlPassword # Adding description of the software to Markdown -$SoftwareName = "Git" +$SoftwareName = "Microsoft SQL Express" $Description = @" _Version:_ $version
_InstanceName:_ $sqlInstance
From 9f7145d3d8fc48b2074872b7dad103f37df20e54 Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Fri, 10 Apr 2020 06:25:15 +0000 Subject: [PATCH 09/74] Updating readme file for ubuntu18 version 20200406.2 --- images/linux/Ubuntu1804-README.md | 55 +++++++++++++++++-------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md index 1adbc740..c48f5caa 100644 --- a/images/linux/Ubuntu1804-README.md +++ b/images/linux/Ubuntu1804-README.md @@ -1,11 +1,11 @@ # Ubuntu 18.04.4 LTS -The following software is installed on machines with the 20200330.1 update. +The following software is installed on machines with the 20200406.2 update. *** - 7-Zip 16.02 - Ansible (ansible 2.9.6) - AzCopy (azcopy 7.3.0-netcore) -- Azure CLI (azure-cli 2.2.0) -- Azure CLI (azure-devops 0.17.0) +- Azure CLI (azure-cli 2.3.1) +- Azure CLI (azure-devops 0.18.0) - Basic CLI: - curl - dnsutils @@ -32,12 +32,12 @@ The following software is installed on machines with the 20200330.1 update. - wget - zip - zstd -- AWS CLI (aws-cli/1.18.31 Python/2.7.17 Linux/5.0.0-1032-azure botocore/1.15.31) +- AWS CLI (aws-cli/1.18.37 Python/2.7.17 Linux/5.0.0-1035-azure botocore/1.15.37) - build-essential - Clang 6.0 (6.0.0) - Clang 8 (8.0.0) - Clang 9 (9.0.0) -- Swift version 5.2 (swift-5.2-RELEASE) +- Swift version 5.2.1 (swift-5.2.1-RELEASE) Target: x86_64-unknown-linux-gnu - CMake (cmake version 3.16.2) - Docker Compose (docker-compose version 1.25.4, build 8d51620a) @@ -109,19 +109,19 @@ Target: x86_64-unknown-linux-gnu - 2.1.301 - 2.1.300 - Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7) -- Firefox (Mozilla Firefox 74.0) +- Firefox (Mozilla Firefox 74.0.1) - Geckodriver (0.26.0); Gecko Driver is available via GECKOWEBDRIVER environment variable - GNU C++ 7.5.0 -- GNU C++ 8.3.0 +- GNU C++ 8.4.0 - GNU C++ 9.2.1 -- GNU Fortran 8.3.0 +- GNU Fortran 8.4.0 - GNU Fortran 9.2.1 - Git (2.26.0) - Git Large File Storage (LFS) (2.10.0) - Hub CLI (2.14.2) -- Google Chrome (Google Chrome 80.0.3987.149 ) +- Google Chrome (Google Chrome 80.0.3987.163 ) - ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}); Chrome Driver is available via CHROMEWEBDRIVER environment variable -- Google Cloud SDK (286.0.0) +- Google Cloud SDK (287.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 @@ -130,6 +130,8 @@ compiled using version 2.2.0.1 of the Cabal library ) compiled using version 2.4.1.0 of the Cabal library ) - Haskell Cabal (cabal-install version 3.0.1.0 compiled using version 3.0.2.0 of the Cabal library ) +- Haskell Cabal (cabal-install version 3.2.0.0 +compiled using version 3.2.0.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) @@ -140,9 +142,10 @@ compiled using version 3.0.2.0 of the Cabal library ) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.2) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.3) +- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.1) - Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2) -- Heroku (heroku/7.39.1 linux-x64 node-v12.13.0) -- HHVM (HipHop VM 4.50.0 (rel)) +- Heroku (heroku/7.39.2 linux-x64 node-v12.13.0) +- HHVM (HipHop VM 4.52.0 (rel)) - ImageMagick - Azul Zulu OpenJDK: - 7 (openjdk version "1.7.0_252") @@ -162,6 +165,7 @@ compiled using version 3.0.2.0 of the Cabal library ) - MySQL (mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper) - MySQL Server (user:root password:root) - MS SQL Server Client Tools +- nvm (0.35.3) - Node.js (v12.16.1) - Grunt (grunt-cli v1.2.0) - Gulp (CLI version: 2.2.0 @@ -172,7 +176,7 @@ Local version: Unknown) - Webpack (4.42.1) - Webpack CLI (3.3.11) - Yarn (1.22.4) -- Bazel (bazel 2.2.0) +- Bazel (bazel 3.0.0) - Bazelisk (1.3.0) - PhantomJS (2.1.1) - PHP 7.1 (PHP 7.1.33-14+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:57:43) ( NTS )) @@ -193,9 +197,9 @@ Local version: Unknown) - clippy (0.0.212) - rustdoc (1.42.0) - bindgen (0.53.2) -- cbindgen (0.13.2) +- cbindgen (0.14.0) - Julia (julia version 1.4.0) -- sbt (1.3.8) +- sbt (1.3.9) - Selenium server standalone (available via SELENIUM_JAR_PATH environment variable) - Sphinx Open Source Search Server - Subversion (svn, version 1.9.7 (r1800392)) @@ -203,6 +207,9 @@ Local version: Unknown) - Packer (1.5.5) - Vcpkg 2020.02.04-unknownhash - Zeit Now CLI (17.1.1) +- MongoDB on Linux (2020-04-07T01:27:09.357+0000 I CONTROL [initandlisten] db version v4.2.5 +2020-04-07T01:27:09.357+0000 I CONTROL [initandlisten] git version: 2261279b51ea13df08ae708ff278f0679c59dc32 +2020-04-07T01:27:09.357+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019) - Go 1.11 (go version go1.11.13 linux/amd64) - Go 1.12 (go version go1.12.17 linux/amd64) - Go 1.13 (go version go1.13.9 linux/amd64) @@ -269,13 +276,13 @@ Local version: Unknown) - Az Module (3.1.0) - Az Module (3.5.0) - Cached container images + - node:10 (Digest: sha256:816cfaee24dc2cea534e21d7f9c55f3b22c8bc6af61d8445f8d0178168ef3b28) + - node:12 (Digest: sha256:46f4c17e1edbde36d60a9f6362db7912cfe301bac89afef7cc92421ab3e7ca18) + - buildpack-deps:stretch (Digest: sha256:a711a64b26285b42cd02618a191ec6c99650449f698858e0e2cc0535ab85e4dd) + - debian:9 (Digest: sha256:344470192d10cf7cf0bedcb183effbe99065829a8dbe68e65e703faf46fc10c1) + - debian:8 (Digest: sha256:a77aa078ad4769799286bba5fc198deda5bfd4d0144a24e6aa0c8dddf0a22833) - node:10-alpine (Digest: sha256:9a88e3bc3f845b74d2fd8adcbc64608736a8be4a3e9dc7aa34fa743e3677a552) - node:12-alpine (Digest: sha256:6b5b783c9cfe229af0bd5b0b677dd32005bb22d58465f3d0fe7fbd1c60ce068c) - - node:10 (Digest: sha256:df200903ff34c07c1b9112b4fd9d1342c11eb7d99525f2b366c487f91dda8131) - - node:12 (Digest: sha256:facc1cbde6e5aa3255092b1a1417451953c80bd31ab5a4403f8bcd90b90a8407) - - buildpack-deps:stretch (Digest: sha256:dc901bbf4b34e4ca8771c0d0773e557221452f97bcf0c732de7ecda3782bdf97) - - debian:9 (Digest: sha256:ddb131307ad9c70ebf8c7962ba73c20101f68c7a511915aea3ad3b7ad47b9d20) - - debian:8 (Digest: sha256:2c9b2323299846c5298c12db373da310f8114f2941ae3f496e95270cc8ca5ebd) - alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14) - alpine:3.9 (Digest: sha256:115731bab0862031b44766733890091c17924f9b7781b79997f5f163be262178) - alpine:3.10 (Digest: sha256:7c3773f7bcc969f03f8f653910001d99a9d324b4b9caa008846ad2c3089f5a5f) @@ -289,10 +296,10 @@ Local version: Unknown) - Python 3.7.6 - Python 3.8.2 - Ruby: - - Ruby 2.4.9 - - Ruby 2.5.7 - - Ruby 2.6.5 - - Ruby 2.7.0 + - Ruby 2.4.10 + - Ruby 2.5.8 + - Ruby 2.6.6 + - Ruby 2.7.1 - PyPy: - PyPy 2.7.17 - PyPy 3.6.9 From e1fb0683003b91920ca19cb265e5f66605aef586 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Fri, 10 Apr 2020 14:20:16 +0500 Subject: [PATCH 10/74] add Homebrew on Linux (#589) * Add homebrew installation and validation scripts * Update `/etc/environment` in `updatepath.sh` script Keep this code for sake of compatibility with the existing installation logic. It will be changed in its own PR * Remove env. variables from homebrew validation task * Move reboot to the dedicated script and task Co-authored-by: Sergey Dolin --- images/linux/scripts/base/reboot.sh | 8 +++ images/linux/scripts/helpers/document.sh | 2 +- .../linux/scripts/helpers/etc-environment.sh | 65 +++++++++++++++++++ .../scripts/installers/homebrew-validate.sh | 14 ++++ images/linux/scripts/installers/homebrew.sh | 36 ++++++++++ images/linux/scripts/installers/updatepath.sh | 3 +- images/linux/ubuntu1604.json | 31 ++++++++- images/linux/ubuntu1804.json | 30 +++++++++ 8 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 images/linux/scripts/base/reboot.sh create mode 100644 images/linux/scripts/helpers/etc-environment.sh create mode 100644 images/linux/scripts/installers/homebrew-validate.sh create mode 100644 images/linux/scripts/installers/homebrew.sh diff --git a/images/linux/scripts/base/reboot.sh b/images/linux/scripts/base/reboot.sh new file mode 100644 index 00000000..23969fe8 --- /dev/null +++ b/images/linux/scripts/base/reboot.sh @@ -0,0 +1,8 @@ +#!/bin/bash +################################################################################ +## File: reboot.sh +## Desc: Reboot VM +################################################################################ + +echo "Reboot VM" +sudo reboot \ No newline at end of file diff --git a/images/linux/scripts/helpers/document.sh b/images/linux/scripts/helpers/document.sh index 86217160..e7311689 100644 --- a/images/linux/scripts/helpers/document.sh +++ b/images/linux/scripts/helpers/document.sh @@ -9,7 +9,7 @@ function WriteItem { echo "METADATA_FILE environment variable must be set to output to Metadata Document!" return 1; else - echo -e "$1" >> "$METADATA_FILE" + echo -e "$1" | sudo tee -a "$METADATA_FILE" fi } diff --git a/images/linux/scripts/helpers/etc-environment.sh b/images/linux/scripts/helpers/etc-environment.sh new file mode 100644 index 00000000..bedc7119 --- /dev/null +++ b/images/linux/scripts/helpers/etc-environment.sh @@ -0,0 +1,65 @@ +#!/bin/bash +################################################################################ +## File: etc-environment.sh +## Desc: Helper functions for source and modify /etc/environment +################################################################################ + +# NB: sed expression use '%' as a delimiter in order to simplify handling +# values containg slashes (i.e. directory path) +# The values containing '%' will break the functions + +function getEtcEnvironmentVar { + var_name="$1" + # remove `var_name=` and possible quotes from the line + grep "^${var_name}=" /etc/environment |sed -E "s%^${var_name}=\"?([^\"]+)\"?.*$%\1%" +} + +function addEtcEnvironmentVar { + var_name="$1" + var_value="$2" + + echo "$var_name=\"$var_value\"" | sudo tee -a /etc/environment +} + +function replaceEtcEnvironmentVar { + var_name="$1" + var_value="$2" + + # modify /etc/environemnt in place by replacing a string that begins with var_name + sudo sed -ie "s%^${var_name}=.*$%${var_name}=\"${var_value}\"%" /etc/environment +} + +function setEtcEnvironmentVar { + var_name="$1" + var_value="$2" + + if grep "$var_name" /etc/environment > /dev/null; then + replaceEtcEnvironmentVar $var_name $var_value + else + addEtcEnvironmentVar $var_name $var_value + fi +} + +function addEtcEnvironmentPathElement { + element="$1" + etc_path=$(getEtcEnvironmentVar PATH) + setEtcEnvironmentVar PATH "${element}:${etc_path}" +} + +# Process /etc/environment as if it were shell script with `export VAR=...` expressions +# The PATH variable is handled specially in order to do not override the existing PATH +# variable. The value of PATH variable read from /etc/environment is added to the end +# of value of the exiting PATH variable exactly as it would happen with real PAM app read +# /etc/environment +# +# TODO: there might be the others variables to be processed in the same way as "PATH" variable +# ie MANPATH, INFOPATH, LD_*, etc. In the current implementation the values from /etc/evironments +# replace the values of the current environment +function reloadEtcEnvironment { + # add `export ` to every variable of /etc/environemnt except PATH and eval the result shell script + eval $(grep -v '^PATH=' /etc/environment | sed -e 's%^%export %') + # handle PATH specially + etc_path=$(getEtcEnvironmentVar PATH) + export PATH="$PATH:$etc_path" +} + diff --git a/images/linux/scripts/installers/homebrew-validate.sh b/images/linux/scripts/installers/homebrew-validate.sh new file mode 100644 index 00000000..a8eef258 --- /dev/null +++ b/images/linux/scripts/installers/homebrew-validate.sh @@ -0,0 +1,14 @@ +#!/bin/bash +################################################################################ +## File: homebrew-validate.sh +## Desc: Validate the Homebrew can run after reboot without extra configuring +################################################################################ + +# Validate the installation +echo "Validate the Homebrew can run after reboot" + +if ! command -v brew; then + echo "brew cat not run after reboot" + exit 1 +fi + diff --git a/images/linux/scripts/installers/homebrew.sh b/images/linux/scripts/installers/homebrew.sh new file mode 100644 index 00000000..58c8a11d --- /dev/null +++ b/images/linux/scripts/installers/homebrew.sh @@ -0,0 +1,36 @@ +#!/bin/bash +################################################################################ +## File: homebrew.sh +## Desc: Installs the Homebrew on Linux +################################################################################ + +# Source the helpers +source $HELPER_SCRIPTS/document.sh +source $HELPER_SCRIPTS/etc-environment.sh + +# Install the Homebrew on Linux +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" +eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv) + +# Make brew files and directories writable by any user +sudo chmod -R o+w $HOMEBREW_PREFIX + +# Update /etc/environemnt +## Put HOMEBREW_* variables +brew shellenv|grep 'export HOMEBREW'|sed -E 's/^export (.*);$/\1/' | sudo tee -a /etc/environment +# add brew executables locations to PATH +brew_path=$(brew shellenv|grep '^export PATH' |sed -E 's/^export PATH="([^$]+)\$.*/\1/') +addEtcEnvironmentPathElement "$brew_path" + +# Validate the installation ad hoc +echo "Validate the installation reloading /etc/environment" +reloadEtcEnvironment + +if ! command -v brew; then + echo "brew was not installed" + exit 1 +fi + +# Document the installed version +echo "Document the installed version" +DocumentInstalledItem "Homebrew on Linux ($(brew -v 2>&1))" diff --git a/images/linux/scripts/installers/updatepath.sh b/images/linux/scripts/installers/updatepath.sh index 7d63ceb1..527ba524 100644 --- a/images/linux/scripts/installers/updatepath.sh +++ b/images/linux/scripts/installers/updatepath.sh @@ -3,4 +3,5 @@ CARGO_HOME=/usr/share/rust/.cargo DOTNET_TOOLS_HOME=/home/runner/.dotnet/tools PHP_COMPOSER_HOME=/home/runner/.config/composer/vendor/bin -echo "PATH=${CARGO_HOME}/bin:${PATH}:${DOTNET_TOOLS_HOME}:${PHP_COMPOSER_HOME}" | tee -a /etc/environment \ No newline at end of file +BREW_PATH=/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin +echo "PATH=${BREW_PATH}:${CARGO_HOME}/bin:${PATH}:${DOTNET_TOOLS_HOME}:${PHP_COMPOSER_HOME}" | tee -a /etc/environment diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index 95ddc8cd..4d4138d8 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -132,6 +132,36 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts": [ + "{{template_dir}}/scripts/installers/homebrew.sh" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "DEBIAN_FRONTEND=noninteractive" + ], + "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + }, + { + "type": "shell", + "expect_disconnect": true, + "scripts": [ + "{{template_dir}}/scripts/base/reboot.sh" + ], + "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + }, + { + "type": "shell", + "pause_before": "30s", + "timeout": "10m", + "start_retry_timeout": "10s", + "scripts": [ + "{{template_dir}}/scripts/installers/homebrew-validate.sh" + ], + "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + }, { "type": "shell", "scripts": [ @@ -191,7 +221,6 @@ "{{template_dir}}/scripts/installers/dpkg-config.sh", "{{template_dir}}/scripts/installers/mongodb.sh", "{{template_dir}}/scripts/installers/rndgenerator.sh" - ], "environment_vars": [ "METADATA_FILE={{user `metadata_file`}}", diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 0fffd8c1..44407734 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -135,6 +135,36 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts": [ + "{{template_dir}}/scripts/installers/homebrew.sh" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "DEBIAN_FRONTEND=noninteractive" + ], + "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + }, + { + "type": "shell", + "expect_disconnect": true, + "scripts": [ + "{{template_dir}}/scripts/base/reboot.sh" + ], + "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + }, + { + "type": "shell", + "pause_before": "30s", + "timeout": "10m", + "start_retry_timeout": "10s", + "scripts": [ + "{{template_dir}}/scripts/installers/homebrew-validate.sh" + ], + "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + }, { "type": "shell", "scripts": [ From faf9417c3ad2b869954a6f4ad533429caa9937c2 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Fri, 10 Apr 2020 14:54:39 +0300 Subject: [PATCH 11/74] disable mssql express --- images/win/Windows2016-Azure.json | 14 -------------- images/win/Windows2019-Azure.json | 14 -------------- 2 files changed, 28 deletions(-) diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index f7753eb9..805892e6 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -470,14 +470,6 @@ "{{ template_dir }}/scripts/Installers/Install-MysqlCli.ps1" ] }, - { - "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-SQLExpress.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -739,12 +731,6 @@ "{{ template_dir }}/scripts/Installers/Validate-Bazel.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Validate-SQLExpress.ps1" - ] - }, { "type": "powershell", "scripts":[ diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 1698c550..69b42f8d 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -451,14 +451,6 @@ "{{ template_dir }}/scripts/Installers/Install-MysqlCli.ps1" ] }, - { - "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-SQLExpress.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -756,12 +748,6 @@ "{{ template_dir }}/scripts/Installers/Validate-MysqlCli.ps1" ] }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Validate-SQLExpress.ps1" - ] - }, { "type": "powershell", "scripts":[ From d0398f5357d95dcbd34761e324ba422958a959ac Mon Sep 17 00:00:00 2001 From: Nikita Bykov <49442273+nikita-bykov@users.noreply.github.com> Date: Mon, 13 Apr 2020 17:38:35 +0300 Subject: [PATCH 12/74] Add Alibaba cloud aliyun-cli (#688) * added aliyun cli to windows * added aliyun cli to Ubuntu Co-authored-by: Nikita Bykov --- images/linux/scripts/installers/aliyun-cli.sh | 27 +++++++++++++++++++ images/linux/ubuntu1604.json | 1 + images/linux/ubuntu1804.json | 1 + images/win/Windows2016-Azure.json | 12 +++++++++ images/win/Windows2019-Azure.json | 12 +++++++++ .../scripts/Installers/Install-AliyunCli.ps1 | 6 +++++ .../scripts/Installers/Validate-AliyunCli.ps1 | 24 +++++++++++++++++ 7 files changed, 83 insertions(+) create mode 100644 images/linux/scripts/installers/aliyun-cli.sh create mode 100644 images/win/scripts/Installers/Install-AliyunCli.ps1 create mode 100644 images/win/scripts/Installers/Validate-AliyunCli.ps1 diff --git a/images/linux/scripts/installers/aliyun-cli.sh b/images/linux/scripts/installers/aliyun-cli.sh new file mode 100644 index 00000000..e3e1ec14 --- /dev/null +++ b/images/linux/scripts/installers/aliyun-cli.sh @@ -0,0 +1,27 @@ +#!/bin/bash +################################################################################ +## File: aliyun-cli.sh +## Desc: Installs Alibaba Cloud CLI +################################################################################ + +# Source the helpers for use with the script +source $HELPER_SCRIPTS/document.sh +source $HELPER_SCRIPTS/apt.sh + +# Install Alibaba Cloud CLI +URL=$(curl -s https://api.github.com/repos/aliyun/aliyun-cli/releases/latest | jq -r '.assets[].browser_download_url | select(contains("aliyun-cli-linux"))') +wget -P /tmp $URL +tar xzvf /tmp/aliyun-cli-linux-*-amd64.tgz +mv aliyun /usr/local/bin + +# Run tests to determine that the software installed as expected +echo "Testing to make sure that script performed as expected, and basic scenarios work" +if ! command -v aliyun ; then + echo "aliyun was not installed" + exit 1 +fi + +# Document what was added to the image +aliyun_version="$(aliyun --version | grep "Alibaba Cloud Command Line Interface Version" | cut -d " " -f 7)" +echo "Lastly, documenting what we added to the metadata file" +DocumentInstalledItem "Alibaba Cloud CLI ($aliyun_version)" \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index 4d4138d8..bf47f0c4 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -171,6 +171,7 @@ "{{template_dir}}/scripts/installers/azure-cli.sh", "{{template_dir}}/scripts/installers/azure-devops-cli.sh", "{{template_dir}}/scripts/installers/1604/basic.sh", + "{{template_dir}}/scripts/installers/aliyun-cli.sh", "{{template_dir}}/scripts/installers/aws.sh", "{{template_dir}}/scripts/installers/build-essential.sh", "{{template_dir}}/scripts/installers/nvm.sh", diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 44407734..d2129a20 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -174,6 +174,7 @@ "{{template_dir}}/scripts/installers/azure-cli.sh", "{{template_dir}}/scripts/installers/azure-devops-cli.sh", "{{template_dir}}/scripts/installers/1804/basic.sh", + "{{template_dir}}/scripts/installers/aliyun-cli.sh", "{{template_dir}}/scripts/installers/aws.sh", "{{template_dir}}/scripts/installers/build-essential.sh", "{{template_dir}}/scripts/installers/clang.sh", diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 805892e6..97a06702 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -299,6 +299,12 @@ "{{ template_dir }}/scripts/Installers/Install-Bazel.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-AliyunCli.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -731,6 +737,12 @@ "{{ template_dir }}/scripts/Installers/Validate-Bazel.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-AliyunCli.ps1" + ] + }, { "type": "powershell", "scripts":[ diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 69b42f8d..e66147fc 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -578,6 +578,12 @@ "{{ template_dir }}/scripts/Installers/Install-Bazel.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-AliyunCli.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -862,6 +868,12 @@ "{{ template_dir }}/scripts/Installers/Validate-Bazel.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-AliyunCli.ps1" + ] + }, { "type": "file", "source": "C:\\InstalledSoftware.md", diff --git a/images/win/scripts/Installers/Install-AliyunCli.ps1 b/images/win/scripts/Installers/Install-AliyunCli.ps1 new file mode 100644 index 00000000..95b462b6 --- /dev/null +++ b/images/win/scripts/Installers/Install-AliyunCli.ps1 @@ -0,0 +1,6 @@ +################################################################################ +## File: Install-AliyunCli.ps1 +## Desc: Install Alibaba Cloud CLI +################################################################################ + +choco install aliyun-cli -y \ No newline at end of file diff --git a/images/win/scripts/Installers/Validate-AliyunCli.ps1 b/images/win/scripts/Installers/Validate-AliyunCli.ps1 new file mode 100644 index 00000000..2f72deca --- /dev/null +++ b/images/win/scripts/Installers/Validate-AliyunCli.ps1 @@ -0,0 +1,24 @@ +################################################################################ +## File: Validate-AliyunCli.ps1 +## Desc: Validate Alibaba Cloud CLI +################################################################################ + +if (Get-Command -Name 'aliyun') +{ + Write-Host "Alibaba Cloud CLI on path" +} +else +{ + Write-Host 'Alibaba Cloud CLI is not on path' + exit 1 +} + +# Adding description of the software to Markdown +$aliyun_version = ((aliyun --version | Select-String "Alibaba Cloud Command Line Interface Version ") -Split(" "))[6] + +$SoftwareName = "Alibaba Cloud CLI" +$Description = @" +_Version:_ $aliyun_version
+"@ + +Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description \ No newline at end of file From 20515c42066478d2075ef79ed21dbeb7b00685b9 Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Mon, 13 Apr 2020 16:09:45 +0000 Subject: [PATCH 13/74] Updating readme file for ubuntu16 version 20200406.2 --- images/linux/Ubuntu1604-README.md | 51 ++++++++++++++++++------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md index 708681f3..8b040043 100644 --- a/images/linux/Ubuntu1604-README.md +++ b/images/linux/Ubuntu1604-README.md @@ -1,11 +1,11 @@ # Ubuntu 16.04.6 LTS -The following software is installed on machines with the 20200330.1 update. +The following software is installed on machines with the 20200406.2 update. *** - 7-Zip 9.20 - Ansible (ansible 2.9.6) - AzCopy (azcopy 7.3.0-netcore) -- Azure CLI (azure-cli 2.2.0) -- Azure CLI (azure-devops 0.17.0) +- Azure CLI (azure-cli 2.3.1) +- Azure CLI (azure-devops 0.18.0) - Basic CLI: - curl - dnsutils @@ -34,12 +34,13 @@ The following software is installed on machines with the 20200330.1 update. - wget - zip - zstd -- AWS CLI (aws-cli/1.18.31 Python/2.7.12 Linux/4.15.0-1071-azure botocore/1.15.31) +- AWS CLI (aws-cli/1.18.37 Python/2.7.12 Linux/4.15.0-1075-azure botocore/1.15.37) - build-essential +- nvm (0.35.3) - Clang 6.0 (6.0.0) - Clang 8 (8.0.0) - Clang 9 (9.0.1) -- Swift version 5.2 (swift-5.2-RELEASE) +- Swift version 5.2.1 (swift-5.2.1-RELEASE) Target: x86_64-unknown-linux-gnu - CMake (cmake version 3.16.2) - Docker Compose (docker-compose version 1.25.4, build 8d51620a) @@ -111,7 +112,7 @@ Target: x86_64-unknown-linux-gnu - 2.1.301 - 2.1.300 - Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7) -- Firefox (Mozilla Firefox 74.0) +- Firefox (Mozilla Firefox 74.0.1) - Geckodriver (0.26.0); Gecko Driver is available via GECKOWEBDRIVER environment variable - GNU C++ 7.4.0 - GNU C++ 8.3.0 @@ -121,9 +122,9 @@ Target: x86_64-unknown-linux-gnu - Git (2.26.0) - Git Large File Storage (LFS) (2.10.0) - Hub CLI (2.14.2) -- Google Chrome (Google Chrome 80.0.3987.149 ) +- Google Chrome (Google Chrome 80.0.3987.163 ) - ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}); Chrome Driver is available via CHROMEWEBDRIVER environment variable -- Google Cloud SDK (286.0.0) +- Google Cloud SDK (287.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 @@ -132,6 +133,8 @@ compiled using version 2.2.0.1 of the Cabal library ) compiled using version 2.4.1.0 of the Cabal library ) - Haskell Cabal (cabal-install version 3.0.1.0 compiled using version 3.0.2.0 of the Cabal library ) +- Haskell Cabal (cabal-install version 3.2.0.0 +compiled using version 3.2.0.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) @@ -142,9 +145,10 @@ compiled using version 3.0.2.0 of the Cabal library ) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.2) - GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.3) +- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.1) - Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2) -- Heroku (heroku/7.39.1 linux-x64 node-v12.13.0) -- HHVM (HipHop VM 4.50.0 (rel)) +- Heroku (heroku/7.39.2 linux-x64 node-v12.13.0) +- HHVM (HipHop VM 4.52.0 (rel)) - ImageMagick - Azul Zulu OpenJDK: - 7 (openjdk version "1.7.0_252") @@ -174,7 +178,7 @@ Local version: Unknown) - Webpack (4.42.1) - Webpack CLI (3.3.11) - Yarn (1.22.4) -- Bazel (bazel 2.2.0) +- Bazel (bazel 3.0.0) - Bazelisk (1.3.0) - PhantomJS (2.1.1) - PHP 5.6 (PHP 5.6.40-26+ubuntu16.04.1+deb.sury.org+1 (cli) ) @@ -197,9 +201,9 @@ Local version: Unknown) - clippy (0.0.212) - rustdoc (1.42.0) - bindgen (0.53.2) -- cbindgen (0.13.2) +- cbindgen (0.14.0) - Julia (julia version 1.4.0) -- sbt (1.3.8) +- sbt (1.3.9) - Selenium server standalone (available via SELENIUM_JAR_PATH environment variable) - Sphinx Open Source Search Server - Subversion (svn, version 1.9.3 (r1718519)) @@ -207,6 +211,9 @@ Local version: Unknown) - Packer (1.5.5) - Vcpkg 2020.02.04-unknownhash - Zeit Now CLI (17.1.1) +- MongoDB on Linux (2020-04-07T01:29:52.795+0000 I CONTROL [initandlisten] db version v4.2.5 +2020-04-07T01:29:52.795+0000 I CONTROL [initandlisten] git version: 2261279b51ea13df08ae708ff278f0679c59dc32 +2020-04-07T01:29:52.795+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016) - Go 1.11 (go version go1.11.13 linux/amd64) - Go 1.12 (go version go1.12.17 linux/amd64) - Go 1.13 (go version go1.13.9 linux/amd64) @@ -279,13 +286,13 @@ Local version: Unknown) - Az Module (3.1.0) - Az Module (3.5.0) - Cached container images + - node:10 (Digest: sha256:816cfaee24dc2cea534e21d7f9c55f3b22c8bc6af61d8445f8d0178168ef3b28) + - node:12 (Digest: sha256:46f4c17e1edbde36d60a9f6362db7912cfe301bac89afef7cc92421ab3e7ca18) + - buildpack-deps:stretch (Digest: sha256:a711a64b26285b42cd02618a191ec6c99650449f698858e0e2cc0535ab85e4dd) + - debian:9 (Digest: sha256:344470192d10cf7cf0bedcb183effbe99065829a8dbe68e65e703faf46fc10c1) + - debian:8 (Digest: sha256:a77aa078ad4769799286bba5fc198deda5bfd4d0144a24e6aa0c8dddf0a22833) - node:10-alpine (Digest: sha256:9a88e3bc3f845b74d2fd8adcbc64608736a8be4a3e9dc7aa34fa743e3677a552) - node:12-alpine (Digest: sha256:6b5b783c9cfe229af0bd5b0b677dd32005bb22d58465f3d0fe7fbd1c60ce068c) - - node:10 (Digest: sha256:df200903ff34c07c1b9112b4fd9d1342c11eb7d99525f2b366c487f91dda8131) - - node:12 (Digest: sha256:facc1cbde6e5aa3255092b1a1417451953c80bd31ab5a4403f8bcd90b90a8407) - - buildpack-deps:stretch (Digest: sha256:dc901bbf4b34e4ca8771c0d0773e557221452f97bcf0c732de7ecda3782bdf97) - - debian:9 (Digest: sha256:ddb131307ad9c70ebf8c7962ba73c20101f68c7a511915aea3ad3b7ad47b9d20) - - debian:8 (Digest: sha256:2c9b2323299846c5298c12db373da310f8114f2941ae3f496e95270cc8ca5ebd) - alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14) - alpine:3.9 (Digest: sha256:115731bab0862031b44766733890091c17924f9b7781b79997f5f163be262178) - alpine:3.10 (Digest: sha256:7c3773f7bcc969f03f8f653910001d99a9d324b4b9caa008846ad2c3089f5a5f) @@ -299,10 +306,10 @@ Local version: Unknown) - Python 3.7.6 - Python 3.8.2 - Ruby: - - Ruby 2.4.9 - - Ruby 2.5.7 - - Ruby 2.6.5 - - Ruby 2.7.0 + - Ruby 2.4.10 + - Ruby 2.5.8 + - Ruby 2.6.6 + - Ruby 2.7.1 - PyPy: - PyPy 2.7.17 - PyPy 3.6.9 From 44e904205f61fdc8018a9a1f615f8e7c61187827 Mon Sep 17 00:00:00 2001 From: Luke Duddridge <338863+elduddz@users.noreply.github.com> Date: Tue, 14 Apr 2020 06:51:57 +0100 Subject: [PATCH 14/74] Chocolatey Helper (#646) * Add basic choco install wrapper * Use Install-Choco on mingw * move azure-cli install to defence * Rename ChocoInstall to ChocoHelpers --- .../win/scripts/ImageHelpers/ChocoHelpers.ps1 | 33 +++++++++++++++++++ .../scripts/ImageHelpers/ImageHelpers.psm1 | 2 ++ .../scripts/ImageHelpers/InstallHelpers.ps1 | 3 +- .../scripts/ImageHelpers/MarkdownHelpers.ps1 | 2 +- .../scripts/Installers/Install-AzureCli.ps1 | 2 +- .../win/scripts/Installers/Install-MinGW.ps1 | 2 +- 6 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 images/win/scripts/ImageHelpers/ChocoHelpers.ps1 diff --git a/images/win/scripts/ImageHelpers/ChocoHelpers.ps1 b/images/win/scripts/ImageHelpers/ChocoHelpers.ps1 new file mode 100644 index 00000000..f81ad0a1 --- /dev/null +++ b/images/win/scripts/ImageHelpers/ChocoHelpers.ps1 @@ -0,0 +1,33 @@ +function Install-Choco { + [CmdletBinding()] + param( + [Parameter(Mandatory)] + [string]$install, + [int]$retries = 5 + ) + + begin { } + process { + $condition = $false + $count = 0 + do { + Write-Output "running: powershell choco install $install -y" + powershell choco install $install -y + + $installed = powershell choco list -lo $install --all + $match = (($installed -match "^$install.*").Length -ne 0) + if ($match) { + Write-Output "package installed: $install" + $condition = $true + } + else { + $count++ + if ($count -eq $retries) { + Write-Error "Could not install $install after $count attempts" + exit 1 + } + } + } while ($condition -eq $false) + } + end { } +} \ No newline at end of file diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 index c40b1098..9e750b8d 100644 --- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 +++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 @@ -4,6 +4,7 @@ param() . $PSScriptRoot\PathHelpers.ps1 . $PSScriptRoot\InstallHelpers.ps1 . $PSScriptRoot\MarkdownHelpers.ps1 +. $PSScriptRoot\ChocoHelpers.ps1 Export-ModuleMember -Function @( 'Test-MachinePath' @@ -26,4 +27,5 @@ Export-ModuleMember -Function @( 'Get-WinVersion' 'Test-IsWin19' 'Test-IsWin16' + 'Install-Choco' ) diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index a016e5fd..13f2fbf9 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -3,7 +3,8 @@ function Install-MSI Param ( [String]$MsiUrl, - [String]$MsiName + [String]$MsiName, + [int]$retries = 5 ) $exitCode = -1 diff --git a/images/win/scripts/ImageHelpers/MarkdownHelpers.ps1 b/images/win/scripts/ImageHelpers/MarkdownHelpers.ps1 index da5d53e2..49becbc9 100644 --- a/images/win/scripts/ImageHelpers/MarkdownHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/MarkdownHelpers.ps1 @@ -1,5 +1,5 @@ function Add-ContentToMarkdown { - [CmdletBinding()] + param( $Content = "" ) diff --git a/images/win/scripts/Installers/Install-AzureCli.ps1 b/images/win/scripts/Installers/Install-AzureCli.ps1 index 4756bce3..ca96558a 100644 --- a/images/win/scripts/Installers/Install-AzureCli.ps1 +++ b/images/win/scripts/Installers/Install-AzureCli.ps1 @@ -3,7 +3,7 @@ ## Desc: Install Azure CLI ################################################################################ -choco install azure-cli -y +Install-Choco "azure-cli" $AzureCliExtensionPath = Join-Path $Env:CommonProgramFiles 'AzureCliExtensionDirectory' New-Item -ItemType "directory" -Path $AzureCliExtensionPath diff --git a/images/win/scripts/Installers/Install-MinGW.ps1 b/images/win/scripts/Installers/Install-MinGW.ps1 index fe97ddde..c2aa0f52 100644 --- a/images/win/scripts/Installers/Install-MinGW.ps1 +++ b/images/win/scripts/Installers/Install-MinGW.ps1 @@ -5,7 +5,7 @@ Import-Module -Name ImageHelpers -Force -choco install -y mingw +Install-Choco "mingw" # Make a copy of mingw32-make.exe to make.exe, which is a more discoverable name # and so the same command line can be used on Windows as on macOS and Linux From bb9538cc9b547051c01ff5a20439b9660ffcb6e7 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Tue, 14 Apr 2020 13:23:44 +0500 Subject: [PATCH 15/74] Migrate /etc/environment modifications to helpers (#660) * migrate rust * Migrate PHP composer * Migrate dotnet core sdk * rename `var_*` to `variable_*` * rename *etcEnvironmentVar functions to *etcEnvironmentVariable * add AppendEtcEnvironmentVariable and PrependEtcEnvironmentVariable * rename addEtcEnvironmentPathElement to prependEtcEnvironmentPath * Remove updatepath.sh Co-authored-by: Sergey Dolin --- .../linux/scripts/helpers/etc-environment.sh | 61 ++++++++++++------- images/linux/scripts/installers/1604/php.sh | 5 ++ images/linux/scripts/installers/1804/php.sh | 4 ++ .../scripts/installers/dotnetcore-sdk.sh | 4 +- images/linux/scripts/installers/homebrew.sh | 2 +- images/linux/scripts/installers/rust.sh | 6 +- images/linux/scripts/installers/updatepath.sh | 7 --- images/linux/ubuntu1604.json | 1 - images/linux/ubuntu1804.json | 1 - 9 files changed, 55 insertions(+), 36 deletions(-) delete mode 100644 images/linux/scripts/installers/updatepath.sh diff --git a/images/linux/scripts/helpers/etc-environment.sh b/images/linux/scripts/helpers/etc-environment.sh index bedc7119..f0a68cf4 100644 --- a/images/linux/scripts/helpers/etc-environment.sh +++ b/images/linux/scripts/helpers/etc-environment.sh @@ -8,42 +8,57 @@ # values containg slashes (i.e. directory path) # The values containing '%' will break the functions -function getEtcEnvironmentVar { - var_name="$1" - # remove `var_name=` and possible quotes from the line - grep "^${var_name}=" /etc/environment |sed -E "s%^${var_name}=\"?([^\"]+)\"?.*$%\1%" +function getEtcEnvironmentVariable { + variable_name="$1" + # remove `variable_name=` and possible quotes from the line + grep "^${variable_name}=" /etc/environment |sed -E "s%^${variable_name}=\"?([^\"]+)\"?.*$%\1%" } -function addEtcEnvironmentVar { - var_name="$1" - var_value="$2" +function addEtcEnvironmentVariable { + variable_name="$1" + variable_value="$2" - echo "$var_name=\"$var_value\"" | sudo tee -a /etc/environment + echo "$variable_name=\"$variable_value\"" | sudo tee -a /etc/environment } -function replaceEtcEnvironmentVar { - var_name="$1" - var_value="$2" +function replaceEtcEnvironmentVariable { + variable_name="$1" + variable_value="$2" - # modify /etc/environemnt in place by replacing a string that begins with var_name - sudo sed -ie "s%^${var_name}=.*$%${var_name}=\"${var_value}\"%" /etc/environment + # modify /etc/environemnt in place by replacing a string that begins with variable_name + sudo sed -ie "s%^${variable_name}=.*$%${variable_name}=\"${variable_value}\"%" /etc/environment } -function setEtcEnvironmentVar { - var_name="$1" - var_value="$2" +function setEtcEnvironmentVariable { + variable_name="$1" + variable_value="$2" - if grep "$var_name" /etc/environment > /dev/null; then - replaceEtcEnvironmentVar $var_name $var_value + if grep "$variable_name" /etc/environment > /dev/null; then + replaceEtcEnvironmentVariable $variable_name $variable_value else - addEtcEnvironmentVar $var_name $var_value + addEtcEnvironmentVariable $variable_name $variable_value fi } -function addEtcEnvironmentPathElement { +function prependEtcEnvironmentVariable { + variable_name="$1" + element="$2" + # TODO: handle the case if the variable does not exist + existing_value=$(getEtcEnvironmentVariable "${variable_name}") + setEtcEnvironmentVariable "${variable_name}" "${element}:${existing_value}" +} + +function appendEtcEnvironmentVariable { + variable_name="$1" + element="$2" + # TODO: handle the case if the variable does not exist + existing_value=$(getEtcEnvironmentVariable "${variable_name}") + setEtcEnvironmentVariable "${variable_name}" "${existing_value}:${element}" +} + +function prependEtcEnvironmentPath { element="$1" - etc_path=$(getEtcEnvironmentVar PATH) - setEtcEnvironmentVar PATH "${element}:${etc_path}" + prependEtcEnvironmentVariable PATH "${element}" } # Process /etc/environment as if it were shell script with `export VAR=...` expressions @@ -59,7 +74,7 @@ function reloadEtcEnvironment { # add `export ` to every variable of /etc/environemnt except PATH and eval the result shell script eval $(grep -v '^PATH=' /etc/environment | sed -e 's%^%export %') # handle PATH specially - etc_path=$(getEtcEnvironmentVar PATH) + etc_path=$(getEtcEnvironmentVariable PATH) export PATH="$PATH:$etc_path" } diff --git a/images/linux/scripts/installers/1604/php.sh b/images/linux/scripts/installers/1604/php.sh index 147cedd6..44f2ad3b 100644 --- a/images/linux/scripts/installers/1604/php.sh +++ b/images/linux/scripts/installers/1604/php.sh @@ -5,6 +5,7 @@ ################################################################################ # Source the helpers for use with the script +source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/document.sh LSB_RELEASE=$(lsb_release -rs) @@ -276,6 +277,9 @@ php composer-setup.php sudo mv composer.phar /usr/bin/composer php -r "unlink('composer-setup.php');" +# Update /etc/environment +prependEtcEnvironmentPath /home/runner/.config/composer/vendor/bin + # Add composer bin folder to path echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> /etc/skel/.bashrc @@ -293,6 +297,7 @@ for cmd in php php5.6 php7.0 php7.1 php7.2 php7.3 php7.4 composer phpunit; do fi done + # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "PHP 5.6 ($(php5.6 --version | head -n 1))" diff --git a/images/linux/scripts/installers/1804/php.sh b/images/linux/scripts/installers/1804/php.sh index 09d5cd96..8ab10d78 100644 --- a/images/linux/scripts/installers/1804/php.sh +++ b/images/linux/scripts/installers/1804/php.sh @@ -5,6 +5,7 @@ ################################################################################ # Source the helpers for use with the script +source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/document.sh LSB_RELEASE=$(lsb_release -rs) @@ -193,6 +194,9 @@ php composer-setup.php sudo mv composer.phar /usr/bin/composer php -r "unlink('composer-setup.php');" +# Update /etc/environment +prependEtcEnvironmentPath /home/runner/.config/composer/vendor/bin + # Add composer bin folder to path echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> /etc/skel/.bashrc diff --git a/images/linux/scripts/installers/dotnetcore-sdk.sh b/images/linux/scripts/installers/dotnetcore-sdk.sh index d0e13810..70d712e2 100644 --- a/images/linux/scripts/installers/dotnetcore-sdk.sh +++ b/images/linux/scripts/installers/dotnetcore-sdk.sh @@ -3,6 +3,7 @@ ## File: dotnetcore-sdk.sh ## Desc: Installs .NET Core SDK ################################################################################ +source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/apt.sh source $HELPER_SCRIPTS/document.sh @@ -95,5 +96,6 @@ done # NuGetFallbackFolder at /usr/share/dotnet/sdk/NuGetFallbackFolder is warmed up by smoke test # Additional FTE will just copy to ~/.dotnet/NuGet which provides no benefit on a fungible machine -echo "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1" | tee -a /etc/environment +setEtcEnvironmentVariable DOTNET_SKIP_FIRST_TIME_EXPERIENCE 1 +prependEtcEnvironmentPath /home/runner/.dotnet/tools echo 'export PATH="$PATH:$HOME/.dotnet/tools"' | tee -a /etc/skel/.bashrc diff --git a/images/linux/scripts/installers/homebrew.sh b/images/linux/scripts/installers/homebrew.sh index 58c8a11d..17622f5c 100644 --- a/images/linux/scripts/installers/homebrew.sh +++ b/images/linux/scripts/installers/homebrew.sh @@ -20,7 +20,7 @@ sudo chmod -R o+w $HOMEBREW_PREFIX brew shellenv|grep 'export HOMEBREW'|sed -E 's/^export (.*);$/\1/' | sudo tee -a /etc/environment # add brew executables locations to PATH brew_path=$(brew shellenv|grep '^export PATH' |sed -E 's/^export PATH="([^$]+)\$.*/\1/') -addEtcEnvironmentPathElement "$brew_path" +prependEtcEnvironmentPath "$brew_path" # Validate the installation ad hoc echo "Validate the installation reloading /etc/environment" diff --git a/images/linux/scripts/installers/rust.sh b/images/linux/scripts/installers/rust.sh index 850868a4..c3f0ae94 100644 --- a/images/linux/scripts/installers/rust.sh +++ b/images/linux/scripts/installers/rust.sh @@ -5,10 +5,9 @@ ################################################################################ # Source the helpers for use with the script +source $HELPER_SCRIPTS/etc-environment.sh source $HELPER_SCRIPTS/document.sh -set -e - export RUSTUP_HOME=/usr/share/rust/.rustup export CARGO_HOME=/usr/share/rust/.cargo @@ -33,6 +32,9 @@ for cmd in rustup rustc rustdoc cargo rustfmt cargo-clippy bindgen cbindgen; do fi done +# Update /etc/environemnt +prependEtcEnvironmentPath "${CARGO_HOME}/bin" + # Rust Symlinks are added to a default profile /etc/skel pushd /etc/skel ln -sf $RUSTUP_HOME .rustup diff --git a/images/linux/scripts/installers/updatepath.sh b/images/linux/scripts/installers/updatepath.sh deleted file mode 100644 index 527ba524..00000000 --- a/images/linux/scripts/installers/updatepath.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -CARGO_HOME=/usr/share/rust/.cargo -DOTNET_TOOLS_HOME=/home/runner/.dotnet/tools -PHP_COMPOSER_HOME=/home/runner/.config/composer/vendor/bin -BREW_PATH=/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin -echo "PATH=${BREW_PATH}:${CARGO_HOME}/bin:${PATH}:${DOTNET_TOOLS_HOME}:${PHP_COMPOSER_HOME}" | tee -a /etc/environment diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index bf47f0c4..c3854767 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -218,7 +218,6 @@ "{{template_dir}}/scripts/installers/packer.sh", "{{template_dir}}/scripts/installers/vcpkg.sh", "{{template_dir}}/scripts/installers/zeit-now.sh", - "{{template_dir}}/scripts/installers/updatepath.sh", "{{template_dir}}/scripts/installers/dpkg-config.sh", "{{template_dir}}/scripts/installers/mongodb.sh", "{{template_dir}}/scripts/installers/rndgenerator.sh" diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index d2129a20..1c4e704b 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -222,7 +222,6 @@ "{{template_dir}}/scripts/installers/packer.sh", "{{template_dir}}/scripts/installers/vcpkg.sh", "{{template_dir}}/scripts/installers/zeit-now.sh", - "{{template_dir}}/scripts/installers/updatepath.sh", "{{template_dir}}/scripts/installers/dpkg-config.sh", "{{template_dir}}/scripts/installers/mongodb.sh", "{{template_dir}}/scripts/installers/rndgenerator.sh" From 83d31983bac21256e99f64eed3d9cc93577fb160 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin <57713077+andy-mishechkin@users.noreply.github.com> Date: Tue, 14 Apr 2020 16:10:21 +0400 Subject: [PATCH 16/74] Ubuntu 14.04 Docker container has been added (#714) --- images/linux/scripts/installers/docker-moby.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index b9d43b54..1f371a8c 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -44,6 +44,7 @@ docker pull alpine:3.7 docker pull alpine:3.8 docker pull alpine:3.9 docker pull alpine:3.10 +docker pull ubuntu:14.04 ## Add version information to the metadata file echo "Documenting Docker version" From 8abd45c3a8c2f777498e0df36853faf163558b15 Mon Sep 17 00:00:00 2001 From: Nikita Bykov <49442273+nikita-bykov@users.noreply.github.com> Date: Tue, 14 Apr 2020 15:13:37 +0300 Subject: [PATCH 17/74] Pre-install Android NDK 20 on Ubuntu (#711) * added ndk 20 Co-authored-by: Nikita Bykov --- images/linux/scripts/installers/1604/android.sh | 2 ++ images/linux/scripts/installers/1804/android.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/images/linux/scripts/installers/1604/android.sh b/images/linux/scripts/installers/1604/android.sh index 8dd2d6fa..beb5cdc7 100644 --- a/images/linux/scripts/installers/1604/android.sh +++ b/images/linux/scripts/installers/1604/android.sh @@ -41,6 +41,7 @@ fi # Install the following SDKs and build tools, passing in "y" to accept licenses. echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \ "ndk-bundle" \ + "ndk;20.0.5594570" \ "platform-tools" \ "platforms;android-29" \ "platforms;android-28" \ @@ -160,5 +161,6 @@ DocumentInstalledItem "Android SDK Build-Tools 20.0.0" DocumentInstalledItem "Android SDK Build-Tools 19.1.0" DocumentInstalledItem "Android SDK Build-Tools 17.0.0" DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)" +DocumentInstalledItem "Android NDK 20.0.5594570" DocumentInstalledItem "Android ConstraintLayout 1.0.2" DocumentInstalledItem "Android ConstraintLayout 1.0.1" diff --git a/images/linux/scripts/installers/1804/android.sh b/images/linux/scripts/installers/1804/android.sh index 0bb58fb8..60d21643 100644 --- a/images/linux/scripts/installers/1804/android.sh +++ b/images/linux/scripts/installers/1804/android.sh @@ -40,6 +40,7 @@ fi # Install the following SDKs and build tools, passing in "y" to accept licenses. echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \ "ndk-bundle" \ + "ndk;20.0.5594570" \ "platform-tools" \ "platforms;android-29" \ "platforms;android-28" \ @@ -149,3 +150,4 @@ DocumentInstalledItem "Android SDK Build-Tools 20.0.0" DocumentInstalledItem "Android SDK Build-Tools 19.1.0" DocumentInstalledItem "Android SDK Build-Tools 17.0.0" DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)" +DocumentInstalledItem "Android NDK 20.0.5594570" From bd3709460b286ffade35dd83b2be9a76d5e99d4c Mon Sep 17 00:00:00 2001 From: Alejandro Pauly Date: Tue, 14 Apr 2020 16:13:30 -0400 Subject: [PATCH 18/74] Fix Git installer to download directly from release (#718) * Install Git for Windows directly from official release rather than Chocolatey. --- images/win/scripts/Installers/Install-Git.ps1 | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1 index 24efc5bd..0466fcd1 100644 --- a/images/win/scripts/Installers/Install-Git.ps1 +++ b/images/win/scripts/Installers/Install-Git.ps1 @@ -5,9 +5,33 @@ Import-Module -Name ImageHelpers -# Install the latest version of Git which is bundled with Git LFS. -# See https://chocolatey.org/packages/git -choco install git -y --package-parameters="/GitAndUnixToolsOnPath /WindowsTerminal /NoShellIntegration" +function getSimpleValue([string] $url, [string] $filename ) { + $fullpath = "${env:Temp}\$filename" + Invoke-WebRequest -Uri $url -OutFile $fullpath + $value = Get-Content $fullpath -Raw + + return $value +} + +# Install the latest version of Git for Windows +$gitTag = getSimpleValue -url "https://gitforwindows.org/latest-tag.txt" -filename "gitlatesttag.txt" +$gitVersion = getSimpleValue -url "https://gitforwindows.org/latest-version.txt" -filename "gitlatestversion.txt"; + +$installerFile = "Git-$gitVersion-64-bit.exe"; +$downloadUrl = "https://github.com/git-for-windows/git/releases/download/$gitTag/$installerFile"; +Install-Exe -Url $downloadUrl ` + -Name $installerFile ` + -ArgumentList ( + "/VERYSILENT", ` + "/NORESTART", ` + "/NOCANCEL", ` + "/SP-", ` + "/CLOSEAPPLICATIONS", ` + "/RESTARTAPPLICATIONS", ` + "/o:PathOption=CmdTools", ` + "/o:BashTerminalOption=ConHost", ` + "/COMPONENTS=gitlfs") + choco install hub # Disable GCM machine-wide From cf559641b40626dd0c19b267b49e44ea54ec2275 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 15 Apr 2020 10:24:45 +0300 Subject: [PATCH 19/74] fix Julia destination folder --- images/win/scripts/Installers/Install-Julia.ps1 | 2 +- images/win/scripts/Installers/Validate-Julia.ps1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-Julia.ps1 b/images/win/scripts/Installers/Install-Julia.ps1 index 90547472..f1f42116 100644 --- a/images/win/scripts/Installers/Install-Julia.ps1 +++ b/images/win/scripts/Installers/Install-Julia.ps1 @@ -3,4 +3,4 @@ ## Desc: Install Julia ################################################################################ -choco install julia -y --ia "/D=C:\Julia" +choco install julia -y --ia "/DIR=C:\Julia" diff --git a/images/win/scripts/Installers/Validate-Julia.ps1 b/images/win/scripts/Installers/Validate-Julia.ps1 index e31bd39f..41f9310a 100644 --- a/images/win/scripts/Installers/Validate-Julia.ps1 +++ b/images/win/scripts/Installers/Validate-Julia.ps1 @@ -4,7 +4,7 @@ ################################################################################ # Verify that julia.exe is on the path -if(Get-Command -Name 'julia') +if((Get-Command -Name 'julia') -and (Test-Path -Path 'C:\Julia')) { Write-Host "$(julia --version) is on the path." } From 66376977a001c9847b64a2c206e17f43a3448f75 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev Date: Wed, 15 Apr 2020 14:05:30 +0300 Subject: [PATCH 20/74] add particular commit for vcpkg --- images/linux/scripts/installers/vcpkg.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/vcpkg.sh b/images/linux/scripts/installers/vcpkg.sh index 9f6e60aa..9a99a886 100644 --- a/images/linux/scripts/installers/vcpkg.sh +++ b/images/linux/scripts/installers/vcpkg.sh @@ -12,7 +12,10 @@ VCPKG_INSTALLATION_ROOT=/usr/local/share/vcpkg echo "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" | tee -a /etc/environment # Install vcpkg -git clone --depth=1 https://github.com/Microsoft/vcpkg $VCPKG_INSTALLATION_ROOT +git clone https://github.com/Microsoft/vcpkg $VCPKG_INSTALLATION_ROOT +# Workaround to avoid issues caused by this PR https://github.com/microsoft/vcpkg/pull/10834 +git checkout 1e19af09e53e5f306ed89c2033817a21e5ee0bcf + $VCPKG_INSTALLATION_ROOT/bootstrap-vcpkg.sh $VCPKG_INSTALLATION_ROOT/vcpkg integrate install chmod 0777 -R $VCPKG_INSTALLATION_ROOT From 5048c104df87bf91318288afeb945c5ee0d737d5 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev Date: Wed, 15 Apr 2020 17:34:44 +0300 Subject: [PATCH 21/74] add cd --- images/linux/scripts/installers/vcpkg.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/images/linux/scripts/installers/vcpkg.sh b/images/linux/scripts/installers/vcpkg.sh index 9a99a886..d9672348 100644 --- a/images/linux/scripts/installers/vcpkg.sh +++ b/images/linux/scripts/installers/vcpkg.sh @@ -14,6 +14,7 @@ echo "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" | tee -a /etc/environm # Install vcpkg git clone https://github.com/Microsoft/vcpkg $VCPKG_INSTALLATION_ROOT # Workaround to avoid issues caused by this PR https://github.com/microsoft/vcpkg/pull/10834 +cd $VCPKG_INSTALLATION_ROOT git checkout 1e19af09e53e5f306ed89c2033817a21e5ee0bcf $VCPKG_INSTALLATION_ROOT/bootstrap-vcpkg.sh From d4435d6a1172d2e19f096e53d4d012643bc95261 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Thu, 16 Apr 2020 16:34:59 +0500 Subject: [PATCH 22/74] Add AWS SAM CLI (#615) Added in its own block because must be run as non-root user Co-authored-by: Sergey Dolin --- .../linux/scripts/installers/aws-sam-cli.sh | 24 +++++++++++++++++++ images/linux/ubuntu1604.json | 12 ++++++++++ images/linux/ubuntu1804.json | 12 ++++++++++ 3 files changed, 48 insertions(+) create mode 100644 images/linux/scripts/installers/aws-sam-cli.sh diff --git a/images/linux/scripts/installers/aws-sam-cli.sh b/images/linux/scripts/installers/aws-sam-cli.sh new file mode 100644 index 00000000..3cee6015 --- /dev/null +++ b/images/linux/scripts/installers/aws-sam-cli.sh @@ -0,0 +1,24 @@ +#!/bin/bash +################################################################################ +## File: aws-sam-cli.sh +## Desc: Installs AWS SAM CLI +## Must be run as non-root user after homebrew and clang +################################################################################ + +# Source the helpers for use with the script +source $HELPER_SCRIPTS/document.sh + +# Install aws sam cli +brew tap aws/tap +brew install aws-sam-cli + +# Run tests to determine that the software installed as expected +echo "Testing to make sure that script performed as expected, and basic scenarios work" +if ! sam --version; then + echo "AWS SAM CLI was not installed" + exit 1 +fi + +# Document what was added to the image +echo "Lastly, documenting what we added to the metadata file" +DocumentInstalledItem "AWS $(sam --version)" \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index c3854767..38f6a20e 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -229,6 +229,18 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts": [ + "{{template_dir}}/scripts/installers/aws-sam-cli.sh" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "DEBIAN_FRONTEND=noninteractive" + ], + "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + }, { "type": "shell", "scripts": [ diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 1c4e704b..dccbbe96 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -233,6 +233,18 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts": [ + "{{template_dir}}/scripts/installers/aws-sam-cli.sh" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "DEBIAN_FRONTEND=noninteractive" + ], + "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + }, { "type": "shell", "scripts": [ From 79e8d1be9982366b07f73004e87f4db5eb786244 Mon Sep 17 00:00:00 2001 From: Maksim Petrov Date: Thu, 16 Apr 2020 22:12:19 +0300 Subject: [PATCH 23/74] Fix gem update for default ruby --- images/win/scripts/Installers/Download-ToolCache.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Download-ToolCache.ps1 b/images/win/scripts/Installers/Download-ToolCache.ps1 index cc42e97e..4749a3f3 100644 --- a/images/win/scripts/Installers/Download-ToolCache.ps1 +++ b/images/win/scripts/Installers/Download-ToolCache.ps1 @@ -71,8 +71,10 @@ Function Set-DefaultRubyVersion { Write-Host "Use Ruby ${Version} as a system Ruby" Add-MachinePathItem -PathItem $rubyDir.FullName + $env:Path = Get-MachinePath + # Update ruby gem to latest version - gem update --system + Invoke-Expression "gem update --system" } Import-Module -Name ImageHelpers -Force From b372346543caee070b45c7d84e67d7456eddbfff Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Fri, 17 Apr 2020 00:05:31 +0400 Subject: [PATCH 24/74] Moby-buildx installation has been added --- images/linux/scripts/base/repos.sh | 3 +++ images/linux/scripts/installers/docker-moby.sh | 1 + 2 files changed, 4 insertions(+) diff --git a/images/linux/scripts/base/repos.sh b/images/linux/scripts/base/repos.sh index 4ecd2028..b1a3aafa 100644 --- a/images/linux/scripts/base/repos.sh +++ b/images/linux/scripts/base/repos.sh @@ -16,4 +16,7 @@ curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg + +curl https://packages.microsoft.com/config/ubuntu/$LSB_RELEASE/multiarch/prod.list > /etc/apt/sources.list.d/microsoft-prod.list + apt-get update \ No newline at end of file diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index b9d43b54..9a944109 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -16,6 +16,7 @@ if ! IsInstalled $docker_package; then apt-get remove -y moby-engine moby-cli apt-get update apt-get install -y moby-engine moby-cli + apt-get install --no-install-recommends -y moby-buildx else echo "Docker ($docker_package) is already installed" fi From edce722a68601539a77135215c2b1142e8951d20 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Fri, 17 Apr 2020 10:53:30 +0300 Subject: [PATCH 25/74] Improve choco stability by adding retry logic on Windows images (#721) Add retry logic for choco install to avoid random failures --- images/win/Windows2016-Azure.json | 4 --- .../win/scripts/ImageHelpers/ChocoHelpers.ps1 | 35 +++++++++---------- .../scripts/ImageHelpers/ImageHelpers.psm1 | 2 +- .../win/scripts/Installers/Install-7zip.ps1 | 2 +- images/win/scripts/Installers/Install-AWS.ps1 | 2 +- .../scripts/Installers/Install-AliyunCli.ps1 | 2 +- .../scripts/Installers/Install-AzureCli.ps1 | 2 +- .../win/scripts/Installers/Install-Bazel.ps1 | 2 +- .../win/scripts/Installers/Install-Cmake.ps1 | 2 +- .../win/scripts/Installers/Install-Docker.ps1 | 6 ++-- .../win/scripts/Installers/Install-Edge.ps1 | 2 +- images/win/scripts/Installers/Install-Git.ps1 | 2 +- .../scripts/Installers/Install-GitVersion.ps1 | 2 +- .../scripts/Installers/Install-InnoSetup.ps1 | 2 +- .../scripts/Installers/Install-JavaTools.ps1 | 6 ++-- images/win/scripts/Installers/Install-Jq.ps1 | 2 +- .../win/scripts/Installers/Install-Julia.ps1 | 2 +- .../Installers/Install-KubernetesCli.ps1 | 2 +- .../scripts/Installers/Install-Mercurial.ps1 | 2 +- .../win/scripts/Installers/Install-MinGW.ps1 | 2 +- .../win/scripts/Installers/Install-NSIS.ps1 | 2 +- .../scripts/Installers/Install-NodeLts.ps1 | 2 +- .../scripts/Installers/Install-OpenSSL.ps1 | 2 +- images/win/scripts/Installers/Install-PHP.ps1 | 4 +-- .../win/scripts/Installers/Install-Packer.ps1 | 2 +- .../win/scripts/Installers/Install-Perl.ps1 | 2 +- images/win/scripts/Installers/Install-Sbt.ps1 | 2 +- images/win/scripts/Installers/Install-Svn.ps1 | 2 +- .../scripts/Installers/Install-VSWhere.ps1 | 2 +- images/win/scripts/Installers/Install-Wix.ps1 | 4 +-- .../win/scripts/Installers/Install-Zstd.ps1 | 2 +- .../Installers/Windows2016/Initialize-VM.ps1 | 5 ++- .../Installers/Windows2019/Initialize-VM.ps1 | 2 +- 33 files changed, 57 insertions(+), 59 deletions(-) diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 97a06702..8732a9fb 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -175,10 +175,6 @@ "{{ template_dir }}/scripts/Installers/Windows2016/Update-DockerImages.ps1" ] }, - { - "type": "powershell", - "inline": ["choco install vcredist140 -y"] - }, { "type": "powershell", "valid_exit_codes": [ diff --git a/images/win/scripts/ImageHelpers/ChocoHelpers.ps1 b/images/win/scripts/ImageHelpers/ChocoHelpers.ps1 index f81ad0a1..ee1f3912 100644 --- a/images/win/scripts/ImageHelpers/ChocoHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/ChocoHelpers.ps1 @@ -1,33 +1,32 @@ -function Install-Choco { +function Choco-Install { [CmdletBinding()] param( [Parameter(Mandatory)] - [string]$install, - [int]$retries = 5 + [string] $PackageName, + [string[]] $ArgumentList, + [int] $RetryCount = 5 ) - begin { } process { - $condition = $false - $count = 0 - do { - Write-Output "running: powershell choco install $install -y" - powershell choco install $install -y + $count = 1 + while($true) + { + Write-Host "Running [#$count]: choco install $packageName -y $argumentList" + choco install $packageName -y @argumentList - $installed = powershell choco list -lo $install --all - $match = (($installed -match "^$install.*").Length -ne 0) - if ($match) { - Write-Output "package installed: $install" - $condition = $true + $pkg = choco list --localonly $packageName --exact --all --limitoutput + if ($pkg) { + Write-Host "Package installed: $pkg" + break } else { $count++ - if ($count -eq $retries) { - Write-Error "Could not install $install after $count attempts" + if ($count -ge $retryCount) { + Write-Host "Could not install $packageName after $count attempts" exit 1 } + Start-Sleep -Seconds 30 } - } while ($condition -eq $false) + } } - end { } } \ No newline at end of file diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 index 9e750b8d..b3453926 100644 --- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 +++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 @@ -27,5 +27,5 @@ Export-ModuleMember -Function @( 'Get-WinVersion' 'Test-IsWin19' 'Test-IsWin16' - 'Install-Choco' + 'Choco-Install' ) diff --git a/images/win/scripts/Installers/Install-7zip.ps1 b/images/win/scripts/Installers/Install-7zip.ps1 index 4e86ad3c..419c8178 100644 --- a/images/win/scripts/Installers/Install-7zip.ps1 +++ b/images/win/scripts/Installers/Install-7zip.ps1 @@ -3,4 +3,4 @@ ## Desc: Install 7zip ################################################################################ -choco install 7zip.install -y +Choco-Install -PackageName 7zip.install diff --git a/images/win/scripts/Installers/Install-AWS.ps1 b/images/win/scripts/Installers/Install-AWS.ps1 index 124f32d2..b5ad9a6d 100644 --- a/images/win/scripts/Installers/Install-AWS.ps1 +++ b/images/win/scripts/Installers/Install-AWS.ps1 @@ -3,7 +3,7 @@ ## Desc: Install awscli ################################################################################ -choco install awscli -y +Choco-Install -PackageName awscli $env:PATH =$env:PATH + ";$Env:Programfiles\Amazon\AWSCLIV2" diff --git a/images/win/scripts/Installers/Install-AliyunCli.ps1 b/images/win/scripts/Installers/Install-AliyunCli.ps1 index 95b462b6..b46eb8a6 100644 --- a/images/win/scripts/Installers/Install-AliyunCli.ps1 +++ b/images/win/scripts/Installers/Install-AliyunCli.ps1 @@ -3,4 +3,4 @@ ## Desc: Install Alibaba Cloud CLI ################################################################################ -choco install aliyun-cli -y \ No newline at end of file +Choco-Install -PackageName aliyun-cli \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-AzureCli.ps1 b/images/win/scripts/Installers/Install-AzureCli.ps1 index ca96558a..4b5d7dae 100644 --- a/images/win/scripts/Installers/Install-AzureCli.ps1 +++ b/images/win/scripts/Installers/Install-AzureCli.ps1 @@ -3,7 +3,7 @@ ## Desc: Install Azure CLI ################################################################################ -Install-Choco "azure-cli" +Choco-Install -PackageName azure-cli $AzureCliExtensionPath = Join-Path $Env:CommonProgramFiles 'AzureCliExtensionDirectory' New-Item -ItemType "directory" -Path $AzureCliExtensionPath diff --git a/images/win/scripts/Installers/Install-Bazel.ps1 b/images/win/scripts/Installers/Install-Bazel.ps1 index fb14a856..fabbecd0 100644 --- a/images/win/scripts/Installers/Install-Bazel.ps1 +++ b/images/win/scripts/Installers/Install-Bazel.ps1 @@ -3,6 +3,6 @@ ## Desc: Install Bazel and Bazelisk (A user-friendly launcher for Bazel) ################################################################################ -choco install bazel -y +Choco-Install -PackageName bazel npm install -g @bazel/bazelisk \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Cmake.ps1 b/images/win/scripts/Installers/Install-Cmake.ps1 index b0ba514e..37183d5e 100644 --- a/images/win/scripts/Installers/Install-Cmake.ps1 +++ b/images/win/scripts/Installers/Install-Cmake.ps1 @@ -3,4 +3,4 @@ ## Desc: Install Cmake ################################################################################ -choco install cmake.install -y --installargs 'ADD_CMAKE_TO_PATH=""System""' +Choco-Install -PackageName cmake.install -ArgumentList "--installargs",'ADD_CMAKE_TO_PATH=""System""' diff --git a/images/win/scripts/Installers/Install-Docker.ps1 b/images/win/scripts/Installers/Install-Docker.ps1 index ec4f0d89..35e988ad 100644 --- a/images/win/scripts/Installers/Install-Docker.ps1 +++ b/images/win/scripts/Installers/Install-Docker.ps1 @@ -13,8 +13,8 @@ Write-Host "Install-Package Docker" Install-Package -Name docker -ProviderName DockerMsftProvider -Force Start-Service docker -choco install docker-compose -y +Write-Host "Install-Package Docker-Compose" +Choco-Install -PackageName docker-compose -# Install helm Write-Host "Install Helm" -choco install kubernetes-helm \ No newline at end of file +Choco-Install -PackageName kubernetes-helm \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Edge.ps1 b/images/win/scripts/Installers/Install-Edge.ps1 index b84f0fc1..430e8bbb 100644 --- a/images/win/scripts/Installers/Install-Edge.ps1 +++ b/images/win/scripts/Installers/Install-Edge.ps1 @@ -3,7 +3,7 @@ ## Desc: Install latest stable version of Microsoft Edge browser ################################################################################ -choco install microsoft-edge -y +Choco-Install -PackageName microsoft-edge # Install Microsoft Edge Web Driver Write-Host "Install Edge WebDriver" diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1 index 0466fcd1..5270675a 100644 --- a/images/win/scripts/Installers/Install-Git.ps1 +++ b/images/win/scripts/Installers/Install-Git.ps1 @@ -32,7 +32,7 @@ Install-Exe -Url $downloadUrl ` "/o:BashTerminalOption=ConHost", ` "/COMPONENTS=gitlfs") -choco install hub +Choco-Install -PackageName hub # Disable GCM machine-wide [Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine) diff --git a/images/win/scripts/Installers/Install-GitVersion.ps1 b/images/win/scripts/Installers/Install-GitVersion.ps1 index b97358e0..1e27e49f 100644 --- a/images/win/scripts/Installers/Install-GitVersion.ps1 +++ b/images/win/scripts/Installers/Install-GitVersion.ps1 @@ -3,4 +3,4 @@ ## Desc: Install GitVersion ################################################################################ -choco install gitversion.portable -y +Choco-Install -PackageName gitversion.portable diff --git a/images/win/scripts/Installers/Install-InnoSetup.ps1 b/images/win/scripts/Installers/Install-InnoSetup.ps1 index 8020120d..17f26962 100644 --- a/images/win/scripts/Installers/Install-InnoSetup.ps1 +++ b/images/win/scripts/Installers/Install-InnoSetup.ps1 @@ -3,4 +3,4 @@ ## Desc: Install Inno Setup ################################################################################ -choco install innosetup -y +Choco-Install -PackageName innosetup diff --git a/images/win/scripts/Installers/Install-JavaTools.ps1 b/images/win/scripts/Installers/Install-JavaTools.ps1 index 68c0209f..e88fc745 100644 --- a/images/win/scripts/Installers/Install-JavaTools.ps1 +++ b/images/win/scripts/Installers/Install-JavaTools.ps1 @@ -61,9 +61,9 @@ setx JAVA_HOME_11_X64 $latestJava11Install /M # Install Java tools # Force chocolatey to ignore dependencies on Ant and Maven or else they will download the Oracle JDK -choco install ant -y -i -choco install maven -y -i --version=3.6.3 -choco install gradle -y +Choco-Install -PackageName ant -ArgumentList "-i" +Choco-Install -PackageName maven -ArgumentList "-i", "--version=3.6.3" +Choco-Install -PackageName gradle # Move maven variables to Machine. They may not be in the environment for this script so we need to read them from the registry. $userSid = (Get-WmiObject win32_useraccount -Filter "name = '$env:USERNAME' AND domain = '$env:USERDOMAIN'").SID diff --git a/images/win/scripts/Installers/Install-Jq.ps1 b/images/win/scripts/Installers/Install-Jq.ps1 index 1ccb42da..5a383d79 100644 --- a/images/win/scripts/Installers/Install-Jq.ps1 +++ b/images/win/scripts/Installers/Install-Jq.ps1 @@ -3,4 +3,4 @@ ## Desc: Install jq ################################################################################ -choco install jq -y +Choco-Install -PackageName jq diff --git a/images/win/scripts/Installers/Install-Julia.ps1 b/images/win/scripts/Installers/Install-Julia.ps1 index f1f42116..6677b5d1 100644 --- a/images/win/scripts/Installers/Install-Julia.ps1 +++ b/images/win/scripts/Installers/Install-Julia.ps1 @@ -3,4 +3,4 @@ ## Desc: Install Julia ################################################################################ -choco install julia -y --ia "/DIR=C:\Julia" +Choco-Install -PackageName julia -ArgumentList "--ia","/DIR=C:\Julia" diff --git a/images/win/scripts/Installers/Install-KubernetesCli.ps1 b/images/win/scripts/Installers/Install-KubernetesCli.ps1 index 8c7350c0..c6ad04bc 100644 --- a/images/win/scripts/Installers/Install-KubernetesCli.ps1 +++ b/images/win/scripts/Installers/Install-KubernetesCli.ps1 @@ -3,4 +3,4 @@ ## Desc: Install KubernetesCli ################################################################################ -choco install kubernetes-cli -y +Choco-Install -PackageName kubernetes-cli diff --git a/images/win/scripts/Installers/Install-Mercurial.ps1 b/images/win/scripts/Installers/Install-Mercurial.ps1 index 65a5cdef..da820d1b 100644 --- a/images/win/scripts/Installers/Install-Mercurial.ps1 +++ b/images/win/scripts/Installers/Install-Mercurial.ps1 @@ -3,7 +3,7 @@ ## Desc: Install Mercurial ################################################################################ -choco install hg -y --version 5.0.0 +Choco-Install -PackageName hg -ArgumentList "--version", "5.0.0" $hgPath = "${env:ProgramFiles}\Mercurial\" Add-MachinePathItem $hgPath diff --git a/images/win/scripts/Installers/Install-MinGW.ps1 b/images/win/scripts/Installers/Install-MinGW.ps1 index c2aa0f52..ac585b9d 100644 --- a/images/win/scripts/Installers/Install-MinGW.ps1 +++ b/images/win/scripts/Installers/Install-MinGW.ps1 @@ -5,7 +5,7 @@ Import-Module -Name ImageHelpers -Force -Install-Choco "mingw" +Choco-Install -PackageName mingw # Make a copy of mingw32-make.exe to make.exe, which is a more discoverable name # and so the same command line can be used on Windows as on macOS and Linux diff --git a/images/win/scripts/Installers/Install-NSIS.ps1 b/images/win/scripts/Installers/Install-NSIS.ps1 index c8c5e370..71ceb70d 100644 --- a/images/win/scripts/Installers/Install-NSIS.ps1 +++ b/images/win/scripts/Installers/Install-NSIS.ps1 @@ -3,7 +3,7 @@ ## Desc: Install NSIS ################################################################################ -choco install nsis -y +Choco-Install -PackageName nsis $NsisPath = "${env:ProgramFiles(x86)}\NSIS\" Add-MachinePathItem $NsisPath diff --git a/images/win/scripts/Installers/Install-NodeLts.ps1 b/images/win/scripts/Installers/Install-NodeLts.ps1 index e1ec5f0f..c1ee0579 100644 --- a/images/win/scripts/Installers/Install-NodeLts.ps1 +++ b/images/win/scripts/Installers/Install-NodeLts.ps1 @@ -12,7 +12,7 @@ $CachePath = 'C:\npm\cache' New-Item -Path $PrefixPath -Force -ItemType Directory New-Item -Path $CachePath -Force -ItemType Directory -choco install nodejs-lts -y --force +Choco-Install -PackageName nodejs-lts -ArgumentList "--force" Add-MachinePathItem $PrefixPath $env:Path = Get-MachinePath diff --git a/images/win/scripts/Installers/Install-OpenSSL.ps1 b/images/win/scripts/Installers/Install-OpenSSL.ps1 index 5ff78339..4f43ad43 100644 --- a/images/win/scripts/Installers/Install-OpenSSL.ps1 +++ b/images/win/scripts/Installers/Install-OpenSSL.ps1 @@ -3,4 +3,4 @@ ## Desc: Install OpenSSL ################################################################################ -choco install openssl.light -y +Choco-Install -PackageName openssl.light diff --git a/images/win/scripts/Installers/Install-PHP.ps1 b/images/win/scripts/Installers/Install-PHP.ps1 index 72db2ee2..f4fc4f1d 100644 --- a/images/win/scripts/Installers/Install-PHP.ps1 +++ b/images/win/scripts/Installers/Install-PHP.ps1 @@ -8,10 +8,10 @@ Import-Module -Name ImageHelpers # Install latest PHP in chocolatey $installDir = "c:\tools\php" -choco install php -y --force --params "/InstallDir:$installDir" +Choco-Install -PackageName php -ArgumentList "--force", "--params", "/InstallDir:$installDir" # Install latest Composer in chocolatey -choco install composer --ia "/DEV=$installDir /PHP=$installDir" +Choco-Install -PackageName composer -ArgumentList "--ia", "/DEV=$installDir /PHP=$installDir" # update path to extensions and enable curl and mbstring extensions, and enable php openssl extensions. ((Get-Content -path $installDir\php.ini -Raw) -replace ';extension=curl','extension=curl' -replace ';extension=mbstring','extension=mbstring' -replace ';extension_dir = "ext"','extension_dir = "ext"' -replace 'extension=";php_openssl.dll"','extension_dir = "php_openssl.dll"') | Set-Content -Path $installDir\php.ini diff --git a/images/win/scripts/Installers/Install-Packer.ps1 b/images/win/scripts/Installers/Install-Packer.ps1 index 4374175d..6d74fbf7 100644 --- a/images/win/scripts/Installers/Install-Packer.ps1 +++ b/images/win/scripts/Installers/Install-Packer.ps1 @@ -3,4 +3,4 @@ ## Desc: Install Packer ################################################################################ -choco install packer -y +Choco-Install -PackageName packer diff --git a/images/win/scripts/Installers/Install-Perl.ps1 b/images/win/scripts/Installers/Install-Perl.ps1 index 59b1e11a..350e6c67 100644 --- a/images/win/scripts/Installers/Install-Perl.ps1 +++ b/images/win/scripts/Installers/Install-Perl.ps1 @@ -3,4 +3,4 @@ ## Desc: Install Perl ################################################################################ -choco install strawberryperl -y +Choco-Install -PackageName strawberryperl diff --git a/images/win/scripts/Installers/Install-Sbt.ps1 b/images/win/scripts/Installers/Install-Sbt.ps1 index b96ed5ac..bc0e95a2 100644 --- a/images/win/scripts/Installers/Install-Sbt.ps1 +++ b/images/win/scripts/Installers/Install-Sbt.ps1 @@ -8,7 +8,7 @@ Import-Module -Name ImageHelpers # Install the latest version of sbt. # See https://chocolatey.org/packages/sbt -choco install sbt -y +Choco-Install -PackageName sbt $env:SBT_HOME="${env:ProgramFiles(x86)}\sbt" diff --git a/images/win/scripts/Installers/Install-Svn.ps1 b/images/win/scripts/Installers/Install-Svn.ps1 index 45dd5231..315c4ef8 100644 --- a/images/win/scripts/Installers/Install-Svn.ps1 +++ b/images/win/scripts/Installers/Install-Svn.ps1 @@ -3,4 +3,4 @@ ## Desc: Install Subversion ################################################################################ -choco install svn -y +Choco-Install -PackageName svn diff --git a/images/win/scripts/Installers/Install-VSWhere.ps1 b/images/win/scripts/Installers/Install-VSWhere.ps1 index d6098654..5c623c93 100644 --- a/images/win/scripts/Installers/Install-VSWhere.ps1 +++ b/images/win/scripts/Installers/Install-VSWhere.ps1 @@ -3,4 +3,4 @@ ## Desc: Install latest stable version of VSWhere ################################################################################ -choco install vswhere -y +Choco-Install -PackageName vswhere diff --git a/images/win/scripts/Installers/Install-Wix.ps1 b/images/win/scripts/Installers/Install-Wix.ps1 index 076be86c..25469dab 100644 --- a/images/win/scripts/Installers/Install-Wix.ps1 +++ b/images/win/scripts/Installers/Install-Wix.ps1 @@ -3,9 +3,9 @@ ## Desc: Install WIX. ################################################################################ -Import-Module -Name ImageHelpers -Force; +Import-Module -Name ImageHelpers -Force -choco install wixtoolset -y --force +Choco-Install -PackageName wixtoolset -ArgumentList "--force" if(Test-IsWin19) { diff --git a/images/win/scripts/Installers/Install-Zstd.ps1 b/images/win/scripts/Installers/Install-Zstd.ps1 index 098334eb..2251143b 100644 --- a/images/win/scripts/Installers/Install-Zstd.ps1 +++ b/images/win/scripts/Installers/Install-Zstd.ps1 @@ -3,4 +3,4 @@ ## Desc: Install zstd ################################################################################ -choco install zstandard -y +Choco-Install -PackageName zstandard diff --git a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 index 6f7dd13e..d8fa7a05 100644 --- a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 @@ -111,7 +111,10 @@ choco feature enable -n allowGlobalConfirmation Remove-Item -Path $env:ChocolateyInstall\bin\cpack.exe -Force # Install webpi -choco install webpicmd -y +Choco-Install -PackageName webpicmd + +# Install vcredist140 +Choco-Install -PackageName vcredist140 # Expand disk size of OS drive diff --git a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 index 4f05935c..92e153d7 100644 --- a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 @@ -109,7 +109,7 @@ choco feature enable -n allowGlobalConfirmation Remove-Item -Path $env:ChocolateyInstall\bin\cpack.exe -Force # Install webpi -choco install webpicmd -y +Choco-Install -PackageName webpicmd # Expand disk size of OS drive From 5cd3d57cf310d8da4a18be24c775e3a463bfef61 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Fri, 17 Apr 2020 12:49:15 +0400 Subject: [PATCH 26/74] > has been changed to >> --- images/linux/scripts/base/repos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/base/repos.sh b/images/linux/scripts/base/repos.sh index b1a3aafa..f4e0d9e5 100644 --- a/images/linux/scripts/base/repos.sh +++ b/images/linux/scripts/base/repos.sh @@ -17,6 +17,6 @@ curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg -curl https://packages.microsoft.com/config/ubuntu/$LSB_RELEASE/multiarch/prod.list > /etc/apt/sources.list.d/microsoft-prod.list +curl https://packages.microsoft.com/config/ubuntu/$LSB_RELEASE/multiarch/prod.list >> /etc/apt/sources.list.d/microsoft-prod.list apt-get update \ No newline at end of file From 348abd0eb26ff900cffc8dc7fd87f432d9dfe672 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Fri, 17 Apr 2020 13:50:00 +0400 Subject: [PATCH 27/74] additional modification of microsoft-prod.list has been removed --- images/linux/scripts/base/repos.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/images/linux/scripts/base/repos.sh b/images/linux/scripts/base/repos.sh index f4e0d9e5..052f9770 100644 --- a/images/linux/scripts/base/repos.sh +++ b/images/linux/scripts/base/repos.sh @@ -17,6 +17,4 @@ curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg -curl https://packages.microsoft.com/config/ubuntu/$LSB_RELEASE/multiarch/prod.list >> /etc/apt/sources.list.d/microsoft-prod.list - apt-get update \ No newline at end of file From cb4a6e0cc0d25b8dc023afec6e053da8ac10cd61 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Fri, 17 Apr 2020 10:37:59 +0000 Subject: [PATCH 28/74] add libgbm (#734) --- images/linux/scripts/installers/1604/basic.sh | 2 ++ images/linux/scripts/installers/1804/basic.sh | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/images/linux/scripts/installers/1604/basic.sh b/images/linux/scripts/installers/1604/basic.sh index adc1e809..e579e1c0 100644 --- a/images/linux/scripts/installers/1604/basic.sh +++ b/images/linux/scripts/installers/1604/basic.sh @@ -49,6 +49,7 @@ apt-fast install -y --no-install-recommends \ libgconf-2-4 \ dbus \ xvfb \ + libgbm-dev \ libgtk-3-0 \ tk \ fakeroot \ @@ -80,6 +81,7 @@ DocumentInstalledItemIndent "jq" DocumentInstalledItemIndent "libc++-dev" DocumentInstalledItemIndent "libc++abi-dev" DocumentInstalledItemIndent "libcurl3" +DocumentInstalledItemIndent "libgbm-dev" DocumentInstalledItemIndent "libicu55" DocumentInstalledItemIndent "libunwind8" DocumentInstalledItemIndent "locales" diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index c12c7a81..29cb15b4 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -97,6 +97,9 @@ apt-get install -y --no-install-recommends dbus echo "Install xvfb" apt-get install -y --no-install-recommends xvfb +echo "Install libgbm-dev" +apt-get install -y --no-install-recommends libgbm-dev + echo "Install libgtk" apt-get install -y --no-install-recommends libgtk-3-0 @@ -147,6 +150,7 @@ DocumentInstalledItemIndent "iproute2" DocumentInstalledItemIndent "iputils-ping" DocumentInstalledItemIndent "jq" DocumentInstalledItemIndent "libcurl3" +DocumentInstalledItemIndent "libgbm-dev" DocumentInstalledItemIndent "libicu55" DocumentInstalledItemIndent "libunwind8" DocumentInstalledItemIndent "locales" From b1cf25f87347fa4d84260ac91431f11231b12e74 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Fri, 17 Apr 2020 10:38:10 +0000 Subject: [PATCH 29/74] [Ubuntu] Remove workaround for vcpkg (#728) * remove workaround * add workaround for ubuntu 16 * remove sudo * Spelling * remove extra lines --- images/linux/scripts/installers/vcpkg.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/images/linux/scripts/installers/vcpkg.sh b/images/linux/scripts/installers/vcpkg.sh index d9672348..69f50c5e 100644 --- a/images/linux/scripts/installers/vcpkg.sh +++ b/images/linux/scripts/installers/vcpkg.sh @@ -6,22 +6,30 @@ # Source the helpers for use with the script source $HELPER_SCRIPTS/document.sh +source $HELPER_SCRIPTS/os.sh # Set env variable for vcpkg VCPKG_INSTALLATION_ROOT=/usr/local/share/vcpkg echo "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" | tee -a /etc/environment # Install vcpkg -git clone https://github.com/Microsoft/vcpkg $VCPKG_INSTALLATION_ROOT -# Workaround to avoid issues caused by this PR https://github.com/microsoft/vcpkg/pull/10834 -cd $VCPKG_INSTALLATION_ROOT -git checkout 1e19af09e53e5f306ed89c2033817a21e5ee0bcf +git clone --depth=1 https://github.com/Microsoft/vcpkg $VCPKG_INSTALLATION_ROOT + +# vcpkg requires g++ version 7+, yet Ubuntu 16 default is 5.4. Set version 7 as default temporarily +if isUbuntu16; then + ln -sf g++-7 /usr/bin/g++ +fi $VCPKG_INSTALLATION_ROOT/bootstrap-vcpkg.sh $VCPKG_INSTALLATION_ROOT/vcpkg integrate install chmod 0777 -R $VCPKG_INSTALLATION_ROOT ln -sf $VCPKG_INSTALLATION_ROOT/vcpkg /usr/local/bin +# Set back g++ 5.4 as default +if isUbuntu16; then + ln -sf g++-5 /usr/bin/g++ +fi + # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" if ! command -v vcpkg; then From d2f31e25f5eff232291ac006ba48c91dce588625 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Fri, 17 Apr 2020 18:06:31 +0400 Subject: [PATCH 30/74] extra space has been removed --- images/linux/scripts/base/repos.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/images/linux/scripts/base/repos.sh b/images/linux/scripts/base/repos.sh index 052f9770..4ecd2028 100644 --- a/images/linux/scripts/base/repos.sh +++ b/images/linux/scripts/base/repos.sh @@ -16,5 +16,4 @@ curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg - apt-get update \ No newline at end of file From 54a14f61b30cbea726b8bfda9698cf4e3b8c3a47 Mon Sep 17 00:00:00 2001 From: Dariy Nurgaleev <50947177+Darleev@users.noreply.github.com> Date: Tue, 21 Apr 2020 14:21:02 +0700 Subject: [PATCH 31/74] Android SDK binaries insufficient permissions. (#747) * added correct rules for android sdk folder. * added for ubuntu 16 also. * added sudo for chmod operation. * removed redundunt sudo. * changed chmod parameters for a+X Co-authored-by: Dariy.Nurgaleev --- images/linux/scripts/installers/1604/android.sh | 2 ++ images/linux/scripts/installers/1804/android.sh | 3 +++ 2 files changed, 5 insertions(+) diff --git a/images/linux/scripts/installers/1604/android.sh b/images/linux/scripts/installers/1604/android.sh index beb5cdc7..074c7ce1 100644 --- a/images/linux/scripts/installers/1604/android.sh +++ b/images/linux/scripts/installers/1604/android.sh @@ -37,6 +37,8 @@ else exit 1 fi +# Add required permissions +chmod -R a+X ${ANDROID_SDK_ROOT} # Install the following SDKs and build tools, passing in "y" to accept licenses. echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \ diff --git a/images/linux/scripts/installers/1804/android.sh b/images/linux/scripts/installers/1804/android.sh index 60d21643..657e9045 100644 --- a/images/linux/scripts/installers/1804/android.sh +++ b/images/linux/scripts/installers/1804/android.sh @@ -27,6 +27,9 @@ wget -O android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux unzip android-sdk.zip -d ${ANDROID_SDK_ROOT} rm -f android-sdk.zip +# Add required permissions +chmod -R a+X ${ANDROID_SDK_ROOT} + # Check sdk manager installation /usr/local/lib/android/sdk/tools/bin/sdkmanager --list 1>/dev/null if [ $? -eq 0 ] From 8e8fbb4f76959b798a7b8013ed4792cf753c52dd Mon Sep 17 00:00:00 2001 From: Maksim Petrov <47208721+vmapetr@users.noreply.github.com> Date: Tue, 21 Apr 2020 11:58:27 +0300 Subject: [PATCH 32/74] Improve Windows helpers functions stability (#723) * Rework windows InstallHelpers; Add retry logic to install function --- .../scripts/ImageHelpers/ImageHelpers.psm1 | 3 +- .../scripts/ImageHelpers/InstallHelpers.ps1 | 267 +++++++++--------- .../Install-AzureCosmosDbEmulator.ps1 | 5 +- .../win/scripts/Installers/Install-Chrome.ps1 | 4 +- .../win/scripts/Installers/Install-DACFx.ps1 | 5 +- .../scripts/Installers/Install-Firefox.ps1 | 2 +- images/win/scripts/Installers/Install-Git.ps1 | 24 +- .../scripts/Installers/Install-Miniconda.ps1 | 12 +- .../scripts/Installers/Install-MysqlCli.ps1 | 36 +-- .../win/scripts/Installers/Install-NET472.ps1 | 4 +- .../win/scripts/Installers/Install-NET48.ps1 | 8 +- images/win/scripts/Installers/Install-WDK.ps1 | 19 +- .../Installers/Install-WinAppDriver.ps1 | 6 +- .../Installers/Windows2016/Install-SSDT.ps1 | 19 +- .../Windows2016/Install-Win81SDK.ps1 | 10 +- 15 files changed, 197 insertions(+), 227 deletions(-) diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 index b3453926..f979659d 100644 --- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 +++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 @@ -13,8 +13,7 @@ Export-ModuleMember -Function @( 'Add-MachinePathItem' 'Get-SystemVariable' 'Set-SystemVariable' - 'Install-MSI' - 'Install-EXE' + 'Install-Binary' 'Get-ToolcachePackages' 'Get-ToolsByName' 'Add-ContentToMarkdown' diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index 13f2fbf9..ee528780 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -1,163 +1,151 @@ -function Install-MSI +function Install-Binary { - Param - ( - [String]$MsiUrl, - [String]$MsiName, - [int]$retries = 5 + <# + .SYNOPSIS + A helper function to install executables. + + .DESCRIPTION + Download and install .exe or .msi binaries from specified URL. + + .PARAMETER Url + The URL from which the binary will be downloaded. Required parameter. + + .PARAMETER Name + The Name with which binary will be downloaded. Required parameter. + + .PARAMETER ArgumentList + The list of arguments that will be passed to the installer. Required for .exe binaries. + + .EXAMPLE + Install-Binary -Url "https://go.microsoft.com/fwlink/p/?linkid=2083338" -Name "winsdksetup.exe" -ArgumentList ("/features", "+", "/quiet") + #> + + Param ( + [Parameter(Mandatory)] + [String] $Url, + [Parameter(Mandatory)] + [String] $Name, + [String[]] $ArgumentList ) - $exitCode = -1 + Write-Host "Downloading $Name..." + $filePath = Start-DownloadWithRetry -Url $Url -Name $Name + + # MSI binaries should be installed via msiexec.exe + $fileExtension = ([System.IO.Path]::GetExtension($Name)).Replace(".", "") + if ($fileExtension -eq "msi") + { + $ArgumentList = ('/i', $filePath, '/QN', '/norestart') + $filePath = "msiexec.exe" + } try { - Write-Host "Downloading $MsiName..." - $FilePath = "${env:Temp}\$MsiName" + Write-Host "Starting Install $Name..." + $process = Start-Process -FilePath $filePath -ArgumentList $ArgumentList -Wait -PassThru - Invoke-WebRequest -Uri $MsiUrl -OutFile $FilePath - - $Arguments = ('/i', $FilePath, '/QN', '/norestart' ) - - Write-Host "Starting Install $MsiName..." - $process = Start-Process -FilePath msiexec.exe -ArgumentList $Arguments -Wait -PassThru $exitCode = $process.ExitCode - if ($exitCode -eq 0 -or $exitCode -eq 3010) { - Write-Host -Object 'Installation successful' - return $exitCode + Write-Host "Installation successful" } else { - Write-Host -Object "Non zero exit code returned by the installation process : $exitCode." + Write-Host "Non zero exit code returned by the installation process: $exitCode" exit $exitCode } } catch { - Write-Host -Object "Failed to install the MSI $MsiName" - Write-Host -Object $_.Exception.Message - exit -1 - } -} - - -function Install-EXE -{ - Param - ( - [String]$Url, - [String]$Name, - [String[]]$ArgumentList - ) - - $exitCode = -1 - - try - { - Write-Host "Downloading $Name..." - $FilePath = "${env:Temp}\$Name" - - Invoke-WebRequest -Uri $Url -OutFile $FilePath - - Write-Host "Starting Install $Name..." - $process = Start-Process -FilePath $FilePath -ArgumentList $ArgumentList -Wait -PassThru - $exitCode = $process.ExitCode - - if ($exitCode -eq 0 -or $exitCode -eq 3010) - { - Write-Host -Object 'Installation successful' - return $exitCode - } - else - { - Write-Host -Object "Non zero exit code returned by the installation process : $exitCode." - return $exitCode - } - } - catch - { - Write-Host -Object "Failed to install the Executable $Name" - Write-Host -Object $_.Exception.Message - return -1 + Write-Host "Failed to install the $fileExtension ${Name}: $($_.Exception.Message)" + exit 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 -#> { + <# + .DESCRIPTION + Function for stopping the Windows Service with error handling + + .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 + [Parameter(Mandatory, ValueFromPipeLine = $true)] + [string] $ServiceName, + [switch] $StopOnError ) - Process { - $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue - if (-not $Service) { - Write-Warning "[!] Service [$ServiceName] is not found"; - if ($StopOnError) { - exit 1; + 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"; + 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 { + catch + { Write-Error "[!] Failed to stop service [$ServiceName] with error:" - $_ | Out-String | Write-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 -#> { + <# + .DESCRIPTION + Function for setting the Windows Service parameter with error handling + + .PARAMETER ServiceName + The name of stopping service + + .PARAMETER Arguments + Hashtable for service arguments + #> param ( - [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName, - [Parameter(Mandatory)] [hashtable] $Arguments + [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"; + Process + { + $service = Get-Service $ServiceName -ErrorAction SilentlyContinue + if (-not $service) + { + Write-Warning "[!] Service [$ServiceName] is not found" + } + + try + { + Set-Service $serviceName @Arguments } - try { - Set-Service $ServiceName @Arguments; - } - catch { + catch + { Write-Error "[!] Failed to set service [$ServiceName] arguments with error:" - $_ | Out-String | Write-Error; + $_ | Out-String | Write-Error } } } @@ -173,36 +161,36 @@ function Start-DownloadWithRetry [int] $Retries = 20 ) - $FilePath = Join-Path -Path $DownloadPath -ChildPath $Name + $filePath = Join-Path -Path $DownloadPath -ChildPath $Name + #Default retry logic for the package. - while ($retries -gt 0) + while ($Retries -gt 0) { try { - Write-Host "Downloading package from: $Url to path $FilePath ." - (New-Object System.Net.WebClient).DownloadFile($Url, $FilePath) + Write-Host "Downloading package from: $Url to path $filePath ." + (New-Object System.Net.WebClient).DownloadFile($Url, $filePath) break } catch { Write-Host "There is an error during package downloading:`n $_" - $retries-- + $Retries-- - if ($retries -eq 0) + if ($Retries -eq 0) { Write-Host "File can't be downloaded. Please try later or check that file exists by url: $Url" exit 1 } - Write-Host "Waiting 30 seconds before retrying. Retries left: $retries" + Write-Host "Waiting 30 seconds before retrying. Retries left: $Retries" Start-Sleep -Seconds 30 } } - return $FilePath + return $filePath } - function Install-VsixExtension { Param @@ -217,12 +205,12 @@ function Install-VsixExtension [switch] $InstallOnly ) - if (!$InstallOnly) - { - $FilePath = Start-DownloadWithRetry -Url $Url -Name $Name - } + if (-not $InstallOnly) + { + $FilePath = Start-DownloadWithRetry -Url $Url -Name $Name + } - $ArgumentList = ('/quiet', "`"$FilePath`"") + $argumentList = ('/quiet', "`"$FilePath`"") Write-Host "Starting Install $Name..." try @@ -230,7 +218,7 @@ function Install-VsixExtension #There are 2 types of packages at the moment - exe and vsix if ($Name -match "vsix") { - $process = Start-Process -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\$VSversion\Enterprise\Common7\IDE\VSIXInstaller.exe" -ArgumentList $ArgumentList -Wait -PassThru + $process = Start-Process -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\$VSversion\Enterprise\Common7\IDE\VSIXInstaller.exe" -ArgumentList $argumentList -Wait -PassThru } else { @@ -257,20 +245,20 @@ function Install-VsixExtension } #Cleanup downloaded installation files - if (!$InstallOnly) - { - Remove-Item -Force -Confirm:$false $FilePath - } + if (-not $InstallOnly) + { + Remove-Item -Force -Confirm:$false $FilePath + } } function Get-VSExtensionVersion { param ( - [string] [Parameter(Mandatory=$true)] $packageName + [Parameter(Mandatory=$true)] + [string] $packageName ) $instanceFolders = Get-ChildItem -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances" - if ($instanceFolders -is [array]) { Write-Host "More than one instance installed" @@ -281,7 +269,7 @@ function Get-VSExtensionVersion $state = $stateContent | ConvertFrom-Json $packageVersion = ($state.packages | Where-Object { $_.id -eq $packageName }).version - if (!$packageVersion) + if (-not $packageVersion) { Write-Host "installed package $packageName for Visual Studio 2019 was not found" exit 1 @@ -290,7 +278,6 @@ function Get-VSExtensionVersion return $packageVersion } - function Get-ToolcachePackages { $toolcachePath = Join-Path $env:ROOT_FOLDER "toolcache.json" Get-Content -Raw $toolcachePath | ConvertFrom-Json diff --git a/images/win/scripts/Installers/Install-AzureCosmosDbEmulator.ps1 b/images/win/scripts/Installers/Install-AzureCosmosDbEmulator.ps1 index c94e6485..b1614932 100644 --- a/images/win/scripts/Installers/Install-AzureCosmosDbEmulator.ps1 +++ b/images/win/scripts/Installers/Install-AzureCosmosDbEmulator.ps1 @@ -5,4 +5,7 @@ Import-Module -Name ImageHelpers -Force -Install-MSI -MsiUrl "https://aka.ms/cosmosdb-emulator" -MsiName "AzureCosmosDBEmulator.msi" +$InstallerName = "AzureCosmosDBEmulator.msi" +$InstallerUrl = "https://aka.ms/cosmosdb-emulator" + +Install-Binary -Url $InstallerUrl -Name $InstallerName \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1 index 44b58abb..c94641f1 100644 --- a/images/win/scripts/Installers/Install-Chrome.ps1 +++ b/images/win/scripts/Installers/Install-Chrome.ps1 @@ -6,8 +6,8 @@ Import-Module -Name ImageHelpers -Force; $ChromeInstallerFile = "chrome_installer.exe"; -$ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"; -Install-Exe -Url $ChromeInstallerUri -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install") +$ChromeInstallerUrl = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"; +Install-Binary -Url $ChromeInstallerUrl -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install") 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"; diff --git a/images/win/scripts/Installers/Install-DACFx.ps1 b/images/win/scripts/Installers/Install-DACFx.ps1 index 7060aa25..aa3deff7 100644 --- a/images/win/scripts/Installers/Install-DACFx.ps1 +++ b/images/win/scripts/Installers/Install-DACFx.ps1 @@ -5,6 +5,7 @@ Import-Module -Name ImageHelpers -Force -$exitcode = Install-MSI -MsiUrl "https://download.microsoft.com/download/f/1/9/f19eaee6-0728-4a0b-9755-9808acc8af0b/EN/x64/DacFramework.msi" -MsiName "DacFramework.msi" +$InstallerName = "DacFramework.msi" +$InstallerUrl = "https://download.microsoft.com/download/f/1/9/f19eaee6-0728-4a0b-9755-9808acc8af0b/EN/x64/${InstallerName}" -exit $exitcode +Install-Binary -Url $InstallerUrl -Name $InstallerName \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Firefox.ps1 b/images/win/scripts/Installers/Install-Firefox.ps1 index 6f1dc218..2f919baa 100644 --- a/images/win/scripts/Installers/Install-Firefox.ps1 +++ b/images/win/scripts/Installers/Install-Firefox.ps1 @@ -14,7 +14,7 @@ Write-Host "Firefox latest version: $latestVersion" # url for latest version of firefox $urlLatestVersion = "https://download.mozilla.org/?product=firefox-${latestVersion}&os=win64&lang=en-US" -Install-EXE -Url $urlLatestVersion -Name "Firefox Setup $latestVersion.exe" -ArgumentList ("/silent", "/install") +Install-Binary -Url $urlLatestVersion -Name "Firefox Setup $latestVersion.exe" -ArgumentList ("/silent", "/install") # Disable autoupdate $firefoxDirectoryPath = Join-Path $env:ProgramFiles "Mozilla Firefox" diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1 index 5270675a..c1ec4360 100644 --- a/images/win/scripts/Installers/Install-Git.ps1 +++ b/images/win/scripts/Installers/Install-Git.ps1 @@ -19,18 +19,18 @@ $gitVersion = getSimpleValue -url "https://gitforwindows.org/latest-version.txt" $installerFile = "Git-$gitVersion-64-bit.exe"; $downloadUrl = "https://github.com/git-for-windows/git/releases/download/$gitTag/$installerFile"; -Install-Exe -Url $downloadUrl ` - -Name $installerFile ` - -ArgumentList ( - "/VERYSILENT", ` - "/NORESTART", ` - "/NOCANCEL", ` - "/SP-", ` - "/CLOSEAPPLICATIONS", ` - "/RESTARTAPPLICATIONS", ` - "/o:PathOption=CmdTools", ` - "/o:BashTerminalOption=ConHost", ` - "/COMPONENTS=gitlfs") +Install-Binary -Url $downloadUrl ` + -Name $installerFile ` + -ArgumentList ( + "/VERYSILENT", ` + "/NORESTART", ` + "/NOCANCEL", ` + "/SP-", ` + "/CLOSEAPPLICATIONS", ` + "/RESTARTAPPLICATIONS", ` + "/o:PathOption=CmdTools", ` + "/o:BashTerminalOption=ConHost", ` + "/COMPONENTS=gitlfs") Choco-Install -PackageName hub diff --git a/images/win/scripts/Installers/Install-Miniconda.ps1 b/images/win/scripts/Installers/Install-Miniconda.ps1 index 55e9f483..7c32f53d 100644 --- a/images/win/scripts/Installers/Install-Miniconda.ps1 +++ b/images/win/scripts/Installers/Install-Miniconda.ps1 @@ -5,12 +5,14 @@ Import-Module -Name ImageHelpers -Force +$CondaDestination = "C:\Miniconda" + # Lock to Miniconda 4.6 until we do the work to run `conda init` for the vsts user # Then we can go back to installing the latest Miniconda # $url = "https://repo.continuum.io/miniconda/Miniconda3-latest-Windows-x86_64.exe" -$url = "https://repo.continuum.io/miniconda/Miniconda3-4.6.14-Windows-x86_64.exe" -$name = $Url.Split('/')[-1] -$destination = "C:\Miniconda" +$InstallerName = "Miniconda3-4.6.14-Windows-x86_64.exe" +$InstallerUrl = "https://repo.continuum.io/miniconda/${InstallerName}" +$ArgumentList = ("/S", "/AddToPath=0", "/RegisterPython=0", "/D=$CondaDestination") -Install-EXE -Url $url -Name $name -ArgumentList "/S /AddToPath=0 /RegisterPython=0 /D=$destination" -Set-SystemVariable -SystemVariable "CONDA" -Value $destination +Install-Binary -Url $InstallerUrl -Name $InstallerName -ArgumentList $ArgumentList +Set-SystemVariable -SystemVariable "CONDA" -Value $CondaDestination diff --git a/images/win/scripts/Installers/Install-MysqlCli.ps1 b/images/win/scripts/Installers/Install-MysqlCli.ps1 index 76930d6e..348657d7 100644 --- a/images/win/scripts/Installers/Install-MysqlCli.ps1 +++ b/images/win/scripts/Installers/Install-MysqlCli.ps1 @@ -9,31 +9,23 @@ $uri = 'https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-winx64.zip' $mysqlPath = 'C:\mysql-5.7.21-winx64\bin' # Installing visual c++ redistibutable package. -$InstallerURI = 'https://download.microsoft.com/download/0/5/6/056dcda9-d667-4e27-8001-8a0c6971d6b1/vcredist_x64.exe' -$InstallerName = 'vcredist_x64.exe' -$ArgumentList = ('/install', '/quiet', '/norestart' ) +$InstallerName = "vcredist_x64.exe" +$InstallerURI = "https://download.microsoft.com/download/0/5/6/056dcda9-d667-4e27-8001-8a0c6971d6b1/${InstallerName}" +$ArgumentList = ("/install", "/quiet", "/norestart") -$exitCode = Install-EXE -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentList -if ($exitCode -eq 0 -or $exitCode -eq 3010) -{ - # MySQL disabled TLS 1.0 support on or about Jul-14-2018. Need to make sure TLS 1.2 is enabled. - [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor "Tls12" +Install-Binary -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentList - # Get the latest mysql command line tools . - Invoke-WebRequest -UseBasicParsing -Uri $uri -OutFile mysql.zip +# MySQL disabled TLS 1.0 support on or about Jul-14-2018. Need to make sure TLS 1.2 is enabled. +[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor "Tls12" - # Expand the zip - Expand-Archive -Path mysql.zip -DestinationPath "C:\" -Force +# Get the latest mysql command line tools . +Invoke-WebRequest -UseBasicParsing -Uri $uri -OutFile mysql.zip - # Deleting zip folder - Remove-Item -Recurse -Force mysql.zip +# Expand the zip +Expand-Archive -Path mysql.zip -DestinationPath "C:\" -Force - # Adding mysql in system environment path - Add-MachinePathItem $mysqlPath +# Deleting zip folder +Remove-Item -Recurse -Force mysql.zip - return 0; -} -else -{ - return $exitCode; -} +# Adding mysql in system environment path +Add-MachinePathItem $mysqlPath \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-NET472.ps1 b/images/win/scripts/Installers/Install-NET472.ps1 index 3cdb1fa1..e558c5c5 100644 --- a/images/win/scripts/Installers/Install-NET472.ps1 +++ b/images/win/scripts/Installers/Install-NET472.ps1 @@ -6,8 +6,8 @@ Import-Module -Name ImageHelpers -Force # .NET 4.7.2 Dev pack -$InstallerURI = "https://download.microsoft.com/download/3/B/F/3BFB9C35-405D-45DF-BDAF-0EB57D047888/NDP472-DevPack-ENU.exe" $InstallerName = "NDP472-DevPack-ENU.exe" +$InstallerUrl = "https://download.microsoft.com/download/3/B/F/3BFB9C35-405D-45DF-BDAF-0EB57D047888/${InstallerName}" $ArgumentList = ('Setup', '/passive', '/norestart' ) -Install-EXE -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentList +Install-Binary -Url $InstallerUrl -Name $InstallerName -ArgumentList $ArgumentList diff --git a/images/win/scripts/Installers/Install-NET48.ps1 b/images/win/scripts/Installers/Install-NET48.ps1 index 2603ab05..ab746ca0 100644 --- a/images/win/scripts/Installers/Install-NET48.ps1 +++ b/images/win/scripts/Installers/Install-NET48.ps1 @@ -6,8 +6,8 @@ Import-Module -Name ImageHelpers -Force # .NET 4.8 Dev pack -$InstallerURI = "https://download.visualstudio.microsoft.com/download/pr/014120d7-d689-4305-befd-3cb711108212/0307177e14752e359fde5423ab583e43/ndp48-devpack-enu.exe" -$InstallerName = "NDP48-DevPack-ENU.exe" -$ArgumentList = ('Setup', '/passive', '/norestart' ) +$InstallerName = "ndp48-devpack-enu.exe" +$InstallerUrl = "https://download.visualstudio.microsoft.com/download/pr/014120d7-d689-4305-befd-3cb711108212/0307177e14752e359fde5423ab583e43/${InstallerName}" +$ArgumentList = ("Setup", "/passive", "/norestart") -Install-EXE -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentList +Install-Binary -Url $InstallerUrl -Name $InstallerName -ArgumentList $ArgumentList diff --git a/images/win/scripts/Installers/Install-WDK.ps1 b/images/win/scripts/Installers/Install-WDK.ps1 index 9df64d91..557152cf 100644 --- a/images/win/scripts/Installers/Install-WDK.ps1 +++ b/images/win/scripts/Installers/Install-WDK.ps1 @@ -7,7 +7,7 @@ Import-Module -Name ImageHelpers -Force -if(Test-IsWin19) +if (Test-IsWin19) { $winSdkUrl = "https://go.microsoft.com/fwlink/p/?linkid=2083338" $wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2085767" @@ -22,24 +22,13 @@ else $VSver = "2017" } +$argumentList = ("/features", "+", "/quiet") # `winsdksetup.exe /features + /quiet` installs all features without showing the GUI -$sdkExitCode = Install-EXE -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList ("/features", "+", "/quiet") - -if ($sdkExitCode -ne 0) -{ - Write-Host "Failed to install the Windows SDK." - exit $sdkExitCode -} +Install-Binary -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList $argumentList # `wdksetup.exe /features + /quiet` installs all features without showing the GUI -$wdkExitCode = Install-EXE -Url $wdkUrl -Name "wdksetup.exe" -ArgumentList ("/features", "+", "/quiet") - -if ($wdkExitCode -ne 0) -{ - Write-Host "Failed to install the Windows Driver Kit." - exit $wdkExitCode -} +Install-Binary -Url $wdkUrl -Name "wdksetup.exe" -ArgumentList $argumentList # Need to install the VSIX to get the build targets when running VSBuild Install-VsixExtension -FilePath $FilePath -Name "WDK.vsix" -VSversion $VSver -InstallOnly diff --git a/images/win/scripts/Installers/Install-WinAppDriver.ps1 b/images/win/scripts/Installers/Install-WinAppDriver.ps1 index 106b3332..92f95750 100644 --- a/images/win/scripts/Installers/Install-WinAppDriver.ps1 +++ b/images/win/scripts/Installers/Install-WinAppDriver.ps1 @@ -4,5 +4,9 @@ #################################################################################### Import-Module -Name ImageHelpers -Force + +$InstallerName = "WindowsApplicationDriver.msi" +$InstallerUrl = "https://github.com/Microsoft/WinAppDriver/releases/download/v1.1/${InstallerName}" + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -Install-MSI -MsiUrl "https://github.com/Microsoft/WinAppDriver/releases/download/v1.1/WindowsApplicationDriver.msi" -MsiName "WindowsApplicationDriver.msi" +Install-Binary -Url $InstallerUrl -Name $InstallerName diff --git a/images/win/scripts/Installers/Windows2016/Install-SSDT.ps1 b/images/win/scripts/Installers/Windows2016/Install-SSDT.ps1 index 132734c8..9d22e86d 100644 --- a/images/win/scripts/Installers/Windows2016/Install-SSDT.ps1 +++ b/images/win/scripts/Installers/Windows2016/Install-SSDT.ps1 @@ -7,18 +7,13 @@ Import-Module -Name ImageHelpers -Force #SSDT for Visual Studio 2017 #The link down below points to the latest version of SSDT for Visual Studio 2017 -$InstallerURI = 'https://go.microsoft.com/fwlink/?linkid=2124518' -$InstallerName = 'SSDT-Setup-ENU.exe' +$InstallerName = "SSDT-Setup-ENU.exe" +$InstallerUrl = "https://go.microsoft.com/fwlink/?linkid=2124518" $logFilePath = "$env:TEMP\ssdtlog.txt" -$ArgumentList = ('/install', 'INSTALLALL', '/passive', '/norestart', "/log `"$logFilePath`"") +$ArgumentList = ("/install", "INSTALLALL", "/passive", "/norestart", "/log `"$logFilePath`"") -$exitCode = Install-EXE -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentList +Install-Binary -Url $InstallerUrl -Name $InstallerName -ArgumentList $ArgumentList -if($exitCode -ne 0 -and $exitCode -ne 3010) -{ - Write-Host "******** SSDT SETUP LOG START ********" - Write-Host $(Get-Content $logFilePath | Out-String) - Write-Host "******** SSDT SETUP LOG END ********" -} - -exit $exitCode +Write-Host "******** SSDT SETUP LOG START ********" +Write-Host $(Get-Content $logFilePath | Out-String) +Write-Host "******** SSDT SETUP LOG END ********" \ No newline at end of file diff --git a/images/win/scripts/Installers/Windows2016/Install-Win81SDK.ps1 b/images/win/scripts/Installers/Windows2016/Install-Win81SDK.ps1 index 992f6a9e..d89f468f 100644 --- a/images/win/scripts/Installers/Windows2016/Install-Win81SDK.ps1 +++ b/images/win/scripts/Installers/Windows2016/Install-Win81SDK.ps1 @@ -5,10 +5,8 @@ Import-Module -Name ImageHelpers -Force -$InstallerURI = 'http://download.microsoft.com/download/B/0/C/B0C80BA3-8AD6-4958-810B-6882485230B5/standalonesdk/sdksetup.exe' -$InstallerName = 'sdksetup.exe' -$ArgumentList = ('/quiet', '/norestart') +$InstallerName = "sdksetup.exe" +$InstallerUrl = "http://download.microsoft.com/download/B/0/C/B0C80BA3-8AD6-4958-810B-6882485230B5/standalonesdk/${InstallerName}" +$ArgumentList = ("/quiet", "/norestart") -$exitCode = Install-EXE -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentList - -exit $exitCode +Install-Binary -Url $InstallerUrl -Name $InstallerName -ArgumentList $ArgumentList From 4729069659385a6cceec2ef1ecf273ad3ea606a0 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Tue, 21 Apr 2020 15:42:06 +0400 Subject: [PATCH 33/74] Checking the moby-buildx and moby-buildx documentation has been added --- images/linux/scripts/installers/docker-moby.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index 4fbbcf65..efa8ea53 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -26,6 +26,9 @@ echo "Testing to make sure that script performed as expected, and basic scenario if ! command -v docker; then echo "docker was not installed" exit 1 +else if ! command -v docker buildx build then + echo "moby-buildx was not installed" + #exit 1 else # Docker daemon takes time to come up after installing sleep 10 @@ -51,3 +54,7 @@ docker pull ubuntu:14.04 echo "Documenting Docker version" docker_version=$(docker -v) DocumentInstalledItem "Docker-Moby ($docker_version)" + +echo "Documenting moby-buildx version" +moby_buildx_version=$(docker buildx -v) +DocumentInstalledItem "Moby-Buildx ($moby_buildx_version)" From dc52f6110565fa6e357512005c2e4fd2c72b3ec0 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Tue, 21 Apr 2020 17:24:31 +0400 Subject: [PATCH 34/74] docker-moby.sh bugfixing --- images/linux/scripts/installers/docker-moby.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index efa8ea53..6548a557 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -26,7 +26,7 @@ echo "Testing to make sure that script performed as expected, and basic scenario if ! command -v docker; then echo "docker was not installed" exit 1 -else if ! command -v docker buildx build then +elif ! command -v docker buildx build; then echo "moby-buildx was not installed" #exit 1 else From a5e9522d54de1ef980da1fc93b885198c3f7ed0d Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Tue, 21 Apr 2020 18:22:29 +0300 Subject: [PATCH 35/74] Revert "Pre-install Android NDK 20 on Ubuntu (#711)" This reverts commit 8abd45c3a8c2f777498e0df36853faf163558b15. --- images/linux/scripts/installers/1604/android.sh | 2 -- images/linux/scripts/installers/1804/android.sh | 2 -- 2 files changed, 4 deletions(-) diff --git a/images/linux/scripts/installers/1604/android.sh b/images/linux/scripts/installers/1604/android.sh index 074c7ce1..0c4aee53 100644 --- a/images/linux/scripts/installers/1604/android.sh +++ b/images/linux/scripts/installers/1604/android.sh @@ -43,7 +43,6 @@ chmod -R a+X ${ANDROID_SDK_ROOT} # Install the following SDKs and build tools, passing in "y" to accept licenses. echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \ "ndk-bundle" \ - "ndk;20.0.5594570" \ "platform-tools" \ "platforms;android-29" \ "platforms;android-28" \ @@ -163,6 +162,5 @@ DocumentInstalledItem "Android SDK Build-Tools 20.0.0" DocumentInstalledItem "Android SDK Build-Tools 19.1.0" DocumentInstalledItem "Android SDK Build-Tools 17.0.0" DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)" -DocumentInstalledItem "Android NDK 20.0.5594570" DocumentInstalledItem "Android ConstraintLayout 1.0.2" DocumentInstalledItem "Android ConstraintLayout 1.0.1" diff --git a/images/linux/scripts/installers/1804/android.sh b/images/linux/scripts/installers/1804/android.sh index 657e9045..a4a94566 100644 --- a/images/linux/scripts/installers/1804/android.sh +++ b/images/linux/scripts/installers/1804/android.sh @@ -43,7 +43,6 @@ fi # Install the following SDKs and build tools, passing in "y" to accept licenses. echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager \ "ndk-bundle" \ - "ndk;20.0.5594570" \ "platform-tools" \ "platforms;android-29" \ "platforms;android-28" \ @@ -153,4 +152,3 @@ DocumentInstalledItem "Android SDK Build-Tools 20.0.0" DocumentInstalledItem "Android SDK Build-Tools 19.1.0" DocumentInstalledItem "Android SDK Build-Tools 17.0.0" DocumentInstalledItem "Android NDK $(cat ${ANDROID_SDK_ROOT}/ndk-bundle/source.properties 2>&1 | grep Pkg.Revision | cut -d ' ' -f 3)" -DocumentInstalledItem "Android NDK 20.0.5594570" From 9109037d4ed3d9b8bd0788099ff7ff5728379053 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Tue, 21 Apr 2020 18:23:33 +0300 Subject: [PATCH 36/74] apt-get clean --- images/linux/scripts/installers/cleanup.sh | 16 ++++++++++++++++ images/linux/ubuntu1604.json | 7 +++++++ images/linux/ubuntu1804.json | 7 +++++++ 3 files changed, 30 insertions(+) create mode 100644 images/linux/scripts/installers/cleanup.sh diff --git a/images/linux/scripts/installers/cleanup.sh b/images/linux/scripts/installers/cleanup.sh new file mode 100644 index 00000000..fe284f33 --- /dev/null +++ b/images/linux/scripts/installers/cleanup.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# before cleanup +before=$(df / -Pm | awk 'NR==2{print $4}') + +# clears out the local repository of retrieved package files +# It removes everything but the lock file from /var/cache/apt/archives/ and /var/cache/apt/archives/partial +apt-get clean + +# after cleanup +after=$(df / -Pm | awk 'NR==2{print $4}') + +# display size + echo "Before: $before MB" + echo "After : $after MB" + echo "Delta : $(($after-$before)) MB" \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index 38f6a20e..7ef1a820 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -289,6 +289,13 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/cleanup.sh" + ], + "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" + }, { "type": "file", "source": "{{user `metadata_file`}}", diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index dccbbe96..8217608b 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -293,6 +293,13 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/cleanup.sh" + ], + "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" + }, { "type": "file", "source": "{{user `metadata_file`}}", From d37793ddc88b003dc0137ba17fe863e86050d62a Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Tue, 21 Apr 2020 23:54:48 +0400 Subject: [PATCH 37/74] Some diagnostic messages have been added --- images/linux/scripts/installers/docker-moby.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index 6548a557..db5c4aff 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -23,6 +23,7 @@ fi # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" +echo "checking the docker-moby and moby-buildx" if ! command -v docker; then echo "docker was not installed" exit 1 @@ -30,6 +31,7 @@ elif ! command -v docker buildx build; then echo "moby-buildx was not installed" #exit 1 else + echo "Docker-moby and moby-buildx checking the successfull" # Docker daemon takes time to come up after installing sleep 10 set -e From 15a96845dd666a039d685e87fd6dfcd4e57dec5c Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Wed, 22 Apr 2020 00:01:16 +0400 Subject: [PATCH 38/74] moby-buildx -> docker-builx --- images/linux/scripts/installers/docker-moby.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index db5c4aff..620eee0c 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -28,10 +28,10 @@ if ! command -v docker; then echo "docker was not installed" exit 1 elif ! command -v docker buildx build; then - echo "moby-buildx was not installed" + echo "Docker-buildx was not installed" #exit 1 else - echo "Docker-moby and moby-buildx checking the successfull" + echo "Docker-moby and Docker-buildx checking the successfull" # Docker daemon takes time to come up after installing sleep 10 set -e @@ -57,6 +57,6 @@ echo "Documenting Docker version" docker_version=$(docker -v) DocumentInstalledItem "Docker-Moby ($docker_version)" -echo "Documenting moby-buildx version" -moby_buildx_version=$(docker buildx -v) -DocumentInstalledItem "Moby-Buildx ($moby_buildx_version)" +echo "Documenting Docker-buildx version" +docker_buildx_version=$(docker buildx -v) +DocumentInstalledItem "Docker-Buildx ($docker_buildx_version)" From a17493079096667a7012e1ddcfb4af931e88c597 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Wed, 22 Apr 2020 14:31:25 +0500 Subject: [PATCH 39/74] Install AWS SAM CLI on Windows images (#737) * Add AWS SAM * Change utility name to upper case Co-authored-by: Sergey Dolin --- images/win/Windows2016-Azure.json | 12 +++++++++ images/win/Windows2019-Azure.json | 12 +++++++++ .../scripts/Installers/Install-AWS-SAM.ps1 | 7 +++++ .../scripts/Installers/Validate-AWS-SAM.ps1 | 27 +++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 images/win/scripts/Installers/Install-AWS-SAM.ps1 create mode 100644 images/win/scripts/Installers/Validate-AWS-SAM.ps1 diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 8732a9fb..55a1e611 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -454,6 +454,12 @@ "{{ template_dir }}/scripts/Installers/Install-AWS.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-AWS-SAM.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -615,6 +621,12 @@ "{{ template_dir }}/scripts/Installers/Validate-AzureCli.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-AWS-SAM.ps1" + ] + }, { "type": "powershell", "scripts":[ diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index e66147fc..ab28c810 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -433,6 +433,12 @@ "{{ template_dir }}/scripts/Installers/Install-AWS.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-AWS-SAM.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -612,6 +618,12 @@ "{{ template_dir }}/scripts/Installers/Validate-AzureCli.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-AWS-SAM.ps1" + ] + }, { "type": "powershell", "scripts":[ diff --git a/images/win/scripts/Installers/Install-AWS-SAM.ps1 b/images/win/scripts/Installers/Install-AWS-SAM.ps1 new file mode 100644 index 00000000..e94d7bd5 --- /dev/null +++ b/images/win/scripts/Installers/Install-AWS-SAM.ps1 @@ -0,0 +1,7 @@ +################################################################################ +## File: Install-AWS-SAM.ps1 +## Desc: Install aws sam cli +## https://aws.amazon.com/serverless/sam/ +################################################################################ + +Install-MSI -MsiUrl "https://github.com/awslabs/aws-sam-cli/releases/latest/download/AWS_SAM_CLI_64_PY3.msi" -MsiName "AWS_SAM_CLI_64_PY3.msi" \ No newline at end of file diff --git a/images/win/scripts/Installers/Validate-AWS-SAM.ps1 b/images/win/scripts/Installers/Validate-AWS-SAM.ps1 new file mode 100644 index 00000000..d953229d --- /dev/null +++ b/images/win/scripts/Installers/Validate-AWS-SAM.ps1 @@ -0,0 +1,27 @@ +################################################################################ +## File: Validate-AWS-SAM.ps1 +## Desc: Validate aws sam cli +################################################################################ + +$command = Get-Command -Name 'sam' + +if ($command) +{ + Write-Host "AWS SAM CLI on path" +} +else +{ + Write-Host 'AWS SAM CLI is not on path' + exit 1 +} + +# Adding description of the software to Markdown +$SoftwareName = "AWS SAM CLI" + +$version = (sam --version).Split(" ")[3] + +$Description = @" +_Version:_ $version
+"@ + +Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description \ No newline at end of file From 77ee8ae0f5888316a76ebb829ce014c8e6dcee7e Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Wed, 22 Apr 2020 16:12:30 +0000 Subject: [PATCH 40/74] Updating readme file for win16 version 20200416.1 --- images/win/Windows2016-Readme.md | 91 +++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 31 deletions(-) diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md index f20e4870..7c522462 100644 --- a/images/win/Windows2016-Readme.md +++ b/images/win/Windows2016-Readme.md @@ -1,6 +1,6 @@ # Windows Server 2016 -The following software is installed on machines with the 20200323.1 update. +The following software is installed on machines with the 20200416.1 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -36,15 +36,15 @@ _Version:_ 7.0.0
## Docker images The following container images have been cached: -* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016 (Digest: sha256:7bf99ba791cce2c51091ac0c6922ff98e5a448c1046ba046fab3760070173e0d) -* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016 (Digest: sha256:000d639c6c287bf0e69b27c008f2d411a9e161093dd1855667a8e6189f9adac8) -* mcr.microsoft.com/windows/servercore:ltsc2016 (Digest: sha256:5bd97dbab1afe8d3200f5d5c974df3b0130e74e8a69fddcd427699c4c8cb5037) +* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016 (Digest: sha256:4610dbc0e9f033247b336ebf62b2c690dc9e93de5c937b4660aad52847123086) +* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016 (Digest: sha256:888f36a9fa4ccd409967426f1a731ab6112a8acc36459268471fccd0e67e5326) +* mcr.microsoft.com/windows/servercore:ltsc2016 (Digest: sha256:f4c4f31c7ee654e73bd130b89e6ad5a659f5ede52fd9eb653c9db4aa12f6e0ea) * 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.21+28307.1064
+_Version:_ VisualStudio/15.9.22+28307.1093
_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise The following workloads including required and recommended components are installed with Visual Studio 2017: @@ -135,6 +135,8 @@ 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 +* Microsoft.VisualStudio.Workload.Office +* Microsoft.VisualStudio.Workload.OfficeBuildTools ## SQL Server Data Tools for VS 2017 @@ -173,6 +175,10 @@ _Runtime Version:_ 7.0.470.9590 _Version:_ 1.1.1809.18001
+## AWS CLI + +_Version:_ aws-cli 2.0.7
+ ## Android SDK Build Tools #### 29.0.3 @@ -422,13 +428,13 @@ _Description:_ .NET has been configured to use TLS 1.2 by default ## Azure CLI -_Version:_ 2.2.0 +_Version:_ 2.3.1 _Environment:_ * PATH: contains location of az.cmd ## Azure DevOps Cli extension -_Version:_ azure-devops 0.17.0 +_Version:_ azure-devops 0.18.0 ## Python @@ -440,11 +446,11 @@ _Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
## Ruby -_Version:_ 2.4.9 (x64)
_Version:_ 2.5.7 (x64)
_Version:_ 2.6.5 (x64)
_Version:_ 2.7.0 (x64)

__System default version:__ Ruby 2.5.7p206
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.7\x64\bin
* PATH: contains the location of Ruby 2.5.7p206
* Gem Version: 2.7.6.2
+_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 2.7.6.2
## OpenSSL -_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
_Version:_ 1.1.1d at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
+_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
_Version:_ 1.1.1d at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1f at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.1.1f at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
## Perl @@ -452,7 +458,7 @@ _Version:_ v5.30.2
## Git -_Version:_ 2.25.1
+_Version:_ 2.26.1
_Environment:_ * PATH: contains location of git.exe @@ -478,8 +484,8 @@ _Environment:_ #### 1.69.0 [msvc-14.1] _Environment:_ -* PATH: contains the location of Boost version 1.69.0 -* BOOST_ROOT_1_69_0: root directory of the Boost version 1.69.0 installation +* BOOST_ROOT_1_69_0: root directory of the Boost version 1.69.0 installation + #### 1.72.0 [msvc-14.1] _Environment:_ @@ -498,13 +504,21 @@ See documentation of the Boost CMake package configuration for details on what i Set `Boost_NO_BOOST_CMAKE to ON`, to disable the search for boost-cmake. -## PHP (x64) +## Composer -#### 7.4.3 +#### Composer version 1.10.5 2020-04-10 11:44:22 _Environment:_ -* PATH: contains the location of php.exe version 7.4.3 -* PHPROOT: root directory of the PHP 7.4.3 installation +* PATH: contains the location of composer.exe version Composer version 1.10.5 2020-04-10 11:44:22 +* PHPROOT: root directory of the Composer Composer version 1.10.5 2020-04-10 11:44:22 installation + +## PHP (x64) + +#### 7.4.5 + +_Environment:_ +* PATH: contains the location of php.exe version 7.4.5 +* PHPROOT: root directory of the PHP 7.4.5 installation ## Rust (64-bit) @@ -515,7 +529,7 @@ _Environment:_ ## Julia (x64) -_Version:_ 1.3.1
+_Version:_ 1.4.0
## sbt @@ -530,17 +544,17 @@ _Environment:_ ## Google Chrome _version:_ -80.0.3987.149 +81.0.4044.113 ## Microsoft Edge _version:_ -80.0.361.69 +81.0.416.53 ## Mozilla Firefox _version:_ -74.0 +75.0 ## Selenium Web Drivers @@ -548,7 +562,7 @@ _version:_ #### Chrome Driver _version:_ -80.0.3987.106 +81.0.4044.69 _Environment:_ * ChromeWebDriver: location of chromedriver.exe @@ -572,7 +586,7 @@ _Environment:_ #### Microsoft Edge Driver _version:_ -80.0.361.69 +81.0.416.53 _Environment:_ * EdgeWebDriver: location of msedgedriver.exe @@ -580,7 +594,7 @@ _Environment:_ ## Node.js -_Version:_ 12.16.1
+_Version:_ 12.16.2
_Architecture:_ x64
_Environment:_ * PATH: contains location of node.exe
@@ -591,18 +605,22 @@ _Environment:_ ## npm -_Version:_ 6.13.4
+_Version:_ 6.14.4
_Environment:_ * PATH: contains location of npm.cmd ## bazel -_Version:_ bazel 2.2.0
+_Version:_ bazel 3.0.0
## bazelisk _Version:_ 1.3.0
+## Alibaba Cloud CLI + +_Version:_ 3.0.26
+ ## Java Development Kit #### 1.8.0_222 (default) @@ -636,13 +654,13 @@ _Environment:_ ## Gradle -_Version:_ 6.2.2
+_Version:_ 6.3
_Environment:_ * PATH: contains location of gradle -## Cmake +## CMake -_Version:_ 3.17.0
+_Version:_ 3.17.1
_Environment:_ * PATH: contains location of cmake.exe @@ -659,6 +677,8 @@ _Environment:_ * PATH: contains location of dotnet.exe _SDK:_ +* 3.1.201 C:\Program Files\dotnet\sdk\3.1.201 +* 3.1.103 C:\Program Files\dotnet\sdk\3.1.103 * 3.1.101 C:\Program Files\dotnet\sdk\3.1.101 * 3.1.100 C:\Program Files\dotnet\sdk\3.1.100 * 2.2.402 C:\Program Files\dotnet\sdk\2.2.402 @@ -682,12 +702,14 @@ _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.805 C:\Program Files\dotnet\sdk\2.1.805 * 2.1.804 C:\Program Files\dotnet\sdk\2.1.804 * 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.610 C:\Program Files\dotnet\sdk\2.1.610 * 2.1.609 C:\Program Files\dotnet\sdk\2.1.609 * 2.1.608 C:\Program Files\dotnet\sdk\2.1.608 * 2.1.607 C:\Program Files\dotnet\sdk\2.1.607 @@ -696,6 +718,7 @@ _SDK:_ * 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.513 C:\Program Files\dotnet\sdk\2.1.513 * 2.1.512 C:\Program Files\dotnet\sdk\2.1.512 * 2.1.511 C:\Program Files\dotnet\sdk\2.1.511 * 2.1.510 C:\Program Files\dotnet\sdk\2.1.510 @@ -718,6 +741,7 @@ _SDK:_ * 1.1.14 C:\Program Files\dotnet\sdk\1.1.14 _Runtime:_ +* 3.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.3 * 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 * 2.2.8 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.8 @@ -737,6 +761,7 @@ _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.17 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.17 * 2.1.16 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.16 * 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 @@ -791,7 +816,7 @@ _Version:_ 19.00
## Packer -_Version:_ 1.5.4
+_Version:_ 1.5.5
## Mercurial @@ -813,9 +838,13 @@ _Version:_ 6.0.4
_Version:_ 5.2.4.0
+## Nullsoft Install System (NSIS) + +_Version:_ 3.5
+ ## Cloud Foundry CLI -_Version:_ 6.50.0
+_Version:_ 6.51.0
## Vcpkg @@ -826,7 +855,7 @@ _Environment:_ ## Kubectl -_Version:_ Client Version: v1.17.1
+_Version:_ Client Version: v1.18.1
_Environment:_ * PATH: contains location of kubectl.exe From 32c900900c9cd6f2ffd011d4a8551239a2a07393 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Wed, 22 Apr 2020 20:36:47 +0400 Subject: [PATCH 41/74] Docker-Buildx version checking has been added --- images/linux/scripts/installers/docker-moby.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index 620eee0c..7d6a832b 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -23,13 +23,14 @@ fi # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" -echo "checking the docker-moby and moby-buildx" +echo "Checking the docker-moby and moby-buildx" +DOCKER_BUILDX=/usr/libexec/docker/cli-plugins/docker-buildx if ! command -v docker; then echo "docker was not installed" exit 1 -elif ! command -v docker buildx build; then - echo "Docker-buildx was not installed" - #exit 1 +elif ! [ -x "$DOCKER_BUILDX" ]; then + echo "Docker-Buildx was not installed" + exit 1 else echo "Docker-moby and Docker-buildx checking the successfull" # Docker daemon takes time to come up after installing @@ -58,5 +59,6 @@ docker_version=$(docker -v) DocumentInstalledItem "Docker-Moby ($docker_version)" echo "Documenting Docker-buildx version" -docker_buildx_version=$(docker buildx -v) -DocumentInstalledItem "Docker-Buildx ($docker_buildx_version)" +DOCKER_BUILDX_VERSION=$(apt-cache policy moby-buildx | grep Installed) +DOCKER_BUILDX_VERSION=$(echo ${DOCKER_BUILDX_VERSION//Installed:}) +DocumentInstalledItem "Docker-Buildx ($DOCKER_BUILDX_VERSION)" From 44f2342c9e796a4d0c3bd36aff870b38abd6a71b Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Thu, 23 Apr 2020 06:40:42 +0000 Subject: [PATCH 42/74] Updating readme file for win19 version 20200416.1 --- images/win/Windows2019-Readme.md | 106 ++++++++++++++++++------------- 1 file changed, 63 insertions(+), 43 deletions(-) diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index cd716b6e..c6d678e4 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -1,6 +1,6 @@ # Windows Server 2019 -The following software is installed on machines with the 20200319.1 update. +The following software is installed on machines with the 20200416.1 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -36,15 +36,15 @@ _Version:_ 7.0.0
## Docker images The following container images have been cached: -* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 (Digest: sha256:24ffd5fad1becaf9b16f42ec6f40c90ddf56664986a87212d2d48164e3bb52ba) -* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 (Digest: sha256:ceaf6f000f0a0677510a5511f089071c2822dd40f34a77ca0280f96b10621858) -* mcr.microsoft.com/windows/servercore:ltsc2019 (Digest: sha256:8dcc65367c900f06ad386da6a1e25d578232f7b15981092986ade2f2fd9468b8) -* mcr.microsoft.com/windows/nanoserver:1809 (Digest: sha256:5de6bd32bd453d60c8f549d28845552e89ad3652566e141ac82023b6ba10374d) +* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 (Digest: sha256:8d2ffe560c2e25ac85080aed33ac7a010584db157e49255c2a7d2405f78017b7) +* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 (Digest: sha256:fd6801e45c7899858a1ffe7e89e29b9a012704af34350ad94abbd82b6e5ddb88) +* mcr.microsoft.com/windows/servercore:ltsc2019 (Digest: sha256:2ecf1e2987b91b41f576afd7f56aa40c9ddbc691d7b6b066c64d8f27fb3070ca) +* mcr.microsoft.com/windows/nanoserver:1809 (Digest: sha256:28805a307e17836a84a6af231f8516110839e4840e4ab41c7d286a0ca5627ea1) * microsoft/aspnetcore-build:1.0-2.0 (Digest: sha256:9ecc7c5a8a7a11dca5f08c860165646cb30d084606360a3a72b9cbe447241c0c) ## Visual Studio 2019 Enterprise -_Version:_ VisualStudio/16.5.0+29911.84
+_Version:_ VisualStudio/16.5.4+30011.22
_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise The following workloads and components are installed with Visual Studio 2019: @@ -108,6 +108,7 @@ The following workloads and components are installed with Visual Studio 2019: * Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre * Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre * Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre +* Microsoft.VisualStudio.Component.Windows10SDK.14393 * Microsoft.VisualStudio.Component.Windows10SDK.16299 * Microsoft.VisualStudio.Component.Windows10SDK.17134 * Microsoft.VisualStudio.Component.Windows10SDK.17763 @@ -144,9 +145,9 @@ _Environment:_ ## Microsoft SSDT Visual Studio 2019 Extensions -_Microsoft Analysis Services Projects Version:_ 2.9.6
+_Microsoft Analysis Services Projects Version:_ 2.9.7
_SQL Server Integration Services Projects Version:_ 3.5
-_Microsoft Reporting Services Projects Version:_ 2.6.3
+_Microsoft Reporting Services Projects Version:_ 2.6.5
## .NET 4.8 @@ -167,6 +168,10 @@ _Runtime Version:_ 7.0.470.9590 _Version:_ 1.1.1809.18001
+## AWS CLI + +_Version:_ aws-cli 2.0.7
+ ## Android SDK Build Tools #### 29.0.3 @@ -416,13 +421,13 @@ _Description:_ .NET has been configured to use TLS 1.2 by default ## Azure CLI -_Version:_ 2.2.0 +_Version:_ 2.3.1 _Environment:_ * PATH: contains location of az.cmd ## Azure DevOps Cli extension -_Version:_ azure-devops 0.17.0 +_Version:_ azure-devops 0.18.0 ## Python @@ -434,11 +439,11 @@ _Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
## Ruby -_Version:_ 2.4.9 (x64)
_Version:_ 2.5.7 (x64)
_Version:_ 2.6.5 (x64)
_Version:_ 2.7.0 (x64)

__System default version:__ Ruby 2.5.7p206
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.7\x64\bin
* PATH: contains the location of Ruby 2.5.7p206
* Gem Version: 2.7.6.2
+_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 2.7.6.2
## OpenSSL -_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
_Version:_ 1.1.1d at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.1.1d at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
+_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe
_Version:_ 1.1.1d at C:\Strawberry\c\bin\openssl.exe
_Version:_ 1.1.1f at C:\Program Files\Git\mingw64\bin\openssl.exe
_Version:_ 1.1.1f at C:\Program Files\Git\usr\bin\openssl.exe
_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe
## Perl @@ -446,7 +451,7 @@ _Version:_ v5.30.2
## Git -_Version:_ 2.25.1
+_Version:_ 2.26.1
_Environment:_ * PATH: contains location of git.exe @@ -465,12 +470,6 @@ _Environment:_ ## Go (x64) -#### 1.14 - -_Environment:_ -* PATH: contains the location of go.exe version 1.14 -* GOROOT: root directory of the Go 1.14 installation -* GOROOT_1_14_X64: root directory of the Go 1.14 installation ## Boost @@ -483,8 +482,8 @@ _Environment:_ #### 1.72.0 [msvc-14.2] _Environment:_ -* PATH: contains the location of Boost version 1.72.0 -* BOOST_ROOT_1_72_0: root directory of the Boost version 1.72.0 installation +* BOOST_ROOT_1_72_0: root directory of the Boost version 1.72.0 installation + #### _Notes:_ Link: https://cmake.org/cmake/help/latest/module/FindBoost.html @@ -498,13 +497,21 @@ See documentation of the Boost CMake package configuration for details on what i Set `Boost_NO_BOOST_CMAKE to ON`, to disable the search for boost-cmake. -## PHP (x64) +## Composer -#### 7.4.3 +#### Composer version 1.10.5 2020-04-10 11:44:22 _Environment:_ -* PATH: contains the location of php.exe version 7.4.3 -* PHPROOT: root directory of the PHP 7.4.3 installation +* PATH: contains the location of composer.exe version Composer version 1.10.5 2020-04-10 11:44:22 +* PHPROOT: root directory of the Composer Composer version 1.10.5 2020-04-10 11:44:22 installation + +## PHP (x64) + +#### 7.4.5 + +_Environment:_ +* PATH: contains the location of php.exe version 7.4.5 +* PHPROOT: root directory of the PHP 7.4.5 installation ## Rust (64-bit) @@ -515,7 +522,7 @@ _Environment:_ ## Julia (x64) -_Version:_ 1.3.1
+_Version:_ 1.4.0
## Subversion @@ -530,17 +537,17 @@ _Environment:_ ## Google Chrome _version:_ -80.0.3987.149 +81.0.4044.113 ## Microsoft Edge _version:_ -80.0.361.66 +81.0.416.53 ## Mozilla Firefox _version:_ -74.0 +75.0 ## Selenium Web Drivers @@ -548,7 +555,7 @@ _version:_ #### Chrome Driver _version:_ -80.0.3987.106 +81.0.4044.69 _Environment:_ * ChromeWebDriver: location of chromedriver.exe @@ -572,7 +579,7 @@ _Environment:_ #### Microsoft Edge Driver _version:_ -80.0.361.66 +81.0.416.53 _Environment:_ * EdgeWebDriver: location of msedgedriver.exe @@ -580,7 +587,7 @@ _Environment:_ ## Node.js -_Version:_ 12.16.1
+_Version:_ 12.16.2
_Architecture:_ x64
_Environment:_ * PATH: contains location of node.exe
@@ -591,7 +598,7 @@ _Environment:_ ## npm -_Version:_ 6.13.4
+_Version:_ 6.14.4
_Environment:_ * PATH: contains location of npm.cmd @@ -628,13 +635,13 @@ _Environment:_ ## Gradle -_Version:_ 6.2.2
+_Version:_ 6.3
_Environment:_ * PATH: contains location of gradle -## Cmake +## CMake -_Version:_ 3.16.5
+_Version:_ 3.17.1
_Environment:_ * PATH: contains location of cmake.exe @@ -651,7 +658,8 @@ _Environment:_ * PATH: contains location of dotnet.exe _SDK:_ -* 3.1.200 C:\Program Files\dotnet\sdk\3.1.200 +* 3.1.201 C:\Program Files\dotnet\sdk\3.1.201 +* 3.1.103 C:\Program Files\dotnet\sdk\3.1.103 * 3.1.101 C:\Program Files\dotnet\sdk\3.1.101 * 3.1.100 C:\Program Files\dotnet\sdk\3.1.100 * 2.2.402 C:\Program Files\dotnet\sdk\2.2.402 @@ -675,12 +683,14 @@ _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.805 C:\Program Files\dotnet\sdk\2.1.805 * 2.1.804 C:\Program Files\dotnet\sdk\2.1.804 * 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.610 C:\Program Files\dotnet\sdk\2.1.610 * 2.1.609 C:\Program Files\dotnet\sdk\2.1.609 * 2.1.608 C:\Program Files\dotnet\sdk\2.1.608 * 2.1.607 C:\Program Files\dotnet\sdk\2.1.607 @@ -689,6 +699,7 @@ _SDK:_ * 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.513 C:\Program Files\dotnet\sdk\2.1.513 * 2.1.512 C:\Program Files\dotnet\sdk\2.1.512 * 2.1.511 C:\Program Files\dotnet\sdk\2.1.511 * 2.1.510 C:\Program Files\dotnet\sdk\2.1.510 @@ -709,7 +720,7 @@ _SDK:_ * 2.1.300 C:\Program Files\dotnet\sdk\2.1.300 _Runtime:_ -* 3.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.2 +* 3.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.3 * 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 * 2.2.8 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.8 @@ -729,6 +740,7 @@ _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.17 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.17 * 2.1.16 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.16 * 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 @@ -751,7 +763,7 @@ _Version:_ 1.0 ## SQLServer PS -_Version:_ 21.1.18218 +_Version:_ 21.1.18221 ## MinGW @@ -780,7 +792,7 @@ _Version:_ 19.00
## Packer -_Version:_ 1.5.4
+_Version:_ 1.5.5
## Mercurial @@ -802,9 +814,13 @@ _Version:_ 6.0.4
_Version:_ 5.2.4.0
+## Nullsoft Install System (NSIS) + +_Version:_ 3.5
+ ## Cloud Foundry CLI -_Version:_ 6.50.0
+_Version:_ 6.51.0
## Vcpkg @@ -820,7 +836,7 @@ _Version_: 2.8.4+ff0de50053 - shim 0.8.1
## Kubectl -_Version:_ Client Version: v1.17.1
+_Version:_ Client Version: v1.18.1
_Environment:_ * PATH: contains location of kubectl.exe @@ -832,8 +848,12 @@ _Environment:_ ## bazel -_Version:_ bazel 2.2.0
+_Version:_ bazel 3.0.0
## bazelisk _Version:_ 1.3.0
+ +## Alibaba Cloud CLI + +_Version:_ 3.0.26
From da3c0fdd69a34c2e8d20594e6a3d3724aa2cc470 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Thu, 23 Apr 2020 18:41:52 +0400 Subject: [PATCH 43/74] code changing --- images/linux/scripts/installers/docker-moby.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index 7d6a832b..8fe8d134 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -24,11 +24,10 @@ fi # Run tests to determine that the software installed as expected echo "Testing to make sure that script performed as expected, and basic scenarios work" echo "Checking the docker-moby and moby-buildx" -DOCKER_BUILDX=/usr/libexec/docker/cli-plugins/docker-buildx if ! command -v docker; then echo "docker was not installed" exit 1 -elif ! [ -x "$DOCKER_BUILDX" ]; then +elif ! [[ $(docker buildx) ]]; then echo "Docker-Buildx was not installed" exit 1 else @@ -59,6 +58,5 @@ docker_version=$(docker -v) DocumentInstalledItem "Docker-Moby ($docker_version)" echo "Documenting Docker-buildx version" -DOCKER_BUILDX_VERSION=$(apt-cache policy moby-buildx | grep Installed) -DOCKER_BUILDX_VERSION=$(echo ${DOCKER_BUILDX_VERSION//Installed:}) +DOCKER_BUILDX_VERSION=$(docker buildx version | cut -d ' ' -f2) DocumentInstalledItem "Docker-Buildx ($DOCKER_BUILDX_VERSION)" From 8410ae2c65543676b229a6d1e071482817b658a4 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Thu, 23 Apr 2020 20:19:11 +0500 Subject: [PATCH 44/74] Add snap/bin to /etc/environment (#755) * Add snap/bin to /etc/environment Co-authored-by: Sergey Dolin --- .../linux/scripts/installers/complete-snap-setup.sh | 12 ++++++++++++ images/linux/ubuntu1604.json | 10 ++++++++++ images/linux/ubuntu1804.json | 10 ++++++++++ 3 files changed, 32 insertions(+) create mode 100644 images/linux/scripts/installers/complete-snap-setup.sh diff --git a/images/linux/scripts/installers/complete-snap-setup.sh b/images/linux/scripts/installers/complete-snap-setup.sh new file mode 100644 index 00000000..51e63154 --- /dev/null +++ b/images/linux/scripts/installers/complete-snap-setup.sh @@ -0,0 +1,12 @@ +#!/bin/bash +################################################################################ +## File: snap-environment.sh +## Desc: Update /etc/environment to include /snap/bin in PATH +## because /etc/profile.d is ignored by `--norc` shell launch option +################################################################################ + +# Source the helpers +source $HELPER_SCRIPTS/etc-environment.sh + +# Update /etc/environemnt +prependEtcEnvironmentPath "/snap/bin" diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index 7ef1a820..62081af5 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -132,6 +132,16 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts": [ + "{{template_dir}}/scripts/installers/complete-snap-setup.sh" + ], + "environment_vars": [ + "HELPER_SCRIPTS={{user `helper_script_folder`}}" + ], + "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" + }, { "type": "shell", "scripts": [ diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 8217608b..41b75897 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -135,6 +135,16 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts": [ + "{{template_dir}}/scripts/installers/complete-snap-setup.sh" + ], + "environment_vars": [ + "HELPER_SCRIPTS={{user `helper_script_folder`}}" + ], + "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" + }, { "type": "shell", "scripts": [ From 53cfa780e5cd2da002f7f812a36a8a274e89acb5 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Fri, 24 Apr 2020 11:37:41 +0500 Subject: [PATCH 45/74] Use Install-Binary instead of Install-MSI (#773) Co-authored-by: Sergey Dolin --- images/win/scripts/Installers/Install-AWS-SAM.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-AWS-SAM.ps1 b/images/win/scripts/Installers/Install-AWS-SAM.ps1 index e94d7bd5..43469901 100644 --- a/images/win/scripts/Installers/Install-AWS-SAM.ps1 +++ b/images/win/scripts/Installers/Install-AWS-SAM.ps1 @@ -4,4 +4,4 @@ ## https://aws.amazon.com/serverless/sam/ ################################################################################ -Install-MSI -MsiUrl "https://github.com/awslabs/aws-sam-cli/releases/latest/download/AWS_SAM_CLI_64_PY3.msi" -MsiName "AWS_SAM_CLI_64_PY3.msi" \ No newline at end of file +Install-Binary -Url "https://github.com/awslabs/aws-sam-cli/releases/latest/download/AWS_SAM_CLI_64_PY3.msi" -Name "AWS_SAM_CLI_64_PY3.msi" From e5190ec6ee2303d886a318b64638405ece918ada Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Fri, 24 Apr 2020 12:35:00 +0500 Subject: [PATCH 46/74] Return back dotnent 3.1.102 (#748) It is not most recent now and it not selected by defaultg Co-authored-by: Sergey Dolin --- images/win/scripts/Installers/Install-DotnetSDK.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-DotnetSDK.ps1 b/images/win/scripts/Installers/Install-DotnetSDK.ps1 index 5fe03e9b..57d7668c 100644 --- a/images/win/scripts/Installers/Install-DotnetSDK.ps1 +++ b/images/win/scripts/Installers/Install-DotnetSDK.ps1 @@ -66,8 +66,8 @@ function InstallAllValidSdks() Invoke-WebRequest -Uri $dotnetChannel.'releases.json' -UseBasicParsing -OutFile "releases-$channelVersion.json" $currentReleases = Get-Content -Path "releases-$channelVersion.json" | ConvertFrom-Json # filtering out the preview/rc releases - # Remove version 3.1.102 from install list, .NET gave a heads-up that this might cause issues and they are working on a fix. https://github.com/dotnet/aspnetcore/issues/19133 - $currentReleases = $currentReleases.'releases' | Where-Object { !$_.'release-version'.Contains('-') -and !$_.'release-version'.Contains('3.1.2') } | Sort-Object { [Version] $_.'release-version' } + $currentReleases = $currentReleases.'releases' | Where-Object { !$_.'release-version'.Contains('-') } | Sort-Object { [Version] $_.'release-version' } + ForEach ($release in $currentReleases) { if ($release.'sdks'.Count -gt 0) From 201f41d655d0c9884c800fe1e4e936c1673bf418 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Fri, 24 Apr 2020 13:48:11 +0300 Subject: [PATCH 47/74] clear CERT_NOT_BEFORE_FILETIME_PROP_ID property --- .../win/scripts/Installers/Install-RootCA.ps1 | 137 ++++++++++++++++-- 1 file changed, 121 insertions(+), 16 deletions(-) diff --git a/images/win/scripts/Installers/Install-RootCA.ps1 b/images/win/scripts/Installers/Install-RootCA.ps1 index cd3a4642..297d8bdb 100644 --- a/images/win/scripts/Installers/Install-RootCA.ps1 +++ b/images/win/scripts/Installers/Install-RootCA.ps1 @@ -1,22 +1,127 @@ -# Serialized Certificate Store File -$sstFile = "$env:TEMP\roots.sst" -# Generate SST from Windows Update -$result = certutil.exe -generateSSTFromWU $sstFile -if ($LASTEXITCODE -ne 0) { - Write-Host "[Error]: failed to generate $sstFile sst file`n$result" - exit $LASTEXITCODE +# https://www.sysadmins.lv/blog-en/how-to-retrieve-certificate-purposes-property-with-cryptoapi-and-powershell.aspx +# https://www.sysadmins.lv/blog-en/dump-authroot-and-disallowed-certificates-with-powershell.aspx +# https://www.sysadmins.lv/blog-en/constraining-extended-key-usages-in-microsoft-windows.aspx + +function Add-ExtendedCertType { + $signature = @" + [DllImport("Crypt32.dll", SetLastError = true, CharSet = CharSet.Auto)] + public static extern bool CertGetCertificateContextProperty( + IntPtr pCertContext, + uint dwPropId, + Byte[] pvData, + ref uint pcbData + ); + + [DllImport("Crypt32.dll", CharSet = CharSet.Auto, SetLastError = true)] + public static extern bool CertSetCertificateContextProperty( + IntPtr pCertContext, + int dwPropId, + uint dwFlags, + IntPtr pvData + ); +"@ + + Add-Type -MemberDefinition $signature -Namespace PKI -Name Cert } -$result = certutil.exe -dump $sstFile -if ($LASTEXITCODE -ne 0) { - Write-Host "[Error]: failed to dump $sstFile sst file`n$result" - exit $LASTEXITCODE +function Get-CertificatesWithoutPropId { + # List installed certificates + $certs = Get-ChildItem -Path Cert:\LocalMachine\Root + + Write-Host "Certificates without CERT_NOT_BEFORE_FILETIME_PROP_ID property" + $certsWithoutPropId = @{} + $certs | ForEach-Object -Process { + $certHandle = $_.Handle + $isPropertySet = [PKI.Cert]::CertGetCertificateContextProperty( + $certHandle, $CERT_NOT_BEFORE_FILETIME_PROP_ID, $null, [ref]$null + ) + if (-not $isPropertySet) { + Write-Host "Subject: $($_.Subject)" + $certsWithoutPropId[$_.Thumbprint] = $null + } + } + $certsWithoutPropId +} +function Import-SSTFromWU { + # Serialized Certificate Store File + $sstFile = "$env:TEMP\roots.sst" + # Generate SST from Windows Update + $result = certutil.exe -generateSSTFromWU $sstFile + if ($LASTEXITCODE -ne 0) { + Write-Host "[Error]: failed to generate $sstFile sst file`n$result" + exit $LASTEXITCODE + } + + $result = certutil.exe -dump $sstFile + if ($LASTEXITCODE -ne 0) { + Write-Host "[Error]: failed to dump $sstFile sst file`n$result" + exit $LASTEXITCODE + } + + try { + Import-Certificate -FilePath $sstFile -CertStoreLocation Cert:\LocalMachine\Root + } catch { + Write-Host "[Error]: failed to import ROOT CA`n$_" + exit 1 + } } -try { - Import-Certificate -FilePath $sstFile -CertStoreLocation Cert:\LocalMachine\Root -} catch { - Write-Host "[Error]: failed to import ROOT CA`n$_" - exit 1 +function Clear-CertificatesPropId { + param([hashtable]$CertsWithoutPropId) + + # List installed certificates + $certs = Get-ChildItem -Path Cert:\LocalMachine\Root + + # Clear property CERT_NOT_BEFORE_FILETIME_PROP_ID + $certs | ForEach-Object -Process { + $thumbprint = $_.Thumbprint + if ($certsWithoutPropId.ContainsKey($thumbprint)) { + $subject = $_.Subject + $certHandle = $_.Handle + $result = [PKI.Cert]::CertSetCertificateContextProperty( + $certHandle, $CERT_NOT_BEFORE_FILETIME_PROP_ID, 0, [System.IntPtr]::Zero + ) + if ($result) { + Write-Host "[Success] Clear CERT_NOT_BEFORE_FILETIME_PROP_ID property $subject" + } else { + Write-Host "[Fail] Clear CERT_NOT_BEFORE_FILETIME_PROP_ID property $subject" + } + } + } } +function Disable-RootAutoUpdate { + Write-Host "Disable auto root update mechanism" + $regPath = "HKLM:\Software\Policies\Microsoft\SystemCertificates\AuthRoot" + $regKey = "DisableRootAutoUpdate" + + # Create the registry key if it doesn't exist + if (-not (Test-Path $regPath)) { + Write-Verbose "Creating $regPath" + New-Item $regPath | Out-Null + } + + Set-ItemProperty $regPath -Name $regKey -Type DWord -Value 1 +} + +# Property to remove +$CERT_NOT_BEFORE_FILETIME_PROP_ID = 126 + +# Add extende cert type +Add-ExtendedCertType + +# Get certificates without property CERT_NOT_BEFORE_FILETIME_PROP_ID +$certsWithoutPropId = Get-CertificatesWithoutPropId + +# Download and install the latest version of root ca list +Import-SSTFromWU + +# Clear property CERT_NOT_BEFORE_FILETIME_PROP_ID +if ($certsWithoutPropId.Count -gt 0) { + Clear-CertificatesPropId -CertsWithoutPropId $certsWithoutPropId +} else { + Write-Host "Nothing to clear" +} + +# Disable auto root update mechanism +Disable-RootAutoUpdate \ No newline at end of file From aceadd6a06d625c7d97ba29790b85f4322b4280a Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Fri, 24 Apr 2020 20:14:42 +0300 Subject: [PATCH 48/74] nitpicks --- images/win/scripts/Installers/Install-RootCA.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-RootCA.ps1 b/images/win/scripts/Installers/Install-RootCA.ps1 index 297d8bdb..a5d67808 100644 --- a/images/win/scripts/Installers/Install-RootCA.ps1 +++ b/images/win/scripts/Installers/Install-RootCA.ps1 @@ -107,7 +107,7 @@ function Disable-RootAutoUpdate { # Property to remove $CERT_NOT_BEFORE_FILETIME_PROP_ID = 126 -# Add extende cert type +# Add extended cert type Add-ExtendedCertType # Get certificates without property CERT_NOT_BEFORE_FILETIME_PROP_ID @@ -124,4 +124,4 @@ if ($certsWithoutPropId.Count -gt 0) { } # Disable auto root update mechanism -Disable-RootAutoUpdate \ No newline at end of file +Disable-RootAutoUpdate From 54f4e242c8c6a0078424f4a59e91cc74e9cad453 Mon Sep 17 00:00:00 2001 From: Andy Mishechkin <57713077+andy-mishechkin@users.noreply.github.com> Date: Sat, 25 Apr 2020 18:26:44 +0400 Subject: [PATCH 49/74] mac OS 10.15 Software Updates Week 17 (#766) (20200418.1) ImageVersion: 20200418.1 --- images/macos/macos-10.15-Readme.md | 232 +++++++++++++++-------------- 1 file changed, 120 insertions(+), 112 deletions(-) diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md index 62a84931..118cc7b6 100644 --- a/images/macos/macos-10.15-Readme.md +++ b/images/macos/macos-10.15-Readme.md @@ -4,42 +4,42 @@ The following software is installed on machines with the 20200328.1 update. #### Xcode 11.3.1 set by default ## Operating System -- OS X 10.15.4 (19E266) **Catalina** +- OS X 10.15.4 (19E287) **Catalina** -## Installed Software -### Language and Runtime -- Java 1.7: (Zulu 7.36.0.5-CA-macosx) (build 1.7.0_252-b10) -- Java 1.8: (Zulu 8.44.0.11-CA-macosx) (build 1.8.0_242-b20) (default) -- Java 11: Zulu11.37+17-CA (build 11.0.6+10-LTS) +# Installed Software +## Language and Runtime +- Java 1.7: (Zulu 7.38.0.11-CA-macosx) (build 1.7.0_262-b10) +- Java 1.8: (Zulu 8.46.0.19-CA-macosx) (build 1.8.0_252-b14) (default) +- Java 11: Zulu11.39+15-CA (build 11.0.7+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) -- Java 14: Zulu14.27+1-CA (build 14+36) +- Java 13: Zulu13.31+11-CA (build 13.0.3+3-MTS) +- Java 14: Zulu14.28+21-CA (build 14.0.1+8) - Rust 1.42.0 -- Clang/LLVM 9.0.1 -- gcc-8 (Homebrew GCC 8.4.0) 8.4.0 -- gcc-9 (Homebrew GCC 9.3.0) 9.3.0 -- GNU Fortran (Homebrew GCC 8.4.0) 8.4.0 -- GNU Fortran (Homebrew GCC 9.3.0) 9.3.0 -- Node.js v12.16.1 +- Clang/LLVM 10.0.0 +- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 +- gcc-9 (Homebrew GCC 9.3.0_1) 9.3.0 +- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 +- GNU Fortran (Homebrew GCC 9.3.0_1) 9.3.0 +- Node.js v12.16.2 - NVM 0.33.11 -- NVM - Cached node versions: v6.17.1 v8.17.0 v10.19.0 v12.16.1 v13.12.0 +- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.0 v12.16.2 v13.13.0 - PowerShell 7.0.0 - Python 2.7.17 - Python 3.7.7 -- Ruby 2.6.5p114 +- Ruby 2.6.6p146 - .NET SDK 2.0.0 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.200 3.1.201 -- Go 1.14.1 -- PHP 7.4.4 -- julia 1.4.0 +- Go 1.14.2 +- PHP 7.4.5 +- julia 1.4.1 -### Package Management +## Package Management - Rustup 1.21.1 - Vcpkg 2020.02.04 - Bundler version 2.1.4 - Carthage 0.34.0 - CocoaPods 1.9.1 -- Homebrew 2.2.11 -- NPM 6.13.4 +- Homebrew 2.2.13 +- NPM 6.14.4 - Yarn 1.22.4 - NuGet 5.5.0.6382 - Pip 19.3.1 (python 2.7) @@ -47,13 +47,13 @@ The following software is installed on machines with the 20200328.1 update. - Miniconda 4.8.2 - RubyGems 3.1.2 -### Project Management +## Project Management - Apache Maven 3.6.3 - Gradle 6.3 -### Utilities +## Utilities - Curl 7.69.1 -- Git: 2.26.0 +- Git: 2.26.1 - Git LFS: 2.10.0 - Hub CLI: 2.14.2 - GNU Wget 1.20.3 @@ -64,83 +64,92 @@ The following software is installed on machines with the 20200328.1 update. - jq 1.6 - gpg (GnuPG) 2.2.20 - psql (PostgreSQL) 12.2 +- PostgreSQL 12.2 - aria2 1.35.0 -- azcopy 10.3.4 +- azcopy 10.4.0 - zstd 1.4.4 -- bazel 2.2.0 -- bazelisk v1.3.0 +- bazel 3.0.0 +- bazelisk v1.4.0 - helm v3.1.2+gd878d4d -- Docker 19.03.8 -- docker-machine 0.16.2 -- docker-compose 1.25.4 +- virtualbox 6.1.6r137129 +- Vagrant 2.2.7 -### Tools -- Fastlane 2.144.0 -- Cmake 3.17.0 -- App Center CLI 2.3.5 -- Azure CLI 2.2.0 -- AWS CLI 2.0.5 +## Tools +- Fastlane 2.145.0 +- Cmake 3.17.1 +- App Center CLI 2.4.1 +- Azure CLI 2.3.1 +- AWS CLI 2.0.8 +- AWS SAM CLI 0.47.0 +- Aliyun CLI 3.0.37 -### Browsers -- Google Chrome 80.0.3987.149 -- ChromeDriver 80.0.3987.106 -- Microsoft Edge 80.0.361.69 -- MSEdgeDriver 80.0.361.69 -- Mozilla Firefox 74.0 +## Browsers +- Safari 13.1 (15609.1.20.111.8) +- SafariDriver 13.1 (15609.1.20.111.8) +- Google Chrome 81.0.4044.113 +- ChromeDriver 81.0.4044.69 +- Microsoft Edge 81.0.416.53 +- MSEdgeDriver 81.0.416.58 +- Mozilla Firefox 75.0 - geckodriver 0.26.0 -### Toolcache -#### Ruby -- 2.4.9 -- 2.5.7 -- 2.6.5 -- 2.7.0 +## Toolcache +### Ruby +- 2.4.10 +- 2.5.8 +- 2.6.6 +- 2.7.1 -#### Python +### Python - 2.7.17 - 3.5.9 - 3.6.10 - 3.7.6 - 3.8.2 -#### PyPy +### PyPy - 2.7.17 - 3.6.9 -### Xamarin -#### Visual Studio for Mac -- 8.5.0.3183 +## Xamarin +### Visual Studio for Mac +- 8.5.3.16 -#### Mono +### Mono - 6.8.0.123 - 6.6.0.166 - 6.4.0.208 -#### Xamarin.iOS +### Xamarin.iOS +- 13.16.0.13 - 13.14.1.39 - 13.10.0.21 - 13.8.3.0 - 13.6.0.12 - 13.4.0.2 +- 13.2.0.47 -#### Xamarin.Mac +### Xamarin.Mac +- 6.16.0.13 - 6.14.1.39 - 6.10.0.21 - 6.8.3.0 - 6.6.0.12 - 6.4.0.2 +- 6.2.0.47 -#### Xamarin.Android +### Xamarin.Android - 10.2.0 - 10.1.3 - 10.0.6 -#### Unit Test Framework +### Unit Test Framework - NUnit 3.6.1 -### Xcode +## Xcode | Version | Build | Path | | ---------------- | ------- | ------------------------------ | +| 11.4.1 | 11E503a | /Applications/Xcode_11.4.1.app | | 11.4 | 11E146 | /Applications/Xcode_11.4.app | | 11.3.1 (default) | 11C505 | /Applications/Xcode_11.3.1.app | | 11.3 | 11C29 | /Applications/Xcode_11.3.app | @@ -149,67 +158,67 @@ The following software is installed on machines with the 20200328.1 update. | 11.1 | 11A1027 | /Applications/Xcode_11.1.app | | 11.0 | 11A420a | /Applications/Xcode_11.app | -#### Xcode Support Tools +### 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 +- xcversion 2.6.4 -#### 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, 11.4 | -| 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 | -| iOS 13.4 | iphoneos13.4 | 11.4 | -| 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 | -| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4 | -| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 | -| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | -| tvOS 13.4 | appletvos13.4 | 11.4 | -| 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 | -| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4 | -| watchOS 6.0 | watchos6.0 | 11.0, 11.1 | -| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 | -| watchOS 6.2 | watchos6.2 | 11.4 | -| 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 | -| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4 | -| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4 | +### 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, 11.4, 11.4.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 | +| iOS 13.4 | iphoneos13.4 | 11.4, 11.4.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 | +| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.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 | +| tvOS 13.4 | appletvos13.4 | 11.4, 11.4.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 | +| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.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 | +| watchOS 6.2 | watchos6.2 | 11.4, 11.4.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 | +| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1 | +| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.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 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)
iPad Pro (11-inch) (1st generation) | -| iOS 13.4 | 11.4 | 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) (2nd generation)
iPad Pro (12.9-inch) (4th 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) | -| tvOS 13.4 | 11.4 | 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 | -| watchOS 6.2 | 11.4 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | +### 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 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) | +| iOS 13.4 | 11.4
11.4.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) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Air (3rd generation)
iPhone SE (2nd 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) | +| tvOS 13.4 | 11.4
11.4.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 | +| watchOS 6.2 | 11.4
11.4.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 +## Android +### Android SDK Tools | Package Name | Description | | ------------ | ---------------------------------- | | tools | Android SDK Tools, Revision 26.1.1 | -#### Android SDK Platform-Tools +### Android SDK Platform-Tools | Package Name | Description | | -------------- | ------------------------------------------- | | platform-tools | Android SDK Platform-Tools, Revision 29.0.6 | -#### Android SDK Platforms +### Android SDK Platforms | Package Name | Description | | ------------ | ----------------------------------- | | android-24 | Android SDK Platform 24, Revision 2 | @@ -219,7 +228,7 @@ The following software is installed on machines with the 20200328.1 update. | android-28 | Android SDK Platform 28, Revision 6 | | android-29 | Android SDK Platform 29, Revision 4 | -#### Android SDK Build-Tools +### Android SDK Build-Tools | Package Name | Description | | ---------------------- | -------------------------------------------- | | build-tools-24.0.0 | Android SDK Build-Tools, Revision 24.0.0 | @@ -248,15 +257,15 @@ The following software is installed on machines with the 20200328.1 update. | build-tools-29.0.3 | Android SDK Build-Tools, Revision 29.0.3 | | build-tools-30.0.0-rc1 | Android SDK Build-Tools, Revision 30.0.0 rc1 | -#### Android Utils +### Android Utils | Package Name | Version | | ---------------- | ------------ | | cmake | 3.6.4111459 | | lldb | 3.1.4508709 | -| ndk-bundle | 18.1.5063045 | +| ndk-bundle | 21.0.6113669 | | Android Emulator | 30.0.5 | -#### Android Google APIs +### Android Google APIs | Package Name | Description | | --------------------------- | ----------------------- | | addon-google_apis-google-21 | Google APIs, Revision 1 | @@ -264,11 +273,10 @@ The following software is installed on machines with the 20200328.1 update. | addon-google_apis-google-23 | Google APIs, Revision 1 | | addon-google_apis-google-24 | Google APIs, Revision 1 | -#### Extra Packages +### 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 | - From 605aa45dec7799b97bf2861aa0b67a30c06d1042 Mon Sep 17 00:00:00 2001 From: Dariy Nurgaleev <50947177+Darleev@users.noreply.github.com> Date: Mon, 27 Apr 2020 16:19:37 +0700 Subject: [PATCH 50/74] Feature request: Added Tool license/Installation time. (#784) * added new feature request fields * update tool can be installed during hte build. --- .github/ISSUE_TEMPLATE/tool-request.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/tool-request.md b/.github/ISSUE_TEMPLATE/tool-request.md index 33bf4454..5cb1a740 100644 --- a/.github/ISSUE_TEMPLATE/tool-request.md +++ b/.github/ISSUE_TEMPLATE/tool-request.md @@ -9,6 +9,7 @@ assignees: '' **Tool information** - Tool name: +- Tool license: - Add or update? - Desired version: - Approximate size: @@ -30,7 +31,10 @@ assignees: '' - [ ] Windows Server 2019 **Can this tool be installed during the build?** - + + +**Tool installation time in runtime** + **Are you willing to submit a PR?** From e5002c0d6c330b88a54a2208717eadda01c75282 Mon Sep 17 00:00:00 2001 From: "Christoph Bergmeister [MVP]" Date: Mon, 27 Apr 2020 10:40:52 +0100 Subject: [PATCH 51/74] Upgrade to Az 3.8 --- images/win/scripts/Installers/Install-AzureModules.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-AzureModules.ps1 b/images/win/scripts/Installers/Install-AzureModules.ps1 index 5a67584a..3f41a774 100644 --- a/images/win/scripts/Installers/Install-AzureModules.ps1 +++ b/images/win/scripts/Installers/Install-AzureModules.ps1 @@ -39,6 +39,7 @@ $psAzureModulesToInstall = @{ "2.6.0" "3.1.0" "3.5.0" + "3.8.0" ) } @@ -65,4 +66,4 @@ foreach($psmoduleName in $psAzureModulesToInstall.Keys) # Add AzureRM and Azure modules to the PSModulePath $finalModulePath = '{0};{1};{2}' -f "${installPSModulePath}\azurerm_2.1.0", "${installPSModulePath}\azure_2.1.0", $env:PSModulePath -[Environment]::SetEnvironmentVariable("PSModulePath", $finalModulePath, "Machine") \ No newline at end of file +[Environment]::SetEnvironmentVariable("PSModulePath", $finalModulePath, "Machine") From 3df56601847b21a825d52376a0dde8276195210a Mon Sep 17 00:00:00 2001 From: "Christoph Bergmeister [MVP]" Date: Mon, 27 Apr 2020 12:38:45 +0100 Subject: [PATCH 52/74] Update Validate-AzureModules.ps1 --- images/win/scripts/Installers/Validate-AzureModules.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Validate-AzureModules.ps1 b/images/win/scripts/Installers/Validate-AzureModules.ps1 index a7be9ef1..38c692b4 100644 --- a/images/win/scripts/Installers/Validate-AzureModules.ps1 +++ b/images/win/scripts/Installers/Validate-AzureModules.ps1 @@ -80,7 +80,7 @@ Validate-AzureModule -ModuleName AzureRM -ModuleVersions $azurermVersions $azureVersions = "2.1.0", "3.8.0", "4.2.1", "5.1.1", "5.3.0" Validate-AzureModule -ModuleName Azure -ModuleVersions $azureVersions -$azVersions = "1.0.0", "1.6.0", "2.3.2", "2.6.0", "3.1.0", "3.5.0" +$azVersions = "1.0.0", "1.6.0", "2.3.2", "2.6.0", "3.1.0", "3.5.0", "3.8.0" Validate-AzureModule -ModuleName Az -ModuleVersions $azVersions # Get default modules version @@ -93,4 +93,4 @@ $env:PSModulePath = $env:PSModulePath + ";C:\Modules" # Adding description of the software to Markdown Add-ModuleDescription -DefaultModule $defaultAzureRMModule -ModuleName AzureRM Add-ModuleDescription -DefaultModule $defaultAzureModule -ModuleName Azure -Add-ModuleDescription -ModuleName Az \ No newline at end of file +Add-ModuleDescription -ModuleName Az From 5896eb6ac6deb7e3a8fa681d7b59fdef6a0c160a Mon Sep 17 00:00:00 2001 From: Dibir Magomedsaygitov <61747324+dibir-magomedsaygitov@users.noreply.github.com> Date: Mon, 27 Apr 2020 14:48:28 +0300 Subject: [PATCH 53/74] Update MySQL info in the docs for Ubuntu images (#776) * update documentation related to mysql --- images/linux/scripts/installers/mysql.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/images/linux/scripts/installers/mysql.sh b/images/linux/scripts/installers/mysql.sh index 98d0d665..1f2ea2ed 100644 --- a/images/linux/scripts/installers/mysql.sh +++ b/images/linux/scripts/installers/mysql.sh @@ -44,7 +44,8 @@ echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "MySQL ($(mysql --version))" DocumentInstalledItem "MySQL Server (user:root password:root)" DocumentInstalledItem "MS SQL Server Client Tools" +DocumentInstalledItem "MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service'" # Disable mysql.service -systemctl is-active --quiet mysql.service && systemctl stop mysql.service -systemctl disable mysql.service +systemctl is-active --quiet mysql.service && systemctl stop mysql.service +systemctl disable mysql.service From c0df07efc8dc99a5673de5df5c8a5861b1d4dc18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= Date: Mon, 27 Apr 2020 19:31:03 +0200 Subject: [PATCH 54/74] Fix formatting in doc-string for Rust for Windows-image. Ensure output in ` images/win/Windows2019-Readme.md` looks proper. [Live in master right now](https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md#rust-64-bit), it looks kinda bad. --- images/win/scripts/Installers/Validate-Rust.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Validate-Rust.ps1 b/images/win/scripts/Installers/Validate-Rust.ps1 index e80a7249..d23d91d8 100644 --- a/images/win/scripts/Installers/Validate-Rust.ps1 +++ b/images/win/scripts/Installers/Validate-Rust.ps1 @@ -26,8 +26,8 @@ $Version = $Matches[0] $SoftwareName = "Rust (64-bit)" $Description = @" #### $Version -_Location:_ $RustPath _Environment:_ +* _Location:_ $RustPath * PATH: contains the location of rustc.exe "@ From 792da139c981620056a4ab1b930b60537bd0d447 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Tue, 28 Apr 2020 07:26:29 +0000 Subject: [PATCH 55/74] move homebrew to the end (#789) --- images/linux/scripts/helpers/etc-environment.sh | 5 +++++ images/linux/scripts/installers/homebrew.sh | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/images/linux/scripts/helpers/etc-environment.sh b/images/linux/scripts/helpers/etc-environment.sh index f0a68cf4..9637f242 100644 --- a/images/linux/scripts/helpers/etc-environment.sh +++ b/images/linux/scripts/helpers/etc-environment.sh @@ -61,6 +61,11 @@ function prependEtcEnvironmentPath { prependEtcEnvironmentVariable PATH "${element}" } +function appendEtcEnvironmentPath { + element="$1" + appendEtcEnvironmentVariable PATH "${element}" +} + # Process /etc/environment as if it were shell script with `export VAR=...` expressions # The PATH variable is handled specially in order to do not override the existing PATH # variable. The value of PATH variable read from /etc/environment is added to the end diff --git a/images/linux/scripts/installers/homebrew.sh b/images/linux/scripts/installers/homebrew.sh index 17622f5c..ee94ea60 100644 --- a/images/linux/scripts/installers/homebrew.sh +++ b/images/linux/scripts/installers/homebrew.sh @@ -20,7 +20,7 @@ sudo chmod -R o+w $HOMEBREW_PREFIX brew shellenv|grep 'export HOMEBREW'|sed -E 's/^export (.*);$/\1/' | sudo tee -a /etc/environment # add brew executables locations to PATH brew_path=$(brew shellenv|grep '^export PATH' |sed -E 's/^export PATH="([^$]+)\$.*/\1/') -prependEtcEnvironmentPath "$brew_path" +appendEtcEnvironmentPath "$brew_path" # Validate the installation ad hoc echo "Validate the installation reloading /etc/environment" From 02060533d38161f2e07dcbc5e56d9101a7bbba82 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Wed, 29 Apr 2020 12:46:23 +0500 Subject: [PATCH 56/74] Don\'t create backup sed file (#792) Co-authored-by: Sergey Dolin --- images/linux/scripts/helpers/etc-environment.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/helpers/etc-environment.sh b/images/linux/scripts/helpers/etc-environment.sh index 9637f242..24801723 100644 --- a/images/linux/scripts/helpers/etc-environment.sh +++ b/images/linux/scripts/helpers/etc-environment.sh @@ -26,7 +26,7 @@ function replaceEtcEnvironmentVariable { variable_value="$2" # modify /etc/environemnt in place by replacing a string that begins with variable_name - sudo sed -ie "s%^${variable_name}=.*$%${variable_name}=\"${variable_value}\"%" /etc/environment + sudo sed -i -e "s%^${variable_name}=.*$%${variable_name}=\"${variable_value}\"%" /etc/environment } function setEtcEnvironmentVariable { From 7b8624f6911573fea1c86788b14e5ade31ae4760 Mon Sep 17 00:00:00 2001 From: Alena Sviridenko Date: Wed, 29 Apr 2020 10:47:27 +0300 Subject: [PATCH 57/74] Updated README with new rules of tool installation. (#793) * Update README with new rules of tool installation. * fixed typo * fix notes * another minor fix * fixed articles * fixed license line --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 5ccfdf2e..69b0c920 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,11 @@ In general, these are the guidelines we consider when deciding what to pre-insta - Tools and versions will typically be removed 6 months after they are deprecated or have reached end-of-life. - If a tool can be installed during the build, we will evaluate how much time is saved and how much space is used by having the tool pre-installed. +- MIT, Apache, and GNU licenses are ok, anything else we'll have to check with lawyers. +- If a tool takes much space we will evaluate space usage and provide a decision if this tool can be pre-installed. +- If a tool requires the support of more than one version, we will consider the cost of this maintenance, how often new versions bring dangerous updates. + +**Note:** For new tools, please, create an issue and get an approval from us to add this tool to the image before creating the pull request. ## Updates to virtual environments *Cadence* From 5cfbfcb2e6dd94aa5b4eef5572a775b52ec36176 Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Wed, 29 Apr 2020 13:00:56 +0300 Subject: [PATCH 58/74] Add Python toolcache installation from Github releases for Ubuntu (#704) Change logic to install Python to Ubuntu images to use GitHub releases from https://github.com/actions/python-versions --- .../scripts/installers/Install-Toolset.ps1 | 55 ++++++++++++++++ .../scripts/installers/Validate-Toolset.ps1 | 62 +++++++++++++++++++ .../scripts/installers/hosted-tool-cache.sh | 6 -- .../scripts/installers/test-toolcache.sh | 1 - images/linux/toolcache-1604.json | 3 - images/linux/toolcache-1804.json | 3 - images/linux/toolset-1604.json | 18 ++++++ images/linux/toolset-1804.json | 18 ++++++ images/linux/ubuntu1604.json | 18 ++++++ images/linux/ubuntu1804.json | 18 ++++++ 10 files changed, 189 insertions(+), 13 deletions(-) create mode 100644 images/linux/scripts/installers/Install-Toolset.ps1 create mode 100644 images/linux/scripts/installers/Validate-Toolset.ps1 create mode 100644 images/linux/toolset-1604.json create mode 100644 images/linux/toolset-1804.json diff --git a/images/linux/scripts/installers/Install-Toolset.ps1 b/images/linux/scripts/installers/Install-Toolset.ps1 new file mode 100644 index 00000000..518a1f9b --- /dev/null +++ b/images/linux/scripts/installers/Install-Toolset.ps1 @@ -0,0 +1,55 @@ +################################################################################ +## File: Install-Toolset.ps1 +## Team: CI-Build +## Desc: Install toolset +################################################################################ + +Function Install-Asset { + param( + [Parameter(Mandatory = $true)] + [object] $ReleaseAsset + ) + + Write-Host "Download $($ReleaseAsset.filename)" + wget $ReleaseAsset.download_url -nv --retry-connrefused --tries=10 + + Write-Host "Extract $($ReleaseAsset.filename) content..." + $assetFolderPath = Join-Path $env:INSTALLER_SCRIPT_FOLDER $($ReleaseAsset.filename) + New-Item -ItemType Directory -Path $assetFolderPath + tar -xzf $ReleaseAsset.filename -C $assetFolderPath + + Write-Host "Invoke installation script..." + Push-Location -Path $assetFolderPath + Invoke-Expression "bash ./setup.sh" + Pop-Location +} + +$ErrorActionPreference = "Stop" + +# Get toolset content +$toolsetJson = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw +$tools = ConvertFrom-Json -InputObject $toolsetJson | Select-Object -ExpandProperty toolcache + +foreach ($tool in $tools) { + # Get versions manifest for current tool + $assets = Invoke-RestMethod $tool.url + + # Get github release asset for each version + foreach ($toolVersion in $tool.versions) { + $asset = $assets | Where-Object version -like $toolVersion ` + | Select-Object -ExpandProperty files ` + | Where-Object { ($_.platform -eq $tool.platform) -and ($_.platform_version -eq $tool.platform_version)} ` + | Select-Object -First 1 + + Write-Host "Installing $($tool.name) $toolVersion $($tool.arch)..." + if ($asset -ne $null) { + Install-Asset -ReleaseAsset $asset + } + else { + Write-Host "Asset was not found in versions manifest" + exit 1 + } + } +} + +chown -R "$($env:SUDO_USER):$($env:SUDO_USER)" /opt/hostedtoolcache/Python \ No newline at end of file diff --git a/images/linux/scripts/installers/Validate-Toolset.ps1 b/images/linux/scripts/installers/Validate-Toolset.ps1 new file mode 100644 index 00000000..13847465 --- /dev/null +++ b/images/linux/scripts/installers/Validate-Toolset.ps1 @@ -0,0 +1,62 @@ +################################################################################ +## File: Validate-Toolset.ps1 +## Team: CI-Build +## Desc: Validate Toolset +################################################################################ + +function Run-ExecutableTests { + param ( + [Parameter(Mandatory)] [string[]] $Executables, + [Parameter(Mandatory)] [string] $ToolPath + ) + + foreach ($executable in $Executables) { + $executablePath = Join-Path $ToolPath $executable + + Write-Host "Check $executable..." + if (Test-Path $executablePath) { + Write-Host "$executable is successfully installed: $(& $executablePath --version)" + } else { + Write-Host "$executablePath is not installed!" + exit 1 + } + } +} + +$ErrorActionPreference = "Stop" + +# Define executables for cached tools +$toolsExecutables = @{ Python = @("python", "bin/pip") } + +# Get toolset content +$toolsetJson = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw +$tools = ConvertFrom-Json -InputObject $toolsetJson | Select-Object -ExpandProperty toolcache + +foreach($tool in $tools) { + Invoke-Expression "bash -c `"source $env:HELPER_SCRIPTS/document.sh; DocumentInstalledItem '$($tool.name):'`"" + + $toolPath = Join-Path $env:AGENT_TOOLSDIRECTORY $tool.name + # Get executables for current tool + $toolExecs = $toolsExecutables[$tool.name] + + foreach ($version in $tool.versions) { + # Check if version folder exists + $expectedVersionPath = Join-Path $toolPath $version + if (-not (Test-Path $expectedVersionPath)) { + Write-Host "Expected $($tool.name) $version folder is not found!" + exit 1 + } + + # Take latest installed version in case if toolset version contains wildcards + $foundVersion = Get-Item $expectedVersionPath ` + | Sort-Object -Property {[version]$_.name} -Descending ` + | Select-Object -First 1 + $foundVersionPath = Join-Path $foundVersion $tool.arch + + Write-Host "Run validation test for $($tool.name)($($tool.arch)) $($foundVersion.name) executables..." + Run-ExecutableTests -Executables $toolExecs -ToolPath $foundVersionPath + + # Add tool version to documentation + Invoke-Expression "bash -c `"source $env:HELPER_SCRIPTS/document.sh; DocumentInstalledItemIndent '$($tool.name) $($foundVersion.name)'`"" + } +} \ No newline at end of file diff --git a/images/linux/scripts/installers/hosted-tool-cache.sh b/images/linux/scripts/installers/hosted-tool-cache.sh index f9e5b918..a0ff4466 100644 --- a/images/linux/scripts/installers/hosted-tool-cache.sh +++ b/images/linux/scripts/installers/hosted-tool-cache.sh @@ -49,12 +49,6 @@ 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 diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh index 2601db4b..53ed0715 100644 --- a/images/linux/scripts/installers/test-toolcache.sh +++ b/images/linux/scripts/installers/test-toolcache.sh @@ -69,6 +69,5 @@ done; AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache -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 index 40f4cd9d..96638f0f 100644 --- a/images/linux/toolcache-1604.json +++ b/images/linux/toolcache-1604.json @@ -1,7 +1,4 @@ { - "@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" ], diff --git a/images/linux/toolcache-1804.json b/images/linux/toolcache-1804.json index 26ad4d98..13c69785 100644 --- a/images/linux/toolcache-1804.json +++ b/images/linux/toolcache-1804.json @@ -1,7 +1,4 @@ { - "@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" ], diff --git a/images/linux/toolset-1604.json b/images/linux/toolset-1604.json new file mode 100644 index 00000000..e3953f81 --- /dev/null +++ b/images/linux/toolset-1604.json @@ -0,0 +1,18 @@ +{ + "toolcache": [ + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "platform" : "linux", + "platform_version": "16.04", + "arch": "x64", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ] + } + ] +} \ No newline at end of file diff --git a/images/linux/toolset-1804.json b/images/linux/toolset-1804.json new file mode 100644 index 00000000..a854ae6b --- /dev/null +++ b/images/linux/toolset-1804.json @@ -0,0 +1,18 @@ +{ + "toolcache": [ + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "platform" : "linux", + "platform_version": "18.04", + "arch": "x64", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ] + } + ] +} \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index 62081af5..cc4eb8f5 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -269,6 +269,11 @@ "source": "{{template_dir}}/toolcache-1604.json", "destination": "{{user `installer_script_folder`}}/toolcache.json" }, + { + "type": "file", + "source": "{{template_dir}}/toolset-1604.json", + "destination": "{{user `installer_script_folder`}}/toolset.json" + }, { "type": "shell", "scripts":[ @@ -287,6 +292,19 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/Install-Toolset.ps1", + "{{template_dir}}/scripts/installers/Validate-Toolset.ps1" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" + ], + "execute_command": "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" + }, { "type": "shell", "scripts":[ diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 41b75897..b50efb28 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -273,6 +273,11 @@ "source": "{{template_dir}}/toolcache-1804.json", "destination": "{{user `installer_script_folder`}}/toolcache.json" }, + { + "type": "file", + "source": "{{template_dir}}/toolset-1804.json", + "destination": "{{user `installer_script_folder`}}/toolset.json" + }, { "type": "shell", "scripts":[ @@ -291,6 +296,19 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/Install-Toolset.ps1", + "{{template_dir}}/scripts/installers/Validate-Toolset.ps1" + ], + "environment_vars": [ + "METADATA_FILE={{user `metadata_file`}}", + "HELPER_SCRIPTS={{user `helper_script_folder`}}", + "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" + ], + "execute_command": "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" + }, { "type": "shell", "scripts":[ From 612ed30d53df8627dfb365ca501afdbee9867b37 Mon Sep 17 00:00:00 2001 From: Dariy Nurgaleev <50947177+Darleev@users.noreply.github.com> Date: Wed, 29 Apr 2020 22:11:58 +0700 Subject: [PATCH 59/74] Software list: "do not change" label. (#796) * added_advises * change place for hided stirng. * changed to more direct message. --- images/linux/scripts/installers/1604/preparemetadata.sh | 1 + images/linux/scripts/installers/1804/preparemetadata.sh | 3 ++- images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 | 1 + images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/1604/preparemetadata.sh b/images/linux/scripts/installers/1604/preparemetadata.sh index 45cfcabf..a26e1096 100644 --- a/images/linux/scripts/installers/1604/preparemetadata.sh +++ b/images/linux/scripts/installers/1604/preparemetadata.sh @@ -7,6 +7,7 @@ source $HELPER_SCRIPTS/document.sh +WriteItem "" 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/preparemetadata.sh b/images/linux/scripts/installers/1804/preparemetadata.sh index 45cfcabf..e3304945 100644 --- a/images/linux/scripts/installers/1804/preparemetadata.sh +++ b/images/linux/scripts/installers/1804/preparemetadata.sh @@ -7,6 +7,7 @@ source $HELPER_SCRIPTS/document.sh +WriteItem "" AddTitle "$(lsb_release -ds)" WriteItem "The following software is installed on machines with the $IMAGE_VERSION update." -WriteItem "***" +WriteItem "***" \ No newline at end of file diff --git a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 index d8fa7a05..1bc8fbe9 100644 --- a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 @@ -135,6 +135,7 @@ wmic logicaldisk get size,freespace,caption # Adding description of the software to Markdown $Content = @" + # Windows Server 2016 The following software is installed on machines with the $env:ImageVersion update. diff --git a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 index 92e153d7..d32c0dc4 100644 --- a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 @@ -129,6 +129,7 @@ wmic logicaldisk get size,freespace,caption # Adding description of the software to Markdown $Content = @" + # Windows Server 2019 The following software is installed on machines with the $env:ImageVersion update. From b58720bb05a6b38a52f2c12617056a4729eeaa99 Mon Sep 17 00:00:00 2001 From: Nikita Bykov <49442273+nikita-bykov@users.noreply.github.com> Date: Thu, 30 Apr 2020 09:26:06 +0300 Subject: [PATCH 60/74] Fail fast in image generation if not enough disk space for customers (#767) * added checking free disk space Co-authored-by: Nikita Bykov --- .../scripts/installers/validate-disk-space.sh | 14 ++++++++++++++ images/linux/ubuntu1604.json | 6 ++++++ images/linux/ubuntu1804.json | 6 ++++++ images/win/Windows2016-Azure.json | 6 ++++++ images/win/Windows2019-Azure.json | 6 ++++++ .../win/scripts/Installers/Validate-DiskSpace.ps1 | 14 ++++++++++++++ 6 files changed, 52 insertions(+) create mode 100644 images/linux/scripts/installers/validate-disk-space.sh create mode 100644 images/win/scripts/Installers/Validate-DiskSpace.ps1 diff --git a/images/linux/scripts/installers/validate-disk-space.sh b/images/linux/scripts/installers/validate-disk-space.sh new file mode 100644 index 00000000..208a0e0f --- /dev/null +++ b/images/linux/scripts/installers/validate-disk-space.sh @@ -0,0 +1,14 @@ +#!/bin/bash +################################################################################ +## File: validate-disk-space.sh +## Desc: Validate free disk space +################################################################################ + +availableSpaceMB=$(df / -hm | sed 1d | awk '{ print $4}') +minimumFreeSpaceMB=$(( 18*1024 )) + +echo "Available disk space: $availableSpaceMB MB" +if [ $availableSpaceMB -le $minimumFreeSpaceMB ]; then + echo "Not enough disk space on the image (minimum available space: $minimumFreeSpaceMB MB)" + exit 1 +fi \ No newline at end of file diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json index cc4eb8f5..a4f138db 100644 --- a/images/linux/ubuntu1604.json +++ b/images/linux/ubuntu1604.json @@ -324,6 +324,12 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/validate-disk-space.sh" + ] + }, { "type": "file", "source": "{{user `metadata_file`}}", diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index b50efb28..f72233e6 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -328,6 +328,12 @@ ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, + { + "type": "shell", + "scripts":[ + "{{template_dir}}/scripts/installers/validate-disk-space.sh" + ] + }, { "type": "file", "source": "{{user `metadata_file`}}", diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 55a1e611..dce3ccd6 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -883,6 +883,12 @@ "{{ template_dir }}/scripts/Installers/Validate-Kind.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1" + ] + }, { "type": "file", "source": "C:\\InstalledSoftware.md", diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index ab28c810..8dc78665 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -886,6 +886,12 @@ "{{ template_dir }}/scripts/Installers/Validate-AliyunCli.ps1" ] }, + { + "type": "powershell", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1" + ] + }, { "type": "file", "source": "C:\\InstalledSoftware.md", diff --git a/images/win/scripts/Installers/Validate-DiskSpace.ps1 b/images/win/scripts/Installers/Validate-DiskSpace.ps1 new file mode 100644 index 00000000..d5b4f996 --- /dev/null +++ b/images/win/scripts/Installers/Validate-DiskSpace.ps1 @@ -0,0 +1,14 @@ +################################################################################ +## File: Validate-DiskSpace.ps1 +## Desc: Validate free disk space +################################################################################ + +$availableSpaceMB = [math]::Round((Get-PSDrive -Name C).Free / 1MB) +$minimumFreeSpaceMB = 15 * 1024 + +Write-Host "Available disk space: $availableSpaceMB MB" +if ($availableSpaceMB -le $minimumFreeSpaceMB) +{ + Write-Host "Not enough disk space on the image (minimum available space: $minimumFreeSpaceMB MB)" + exit 1 +} From 6d188447960163702be27246d3f7a2844748ea5f Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Thu, 30 Apr 2020 10:53:49 +0300 Subject: [PATCH 61/74] Add FS-iSCSITarget-Server (#805) --- .../win/scripts/Installers/Windows2016/Initialize-VM.ps1 | 9 +++++++++ .../win/scripts/Installers/Windows2019/Initialize-VM.ps1 | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 index 1bc8fbe9..202c9b48 100644 --- a/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2016/Initialize-VM.ps1 @@ -61,6 +61,15 @@ Install-WindowsFeature -Name NET-Framework-45-Features -IncludeAllSubFeature Install-WindowsFeature -Name BITS -IncludeAllSubFeature Install-WindowsFeature -Name DSC-Service +# Install FS-iSCSITarget-Server +$fsResult = Install-WindowsFeature -Name FS-iSCSITarget-Server -IncludeAllSubFeature -IncludeManagementTools +if ( $fsResult.Success ) { + Write-Host "FS-iSCSITarget-Server has been successfully installed" +} else { + Write-Host "Failed to install FS-iSCSITarget-Server" + exit 1 +} + Write-Host "Disable UAC" Disable-UserAccessControl diff --git a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 index d32c0dc4..12feeabe 100644 --- a/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Windows2019/Initialize-VM.ps1 @@ -57,6 +57,14 @@ Install-WindowsFeature -Name NET-Framework-Features -IncludeAllSubFeature # Explicitly install all 4.7 sub features to include ASP.Net. # As of 1/16/2019, WinServer 19 lists .Net 4.7 as NET-Framework-45-Features Install-WindowsFeature -Name NET-Framework-45-Features -IncludeAllSubFeature +# Install FS-iSCSITarget-Server +$fsResult = Install-WindowsFeature -Name FS-iSCSITarget-Server -IncludeAllSubFeature -IncludeManagementTools +if ( $fsResult.Success ) { + Write-Host "FS-iSCSITarget-Server has been successfully installed" +} else { + Write-Host "Failed to install FS-iSCSITarget-Server" + exit 1 +} Write-Host "Disable UAC" Disable-UserAccessControl From 42fefbe9fe7709df12fca3e4c84407c6684937cd Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Thu, 30 Apr 2020 10:44:57 +0000 Subject: [PATCH 62/74] Updating readme file for win19 version 20200426.1 --- images/win/Windows2019-Readme.md | 43 +++++++++++++++++++------------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index c6d678e4..bee43de2 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -1,6 +1,6 @@ # Windows Server 2019 -The following software is installed on machines with the 20200416.1 update. +The following software is installed on machines with the 20200426.1 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -25,7 +25,7 @@ _Environment:_ ## Helm -_Version:_ v3.1.2+gd878d4d
+_Version:_ v3.2.0+ge11b7ce
_Environment:_ * PATH: contains location of helm @@ -145,8 +145,8 @@ _Environment:_ ## Microsoft SSDT Visual Studio 2019 Extensions -_Microsoft Analysis Services Projects Version:_ 2.9.7
-_SQL Server Integration Services Projects Version:_ 3.5
+_Microsoft Analysis Services Projects Version:_ 2.9.8
+_SQL Server Integration Services Projects Version:_ 3.6
_Microsoft Reporting Services Projects Version:_ 2.6.5
## .NET 4.8 @@ -161,8 +161,8 @@ _WDK Visual Studio Extension Version:_ 10.0.18346.0
## Azure Service Fabric -_SDK Version:_ 4.0.470.9590
-_Runtime Version:_ 7.0.470.9590 +_SDK Version:_ 4.1.409.9590
+_Runtime Version:_ 7.1.409.9590 ## WinAppDriver @@ -170,7 +170,7 @@ _Version:_ 1.1.1809.18001
## AWS CLI -_Version:_ aws-cli 2.0.7
+_Version:_ aws-cli 2.0.9
## Android SDK Build Tools @@ -421,10 +421,14 @@ _Description:_ .NET has been configured to use TLS 1.2 by default ## Azure CLI -_Version:_ 2.3.1 +_Version:_ 2.4.0 _Environment:_ * PATH: contains location of az.cmd +## AWS SAM CLI + +_Version:_ 0.47.0
+ ## Azure DevOps Cli extension _Version:_ azure-devops 0.18.0 @@ -439,7 +443,7 @@ _Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
## Ruby -_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 2.7.6.2
+_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 3.1.2
## OpenSSL @@ -451,7 +455,7 @@ _Version:_ v5.30.2
## Git -_Version:_ 2.26.1
+_Version:_ 2.26.2
_Environment:_ * PATH: contains location of git.exe @@ -515,14 +519,14 @@ _Environment:_ ## Rust (64-bit) -#### 1.42.0 +#### 1.43.0 _Location:_ C:\Rust\.cargo\bin _Environment:_ * PATH: contains the location of rustc.exe ## Julia (x64) -_Version:_ 1.4.0
+_Version:_ 1.4.1
## Subversion @@ -537,12 +541,12 @@ _Environment:_ ## Google Chrome _version:_ -81.0.4044.113 +81.0.4044.122 ## Microsoft Edge _version:_ -81.0.416.53 +81.0.416.64 ## Mozilla Firefox @@ -579,7 +583,7 @@ _Environment:_ #### Microsoft Edge Driver _version:_ -81.0.416.53 +81.0.416.64 _Environment:_ * EdgeWebDriver: location of msedgedriver.exe @@ -659,7 +663,9 @@ _Environment:_ _SDK:_ * 3.1.201 C:\Program Files\dotnet\sdk\3.1.201 +* 3.1.200 C:\Program Files\dotnet\sdk\3.1.200 * 3.1.103 C:\Program Files\dotnet\sdk\3.1.103 +* 3.1.102 C:\Program Files\dotnet\sdk\3.1.102 * 3.1.101 C:\Program Files\dotnet\sdk\3.1.101 * 3.1.100 C:\Program Files\dotnet\sdk\3.1.100 * 2.2.402 C:\Program Files\dotnet\sdk\2.2.402 @@ -721,6 +727,7 @@ _SDK:_ _Runtime:_ * 3.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.3 +* 3.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.2 * 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 * 2.2.8 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.8 @@ -836,7 +843,7 @@ _Version_: 2.8.4+ff0de50053 - shim 0.8.1
## Kubectl -_Version:_ Client Version: v1.18.1
+_Version:_ Client Version: v1.18.2
_Environment:_ * PATH: contains location of kubectl.exe @@ -848,11 +855,11 @@ _Environment:_ ## bazel -_Version:_ bazel 3.0.0
+_Version:_ bazel 3.1.0
## bazelisk -_Version:_ 1.3.0
+_Version:_ 1.4.0
## Alibaba Cloud CLI From 0413a02d9a610b9989d6abe171affc4d27833730 Mon Sep 17 00:00:00 2001 From: Maksim Petrov <47208721+vmapetr@users.noreply.github.com> Date: Thu, 30 Apr 2020 18:11:40 +0300 Subject: [PATCH 63/74] Add Python tools installation from Github releases for Windows (#705) * Add Toolset provision for Windows Co-authored-by: MaksimZhukov --- images/win/Windows2016-Azure.json | 24 ++++ images/win/Windows2019-Azure.json | 24 ++++ .../scripts/ImageHelpers/ImageHelpers.psm1 | 1 + .../scripts/ImageHelpers/InstallHelpers.ps1 | 5 + .../scripts/Installers/Download-ToolCache.ps1 | 16 --- .../scripts/Installers/Install-Toolset.ps1 | 76 ++++++++++++ .../scripts/Installers/Validate-ToolCache.ps1 | 33 ------ .../scripts/Installers/Validate-Toolset.ps1 | 111 ++++++++++++++++++ images/win/toolcache-2016.json | 6 - images/win/toolcache-2019.json | 6 - images/win/toolset-2016.json | 31 +++++ images/win/toolset-2019.json | 31 +++++ 12 files changed, 303 insertions(+), 61 deletions(-) create mode 100644 images/win/scripts/Installers/Install-Toolset.ps1 create mode 100644 images/win/scripts/Installers/Validate-Toolset.ps1 create mode 100644 images/win/toolset-2016.json create mode 100644 images/win/toolset-2019.json diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index dce3ccd6..834de3af 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -18,6 +18,7 @@ "run_scan_antivirus": "false", "root_folder": "C:", + "toolset_json_path": "{{env `TEMP`}}\\toolset.json", "image_folder": "C:\\image", "commit_file": "C:\\image\\commit.txt", "imagedata_file": "C:\\imagedata.json", @@ -318,6 +319,11 @@ "source": "{{template_dir}}/toolcache-2016.json", "destination": "{{user `root_folder`}}/toolcache.json" }, + { + "type": "file", + "source": "{{template_dir}}/toolset-2016.json", + "destination": "{{user `toolset_json_path`}}" + }, { "type": "powershell", "environment_vars":[ @@ -328,6 +334,15 @@ "{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1" ] }, + { + "type": "powershell", + "environment_vars":[ + "TOOLSET_JSON_PATH={{user `toolset_json_path`}}" + ], + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -642,6 +657,15 @@ "{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1" ] }, + { + "type": "powershell", + "environment_vars":[ + "TOOLSET_JSON_PATH={{user `toolset_json_path`}}" + ], + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-Toolset.ps1" + ] + }, { "type": "powershell", "scripts":[ diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 8dc78665..1b3e5f74 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -18,6 +18,7 @@ "run_scan_antivirus": "false", "root_folder": "C:", + "toolset_json_path": "{{env `TEMP`}}\\toolset.json", "image_folder": "C:\\image", "commit_file": "C:\\image\\commit.txt", "imagedata_file": "C:\\imagedata.json", @@ -291,6 +292,11 @@ "source": "{{template_dir}}/toolcache-2019.json", "destination": "{{user `root_folder`}}/toolcache.json" }, + { + "type": "file", + "source": "{{template_dir}}/toolset-2019.json", + "destination": "{{user `toolset_json_path`}}" + }, { "type": "powershell", "environment_vars":[ @@ -301,6 +307,15 @@ "{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1" ] }, + { + "type": "powershell", + "environment_vars":[ + "TOOLSET_JSON_PATH={{user `toolset_json_path`}}" + ], + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -639,6 +654,15 @@ "{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1" ] }, + { + "type": "powershell", + "environment_vars":[ + "TOOLSET_JSON_PATH={{user `toolset_json_path`}}" + ], + "scripts":[ + "{{ template_dir }}/scripts/Installers/Validate-Toolset.ps1" + ] + }, { "type": "powershell", "scripts":[ diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 index f979659d..2b716880 100644 --- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 +++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 @@ -15,6 +15,7 @@ Export-ModuleMember -Function @( 'Set-SystemVariable' 'Install-Binary' 'Get-ToolcachePackages' + 'Get-ToolsetContent' 'Get-ToolsByName' 'Add-ContentToMarkdown' 'Add-SoftwareDetailsToMarkdown' diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index ee528780..c8d70c8b 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -283,6 +283,11 @@ function Get-ToolcachePackages { Get-Content -Raw $toolcachePath | ConvertFrom-Json } +function Get-ToolsetContent { + $toolsetJson = Get-Content -Path $env:TOOLSET_JSON_PATH -Raw + ConvertFrom-Json -InputObject $toolsetJson +} + function Get-ToolsByName { param ( [Parameter(Mandatory = $True)] diff --git a/images/win/scripts/Installers/Download-ToolCache.ps1 b/images/win/scripts/Installers/Download-ToolCache.ps1 index 4749a3f3..6c93e380 100644 --- a/images/win/scripts/Installers/Download-ToolCache.ps1 +++ b/images/win/scripts/Installers/Download-ToolCache.ps1 @@ -44,21 +44,6 @@ Function NPMFeed-AuthSetup { $npmrcContent | Out-File -FilePath "$($env:TEMP)/.npmrc" -Encoding utf8 } -Function Set-DefaultPythonVersion { - param( - [Parameter(Mandatory=$true)] - [System.Version] $Version, - [System.String] $Arch = "x64" - ) - - $pythonPath = $Env:AGENT_TOOLSDIRECTORY + "/Python/${Version}*/${Arch}" - $pythonDir = Get-Item -Path $pythonPath - - Write-Host "Use Python ${Version} as a system Python" - Add-MachinePathItem -PathItem $pythonDir.FullName - Add-MachinePathItem -PathItem "$($pythonDir.FullName)\Scripts" -} - Function Set-DefaultRubyVersion { param( [Parameter(Mandatory=$true)] @@ -106,5 +91,4 @@ $ToolVersions.PSObject.Properties | ForEach-Object { } } -Set-DefaultPythonVersion -Version "3.7" Set-DefaultRubyVersion -Version "2.5" \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Toolset.ps1 b/images/win/scripts/Installers/Install-Toolset.ps1 new file mode 100644 index 00000000..25bfe58e --- /dev/null +++ b/images/win/scripts/Installers/Install-Toolset.ps1 @@ -0,0 +1,76 @@ +################################################################################ +## File: Install-Toolset.ps1 +## Team: CI-Build +## Desc: Install toolset +################################################################################ + +Function Install-Asset { + param( + [Parameter(Mandatory=$true)] + [object] $ReleaseAsset + ) + + $releaseAssetName = [System.IO.Path]::GetFileNameWithoutExtension($ReleaseAsset.filename) + $assetFolderPath = Join-Path $env:TEMP $releaseAssetName + $assetArchivePath = Start-DownloadWithRetry -Url $ReleaseAsset.download_url -Name $ReleaseAsset.filename + + Write-Host "Extract $($ReleaseAsset.filename) content..." + 7z.exe x $assetArchivePath -o"$assetFolderPath" -y | Out-Null + + Write-Host "Invoke installation script..." + Push-Location -Path $assetFolderPath + Invoke-Expression .\setup.ps1 + Pop-Location +} + +Function Set-DefaultPythonVersion { + param( + [Parameter(Mandatory=$true)] + [object[]] $Toolset + ) + + $python = $Toolset | Where-Object { ($_.name -eq "Python") -and ($_.default -ne "") } ` + | Select-Object default, arch -First 1 + + if ($python.default -ne $null) { + $pythonPath = Join-Path $Env:AGENT_TOOLSDIRECTORY "/Python/$($python.default)/$($python.arch)" -Resolve + + Write-Host "Use Python $($python.default) as a system Python" + Add-MachinePathItem -PathItem $pythonPath + Add-MachinePathItem -PathItem "$pythonPath\Scripts" + } else { + Write-Host "Default Python version not found in toolset file!" + } +} + +$ErrorActionPreference = "Stop" + +Import-Module -Name ImageHelpers -Force + +# Get toolcache content from toolset +$tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache + +foreach ($tool in $tools) { + # Get versions manifest for current tool + $assets = Invoke-RestMethod $tool.url + + # Get github release asset for each version + foreach ($toolVersion in $tool.versions) { + $asset = $assets | Where-Object version -like $toolVersion ` + | Sort-Object -Property {[version]$_.version} -Descending ` + | Select-Object -ExpandProperty files ` + | Where-Object { ($_.platform -eq $tool.platform) -and ($_.arch -eq $tool.arch) } ` + | Select-Object -First 1 + + Write-Host "Installing $($tool.name) $toolVersion $($tool.arch)..." + if ($asset -ne $null) { + Install-Asset -ReleaseAsset $asset + } else { + Write-Host "Asset was not found in versions manifest" + exit 1 + } + } +} + +# Install default python version +Set-DefaultPythonVersion -Toolset $tools \ No newline at end of file diff --git a/images/win/scripts/Installers/Validate-ToolCache.ps1 b/images/win/scripts/Installers/Validate-ToolCache.ps1 index 5ad500bf..526254e2 100644 --- a/images/win/scripts/Installers/Validate-ToolCache.ps1 +++ b/images/win/scripts/Installers/Validate-ToolCache.ps1 @@ -63,32 +63,6 @@ function RunTestsByPath { } } -function Get-SystemDefaultPython { - Write-Host "Validate system Python..." - - if (Get-Command -Name 'python') - { - Write-Host "Python $(& python -V 2>&1) on path" - } - else - { - Write-Host "Python is not on path" - exit 1 - } - - $pythonBinVersion = $(& python -V 2>&1) - if ($pythonBinVersion -notlike "Python 3.*") - { - Write-Error "Python 3 is not in the PATH" - exit 1 - } - - $pythonBinOnPath = Split-Path -Path (Get-Command -Name 'python').Path - $description = GetDefaultToolDescription -SoftwareVersion $pythonBinVersion -SoftwareLocation $pythonBinOnPath - - return $description -} - function Get-SystemDefaultRuby { Write-Host "Validate system Ruby..." @@ -196,9 +170,6 @@ function ToolcacheTest { } } - if ($SoftwareName -contains "Python") { - $markdownDescription += Get-SystemDefaultPython - } if ($SoftwareName -contains "Ruby") { $markdownDescription += Get-SystemDefaultRuby } @@ -206,10 +177,6 @@ function ToolcacheTest { Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $markdownDescription } -# Python test -$PythonTests = @("python.exe", "Scripts\pip.exe") -ToolcacheTest -SoftwareName "Python" -ExecTests $PythonTests - # PyPy test $PyPyTests = @("python.exe", "bin\pip.exe") ToolcacheTest -SoftwareName "PyPy" -ExecTests $PyPyTests diff --git a/images/win/scripts/Installers/Validate-Toolset.ps1 b/images/win/scripts/Installers/Validate-Toolset.ps1 new file mode 100644 index 00000000..28963b12 --- /dev/null +++ b/images/win/scripts/Installers/Validate-Toolset.ps1 @@ -0,0 +1,111 @@ +################################################################################ +## File: Validate-Toolset.ps1 +## Team: CI-Build +## Desc: Validate Toolset +################################################################################ + +function Run-ExecutableTests { + param ( + [Parameter(Mandatory)] [string[]] $Executables, + [Parameter(Mandatory)] [string] $ToolPath + ) + + foreach ($executable in $Executables) { + $executablePath = Join-Path $ToolPath $executable + + Write-Host "Check $executable..." + if (Test-Path $executablePath) { + Write-Host "$executable is successfully installed: $(& $executablePath --version)" + } else { + Write-Host "$executablePath is not installed!" + exit 1 + } + } +} + +function Validate-SystemDefaultTool { + param ( + [Parameter(Mandatory)] [string] $ToolName, + [Parameter(Mandatory)] [string] $ExpectedVersion + ) + + $binName = $ToolName.ToLower() + + # Check if tool on path + if (Get-Command -Name $binName) { + $versionOnPath = $(& $binName --version 2>&1) | Select-String -Pattern ".*(\d+\.\d+\.\d+)" + $versionBinPath = Split-Path -Path (Get-Command -Name $binName).Path + + # Check if version is correct + if ($versionOnPath.matches.Groups[1].Value -notlike $ExpectedVersion) { + Write-Error "$ToolName $ExpectedVersion is not in the PATH" + exit 1 + } + + Write-Host "$ToolName $versionOnPath on path" + } else { + Write-Host "$ToolName is not on path" + exit 1 + } + + # Add default version description to markdown + $description = "
__System default version:__ $versionOnPath
" + $description += "_Environment:_
" + $description += "* Location: $versionBinPath
" + $description += "* PATH: contains the location of $versionOnPath
" + + return $description +} + +$ErrorActionPreference = "Stop" + +Import-Module -Name ImageHelpers -Force + +# Define executables for cached tools +$toolsExecutables = @{ Python = @("python.exe", "Scripts\pip.exe") } + +# Get toolcache content from toolset +$tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache + +foreach($tool in $tools) { + $markdownDescription = "" + + $toolPath = Join-Path $env:AGENT_TOOLSDIRECTORY $tool.name + # Get executables for current tool + $toolExecs = $toolsExecutables[$tool.name] + + foreach ($version in $tool.versions) { + # Check if version folder exists + $expectedVersionPath = Join-Path $toolPath $version + if (-not (Test-Path $expectedVersionPath)) { + Write-Host "Expected $($tool.name) $version folder is not found!" + exit 1 + } + + # Take latest installed version in case if toolset version contains wildcards + $foundVersion = Get-Item $expectedVersionPath ` + | Sort-Object -Property {[version]$_.name} -Descending ` + | Select-Object -First 1 + + # Check for required architecture folder + $foundVersionArchPath = Join-Path $foundVersion $tool.arch + if (-not (Test-Path $foundVersionArchPath)) { + Write-Host "Expected $($tool.name)($($tool.arch)) $($foundVersion.name) architecture folder is not found!" + exit 1 + } + + Write-Host "Run validation test for $($tool.name)($($tool.arch)) $($foundVersion.name) executables..." + Run-ExecutableTests -Executables $toolExecs -ToolPath $foundVersionArchPath + + # Add to tool version to markdown + $markdownDescription += "_Version:_ $($foundVersion.name)
" + } + + # Create markdown description for system default tool + if (-not ([string]::IsNullOrEmpty($tool.default))) { + Write-Host "Validate system default $($tool.name)($($tool.arch)) $($tool.default)..." + $markdownDescription += Validate-SystemDefaultTool -ToolName $tool.name -ExpectedVersion $tool.default + } + + Add-SoftwareDetailsToMarkdown -SoftwareName "$($tool.name) ($($tool.arch))" -DescriptionMarkdown $markdownDescription +} \ No newline at end of file diff --git a/images/win/toolcache-2016.json b/images/win/toolcache-2016.json index 8db575c2..1b4f1a6c 100644 --- a/images/win/toolcache-2016.json +++ b/images/win/toolcache-2016.json @@ -1,10 +1,4 @@ { - "@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" ], diff --git a/images/win/toolcache-2019.json b/images/win/toolcache-2019.json index 4f946cfa..6873c14e 100644 --- a/images/win/toolcache-2019.json +++ b/images/win/toolcache-2019.json @@ -1,10 +1,4 @@ { - "@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" ], diff --git a/images/win/toolset-2016.json b/images/win/toolset-2016.json new file mode 100644 index 00000000..da372c49 --- /dev/null +++ b/images/win/toolset-2016.json @@ -0,0 +1,31 @@ +{ + "toolcache": [ + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "arch": "x64", + "platform" : "win32", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ], + "default": "3.7.*" + }, + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "arch": "x86", + "platform" : "win32", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ] + } + ] +} \ No newline at end of file diff --git a/images/win/toolset-2019.json b/images/win/toolset-2019.json new file mode 100644 index 00000000..da372c49 --- /dev/null +++ b/images/win/toolset-2019.json @@ -0,0 +1,31 @@ +{ + "toolcache": [ + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "arch": "x64", + "platform" : "win32", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ], + "default": "3.7.*" + }, + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/master/versions-manifest.json", + "arch": "x86", + "platform" : "win32", + "versions": [ + "2.7.*", + "3.5.*", + "3.6.*", + "3.7.*", + "3.8.*" + ] + } + ] +} \ No newline at end of file From d3b4d6b4d1fb00e6c50ed79bacc4aca7767714a3 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Thu, 30 Apr 2020 15:26:55 +0000 Subject: [PATCH 64/74] Updating readme file for macOS version 20200425.1 (#801) --- images/macos/macos-10.15-Readme.md | 93 +++++++++++++++++------------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md index 118cc7b6..e708126b 100644 --- a/images/macos/macos-10.15-Readme.md +++ b/images/macos/macos-10.15-Readme.md @@ -1,10 +1,8 @@ -# macOS Catalina 10.15.4 (19E266) -The following software is installed on machines with the 20200328.1 update. - -#### Xcode 11.3.1 set by default -## Operating System - -- OS X 10.15.4 (19E287) **Catalina** +# OS X info +- System Version: macOS 10.15.4 (19E287) +- Kernel Version: Darwin 19.4.0 +- System Integrity Protection: Enabled +- Image Version: 20200425.1 # Installed Software ## Language and Runtime @@ -14,7 +12,7 @@ The following software is installed on machines with the 20200328.1 update. - Java 12: Zulu12.3+11-CA (build 12.0.2+3) - Java 13: Zulu13.31+11-CA (build 13.0.3+3-MTS) - Java 14: Zulu14.28+21-CA (build 14.0.1+8) -- Rust 1.42.0 +- Rust 1.43.0 - Clang/LLVM 10.0.0 - gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 - gcc-9 (Homebrew GCC 9.3.0_1) 9.3.0 @@ -22,7 +20,7 @@ The following software is installed on machines with the 20200328.1 update. - GNU Fortran (Homebrew GCC 9.3.0_1) 9.3.0 - Node.js v12.16.2 - NVM 0.33.11 -- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.0 v12.16.2 v13.13.0 +- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.2 v13.13.0 - PowerShell 7.0.0 - Python 2.7.17 - Python 3.7.7 @@ -53,43 +51,43 @@ The following software is installed on machines with the 20200328.1 update. ## Utilities - Curl 7.69.1 -- Git: 2.26.1 +- Git: 2.26.2 - Git LFS: 2.10.0 - Hub CLI: 2.14.2 - GNU Wget 1.20.3 - Subversion (SVN) 1.13.0 - Packer 1.5.5 -- GNU parallel 20200322 +- GNU parallel 20200422 - OpenSSL 1.0.2t 10 Sep 2019 - jq 1.6 - gpg (GnuPG) 2.2.20 - psql (PostgreSQL) 12.2 - PostgreSQL 12.2 - aria2 1.35.0 -- azcopy 10.4.0 +- azcopy 10.4.1 - zstd 1.4.4 -- bazel 3.0.0 +- bazel 3.1.0 - bazelisk v1.4.0 -- helm v3.1.2+gd878d4d +- helm v3.2.0+ge11b7ce - virtualbox 6.1.6r137129 - Vagrant 2.2.7 ## Tools -- Fastlane 2.145.0 +- Fastlane 2.146.1 - Cmake 3.17.1 -- App Center CLI 2.4.1 -- Azure CLI 2.3.1 -- AWS CLI 2.0.8 +- App Center CLI 2.5.0 +- Azure CLI 2.4.0 +- AWS CLI 2.0.9 - AWS SAM CLI 0.47.0 -- Aliyun CLI 3.0.37 +- Aliyun CLI 3.0.39 ## Browsers - Safari 13.1 (15609.1.20.111.8) - SafariDriver 13.1 (15609.1.20.111.8) -- Google Chrome 81.0.4044.113 +- Google Chrome 81.0.4044.122 - ChromeDriver 81.0.4044.69 -- Microsoft Edge 81.0.416.53 -- MSEdgeDriver 81.0.416.58 +- Microsoft Edge 81.0.416.64 +- MSEdgeDriver 81.0.416.64 - Mozilla Firefox 75.0 - geckodriver 0.26.0 @@ -113,7 +111,7 @@ The following software is installed on machines with the 20200328.1 update. ## Xamarin ### Visual Studio for Mac -- 8.5.3.16 +- 8.5.4.12 ### Mono - 6.8.0.123 @@ -149,14 +147,15 @@ The following software is installed on machines with the 20200328.1 update. ## Xcode | Version | Build | Path | | ---------------- | ------- | ------------------------------ | -| 11.4.1 | 11E503a | /Applications/Xcode_11.4.1.app | +| 11.4.1 (default) | 11E503a | /Applications/Xcode_11.4.1.app | | 11.4 | 11E146 | /Applications/Xcode_11.4.app | -| 11.3.1 (default) | 11C505 | /Applications/Xcode_11.3.1.app | +| 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 | +| 10.3 | 10G8 | /Applications/Xcode_10.3.app | ### Xcode Support Tools - Nomad CLI 3.1.2 @@ -168,44 +167,54 @@ The following software is installed on machines with the 20200328.1 update. ### Installed SDKs | SDK | SDK Name | Xcode Version | | ----------------------- | -------------------- | ---------------------------------------------------- | +| macOS 10.14 | macosx10.14 | 10.3 | | macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.1 | +| iOS 12.4 | iphoneos12.4 | 10.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, 11.3, 11.3.1 | | iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 | +| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 | | 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 | | Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 | +| tvOS 12.4 | appletvos12.4 | 10.3 | | tvOS 13.0 | appletvos13.0 | 11.0, 11.1 | | tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 | | tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1 | +| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 | | 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 | | Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1 | +| watchOS 5.3 | watchos5.3 | 10.3 | | watchOS 6.0 | watchos6.0 | 11.0, 11.1 | | watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 | | watchOS 6.2 | watchos6.2 | 11.4, 11.4.1 | +| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 | | 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 | | Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1 | | DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4, 11.4.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 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) | -| iOS 13.4 | 11.4
11.4.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) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Air (3rd generation)
iPhone SE (2nd 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) | -| tvOS 13.4 | 11.4
11.4.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 | -| watchOS 6.2 | 11.4
11.4.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | +| OS | Xcode Version | Simulators | +| ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| iOS 12.4 | 10.3 | iPhone 5s
iPhone 6 Plus
iPhone 6
iPhone 6s
iPhone 6s Plus
iPhone SE
iPhone 7
iPhone 7 Plus
iPhone 8
iPhone 8 Plus
iPhone X
iPhone Xs
iPhone Xs Max
iPhone Xʀ
iPad Air
iPad Air 2
iPad Pro (9.7-inch)
iPad Pro (12.9-inch)
iPad (5th generation)
iPad Pro (12.9-inch) (2nd generation)
iPad Pro (10.5-inch)
iPad (6th generation)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | +| 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 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 Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Air (3rd generation) | +| iOS 13.4 | 11.4
11.4.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) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Air (3rd generation)
iPhone SE (2nd generation) | +| tvOS 12.4 | 10.3 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| 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) | +| tvOS 13.4 | 11.4
11.4.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm
Apple Watch Series 2 - 42mm
Apple Watch Series 3 - 38mm
Apple Watch Series 3 - 42mm
Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm | +| 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 | +| watchOS 6.2 | 11.4
11.4.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 @@ -216,7 +225,7 @@ The following software is installed on machines with the 20200328.1 update. ### Android SDK Platform-Tools | Package Name | Description | | -------------- | ------------------------------------------- | -| platform-tools | Android SDK Platform-Tools, Revision 29.0.6 | +| platform-tools | Android SDK Platform-Tools, Revision 30.0.0 | ### Android SDK Platforms | Package Name | Description | @@ -262,7 +271,7 @@ The following software is installed on machines with the 20200328.1 update. | ---------------- | ------------ | | cmake | 3.6.4111459 | | lldb | 3.1.4508709 | -| ndk-bundle | 21.0.6113669 | +| ndk-bundle | 21.1.6352462 | | Android Emulator | 30.0.5 | ### Android Google APIs @@ -280,3 +289,5 @@ The following software is installed on machines with the 20200328.1 update. | Google Play services | 49 | | Google Repository | 58 | | Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 | + + From 9256cc49b41be699dbfedcc2672b0615b1a44952 Mon Sep 17 00:00:00 2001 From: Image generation service account Date: Thu, 30 Apr 2020 15:35:21 +0000 Subject: [PATCH 65/74] Updating readme file for win16 version 20200426.1 --- images/win/Windows2016-Readme.md | 39 +++++++++++++++++++------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md index 7c522462..36540bef 100644 --- a/images/win/Windows2016-Readme.md +++ b/images/win/Windows2016-Readme.md @@ -1,6 +1,6 @@ # Windows Server 2016 -The following software is installed on machines with the 20200416.1 update. +The following software is installed on machines with the 20200426.1 update. Components marked with **\*** have been upgraded since the previous version of the image. @@ -25,7 +25,7 @@ _Environment:_ ## Helm -_Version:_ v3.1.2+gd878d4d
+_Version:_ v3.2.0+ge11b7ce
_Environment:_ * PATH: contains location of helm @@ -168,8 +168,8 @@ _WDK Visual Studio Extension Version:_ 10.0.17740.0
## Azure Service Fabric -_SDK Version:_ 4.0.470.9590
-_Runtime Version:_ 7.0.470.9590 +_SDK Version:_ 4.1.409.9590
+_Runtime Version:_ 7.1.409.9590 ## WinAppDriver @@ -177,7 +177,7 @@ _Version:_ 1.1.1809.18001
## AWS CLI -_Version:_ aws-cli 2.0.7
+_Version:_ aws-cli 2.0.9
## Android SDK Build Tools @@ -428,10 +428,14 @@ _Description:_ .NET has been configured to use TLS 1.2 by default ## Azure CLI -_Version:_ 2.3.1 +_Version:_ 2.4.0 _Environment:_ * PATH: contains location of az.cmd +## AWS SAM CLI + +_Version:_ 0.47.0
+ ## Azure DevOps Cli extension _Version:_ azure-devops 0.18.0 @@ -446,7 +450,7 @@ _Version:_ 2.7.13 (x86)
_Version:_ 3.6.9 (x86)
## Ruby -_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 2.7.6.2
+_Version:_ 2.4.10 (x64)
_Version:_ 2.5.8 (x64)
_Version:_ 2.6.6 (x64)
_Version:_ 2.7.1 (x64)

__System default version:__ Ruby 2.5.8p224
_Environment:_
* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin
* PATH: contains the location of Ruby 2.5.8p224
* Gem Version: 3.1.2
## OpenSSL @@ -458,7 +462,7 @@ _Version:_ v5.30.2
## Git -_Version:_ 2.26.1
+_Version:_ 2.26.2
_Environment:_ * PATH: contains location of git.exe @@ -522,14 +526,14 @@ _Environment:_ ## Rust (64-bit) -#### 1.42.0 +#### 1.43.0 _Location:_ C:\Rust\.cargo\bin _Environment:_ * PATH: contains the location of rustc.exe ## Julia (x64) -_Version:_ 1.4.0
+_Version:_ 1.4.1
## sbt @@ -544,12 +548,12 @@ _Environment:_ ## Google Chrome _version:_ -81.0.4044.113 +81.0.4044.122 ## Microsoft Edge _version:_ -81.0.416.53 +81.0.416.64 ## Mozilla Firefox @@ -586,7 +590,7 @@ _Environment:_ #### Microsoft Edge Driver _version:_ -81.0.416.53 +81.0.416.64 _Environment:_ * EdgeWebDriver: location of msedgedriver.exe @@ -611,11 +615,11 @@ _Environment:_ ## bazel -_Version:_ bazel 3.0.0
+_Version:_ bazel 3.1.0
## bazelisk -_Version:_ 1.3.0
+_Version:_ 1.4.0
## Alibaba Cloud CLI @@ -678,7 +682,9 @@ _Environment:_ _SDK:_ * 3.1.201 C:\Program Files\dotnet\sdk\3.1.201 +* 3.1.200 C:\Program Files\dotnet\sdk\3.1.200 * 3.1.103 C:\Program Files\dotnet\sdk\3.1.103 +* 3.1.102 C:\Program Files\dotnet\sdk\3.1.102 * 3.1.101 C:\Program Files\dotnet\sdk\3.1.101 * 3.1.100 C:\Program Files\dotnet\sdk\3.1.100 * 2.2.402 C:\Program Files\dotnet\sdk\2.2.402 @@ -742,6 +748,7 @@ _SDK:_ _Runtime:_ * 3.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.3 +* 3.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.2 * 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 * 2.2.8 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.8 @@ -855,7 +862,7 @@ _Environment:_ ## Kubectl -_Version:_ Client Version: v1.18.1
+_Version:_ Client Version: v1.18.2
_Environment:_ * PATH: contains location of kubectl.exe From 4ff58941560c0f4b2b9ff844549a57f49f660753 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Thu, 30 Apr 2020 16:54:22 +0000 Subject: [PATCH 66/74] change min free space to 18000Mb (#814) --- images/linux/scripts/installers/validate-disk-space.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/validate-disk-space.sh b/images/linux/scripts/installers/validate-disk-space.sh index 208a0e0f..5201848d 100644 --- a/images/linux/scripts/installers/validate-disk-space.sh +++ b/images/linux/scripts/installers/validate-disk-space.sh @@ -5,7 +5,7 @@ ################################################################################ availableSpaceMB=$(df / -hm | sed 1d | awk '{ print $4}') -minimumFreeSpaceMB=$(( 18*1024 )) +minimumFreeSpaceMB=18000 echo "Available disk space: $availableSpaceMB MB" if [ $availableSpaceMB -le $minimumFreeSpaceMB ]; then From fd9138e6b141d3144265af4219c672512525270c Mon Sep 17 00:00:00 2001 From: Jorgen Thelin Date: Thu, 30 Apr 2020 17:04:38 -0700 Subject: [PATCH 67/74] Fix minor glitch in installer message echo "cmake is already installed" --- images/linux/scripts/installers/cmake.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/linux/scripts/installers/cmake.sh b/images/linux/scripts/installers/cmake.sh index 340df3ee..0fd839a5 100644 --- a/images/linux/scripts/installers/cmake.sh +++ b/images/linux/scripts/installers/cmake.sh @@ -10,7 +10,7 @@ source $HELPER_SCRIPTS/document.sh # Test to see if the software in question is already installed, if not install it 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" + echo "cmake is already installed" else curl -sL https://cmake.org/files/v3.17/cmake-3.17.0-Linux-x86_64.sh -o cmakeinstall.sh \ && chmod +x cmakeinstall.sh \ From 2e20f5d7d33c6b64dff68b46425b3db621511329 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Fri, 1 May 2020 17:52:56 +0700 Subject: [PATCH 68/74] added workaround for default DNS --- images/linux/scripts/installers/1804/basic.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 29cb15b4..36a316f4 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -139,6 +139,10 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim fi done +# Workaround for systemd-resolve, since sometimes stub resolver does not work properly. Details: https://github.com/actions/virtual-environments/issues/798 +echo "Create resolv.conf link." +ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf + # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "Basic CLI:" From 38ec51131da95040b6b01c55026cdf605a014f2a Mon Sep 17 00:00:00 2001 From: Sima Zhu <48036328+sima-zhu@users.noreply.github.com> Date: Fri, 1 May 2020 08:58:16 -0700 Subject: [PATCH 69/74] Added java 13 package in VM (#795) * Added java 13 package in VM * Fixed var name * Make changes from 11 to 13 * added java 13 for validate-javatool --- images/win/scripts/Installers/Install-JavaTools.ps1 | 8 ++++++++ images/win/scripts/Installers/Validate-JavaTools.ps1 | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/images/win/scripts/Installers/Install-JavaTools.ps1 b/images/win/scripts/Installers/Install-JavaTools.ps1 index e88fc745..96282371 100644 --- a/images/win/scripts/Installers/Install-JavaTools.ps1 +++ b/images/win/scripts/Installers/Install-JavaTools.ps1 @@ -8,22 +8,26 @@ $azulJDK7Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-7/7u232/zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64.zip' $azulJDK8Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-8/8u222/zulu-8-azure-jdk_8.40.0.25-8.0.222-win_x64.zip' $azulJDK11Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-11/11.0.4/zulu-11-azure-jdk_11.33.15-11.0.4-win_x64.zip' +$azulJDK13Uri = 'https://repos.azul.com/azure-only/zulu/packages/zulu-13/13.0.3/zulu-13-azure-jdk_13.31.11-13.0.3-win_x64.zip' cd $env:TEMP Invoke-WebRequest -UseBasicParsing -Uri $azulJDK7Uri -OutFile azulJDK7.zip Invoke-WebRequest -UseBasicParsing -Uri $azulJDK8Uri -OutFile azulJDK8.zip Invoke-WebRequest -UseBasicParsing -Uri $azulJDK11Uri -OutFile azulJDK11.zip +Invoke-WebRequest -UseBasicParsing -Uri $azulJDK13Uri -OutFile azulJDK13.zip # Expand the zips Expand-Archive -Path azulJDK7.zip -DestinationPath "C:\Program Files\Java\" -Force Expand-Archive -Path azulJDK8.zip -DestinationPath "C:\Program Files\Java\" -Force Expand-Archive -Path azulJDK11.zip -DestinationPath "C:\Program Files\Java\" -Force +Expand-Archive -Path azulJDK13.zip -DestinationPath "C:\Program Files\Java\" -Force # Deleting zip folders Remove-Item -Recurse -Force azulJDK7.zip Remove-Item -Recurse -Force azulJDK8.zip Remove-Item -Recurse -Force azulJDK11.zip +Remove-Item -Recurse -Force azulJDK13.zip Import-Module -Name ImageHelpers -Force @@ -49,6 +53,9 @@ $latestJava8Install = $java8Installs.FullName; $java11Installs = Get-ChildItem -Path 'C:\Program Files\Java' -Filter '*azure-jdk*11*' | Sort-Object -Property Name -Descending | Select-Object -First 1 $latestJava11Install = $java11Installs.FullName; +$java13Installs = Get-ChildItem -Path 'C:\Program Files\Java' -Filter '*azure-jdk*13*' | Sort-Object -Property Name -Descending | Select-Object -First 1 +$latestJava13Install = $java13Installs.FullName; + $newPath = [string]::Join(';', $newPathSegments) $newPath = $latestJava8Install + '\bin;' + $newPath @@ -58,6 +65,7 @@ setx JAVA_HOME $latestJava8Install /M setx JAVA_HOME_7_X64 $latestJava7Install /M setx JAVA_HOME_8_X64 $latestJava8Install /M setx JAVA_HOME_11_X64 $latestJava11Install /M +setx JAVA_HOME_13_X64 $latestJava13Install /M # Install Java tools # Force chocolatey to ignore dependencies on Ant and Maven or else they will download the Oracle JDK diff --git a/images/win/scripts/Installers/Validate-JavaTools.ps1 b/images/win/scripts/Installers/Validate-JavaTools.ps1 index 71477689..33f90694 100644 --- a/images/win/scripts/Installers/Validate-JavaTools.ps1 +++ b/images/win/scripts/Installers/Validate-JavaTools.ps1 @@ -36,6 +36,12 @@ if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?&1") | Out-String) -match '^(?.+) version "(?.+)".*' ) +{ + $java13Version = $Matches.version +} if( $(ant -version) -match 'Apache Ant\(TM\) version (?.*) compiled.*' ) { @@ -69,6 +75,10 @@ _Location:_ $env:JAVA_HOME_7_X64 #### $java11Version _Location:_ $env:JAVA_HOME_11_X64 + +#### $java13Version + +_Location:_ $env:JAVA_HOME_13_X64 "@ Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description From ec71ad77e3af7e30e812a92ce46bca21f298dabc Mon Sep 17 00:00:00 2001 From: phozzy Date: Mon, 4 May 2020 09:50:20 +0000 Subject: [PATCH 70/74] Fix documentation for containertools --- images/linux/scripts/installers/1804/containers.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/images/linux/scripts/installers/1804/containers.sh b/images/linux/scripts/installers/1804/containers.sh index 0ccf746a..547707e2 100644 --- a/images/linux/scripts/installers/1804/containers.sh +++ b/images/linux/scripts/installers/1804/containers.sh @@ -18,7 +18,9 @@ echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | tee /etc/ ## Add version information to the metadata file echo "Documenting container tools version" -PODMAN_VERSION='podman --version' -BUILDAH_VERSION='buildah --version' -SKOPEO_VERSION='skopeo --version' -DocumentInstalledItem "Podman ($PODMAN_VERSION)\nBuildah ($BUILDAH_VERSION)\nSkopeo ($SKOPEO_VERSION)" +PODMAN_VERSION="$(podman --version | cut -d " " -f 3)" +BUILDAH_VERSION="$(buildah --version | cut -d " " -f 3)" +SKOPEO_VERSION="$(skopeo --version | cut -d " " -f 3)" +DocumentInstalledItem "Podman ($PODMAN_VERSION)" +DocumentInstalledItem "Buildah ($BUILDAH_VERSION)" +DocumentInstalledItem "Skopeo ($SKOPEO_VERSION)" From 58acdc3f681cc8b4dc3b53c6eb6b0bada57fe1ed Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 5 May 2020 00:16:21 +0700 Subject: [PATCH 71/74] pre-create .composer folder to preserve permission --- images/linux/scripts/installers/1604/php.sh | 3 +++ images/linux/scripts/installers/1804/php.sh | 3 +++ 2 files changed, 6 insertions(+) diff --git a/images/linux/scripts/installers/1604/php.sh b/images/linux/scripts/installers/1604/php.sh index 44f2ad3b..d2209041 100644 --- a/images/linux/scripts/installers/1604/php.sh +++ b/images/linux/scripts/installers/1604/php.sh @@ -283,6 +283,9 @@ prependEtcEnvironmentPath /home/runner/.config/composer/vendor/bin # Add composer bin folder to path echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> /etc/skel/.bashrc +#Create composer folder for user to preserve folder permissions +mkdir -p /etc/skel/.composer + # Install phpunit (for PHP) wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar chmod +x phpunit diff --git a/images/linux/scripts/installers/1804/php.sh b/images/linux/scripts/installers/1804/php.sh index 8ab10d78..cbf25393 100644 --- a/images/linux/scripts/installers/1804/php.sh +++ b/images/linux/scripts/installers/1804/php.sh @@ -200,6 +200,9 @@ prependEtcEnvironmentPath /home/runner/.config/composer/vendor/bin # Add composer bin folder to path echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> /etc/skel/.bashrc +#Create composer folder for user to preserve folder permissions +mkdir -p /etc/skel/.composer + # Install phpunit (for PHP) wget -q -O phpunit https://phar.phpunit.de/phpunit-7.phar chmod +x phpunit From 365d106302deb6f52e6dfc45264e5918fb778007 Mon Sep 17 00:00:00 2001 From: Dariy Nurgaleev <50947177+Darleev@users.noreply.github.com> Date: Tue, 5 May 2020 18:01:04 +0700 Subject: [PATCH 72/74] added workaround for default DNS (#819) --- images/linux/scripts/installers/1804/basic.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 29cb15b4..36a316f4 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -139,6 +139,10 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim fi done +# Workaround for systemd-resolve, since sometimes stub resolver does not work properly. Details: https://github.com/actions/virtual-environments/issues/798 +echo "Create resolv.conf link." +ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf + # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "Basic CLI:" From 28b940a0459113feec70433fa0b7dfca0d2c339d Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 5 May 2020 23:53:06 +0700 Subject: [PATCH 73/74] revert changes --- images/linux/scripts/installers/1804/basic.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 36a316f4..29cb15b4 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -139,10 +139,6 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim fi done -# Workaround for systemd-resolve, since sometimes stub resolver does not work properly. Details: https://github.com/actions/virtual-environments/issues/798 -echo "Create resolv.conf link." -ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf - # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "Basic CLI:" From 86d0fe8a93a2e4ef6153d243acefc1701a9dc61c Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 5 May 2020 23:59:05 +0700 Subject: [PATCH 74/74] workaround reverted --- images/linux/scripts/installers/1804/basic.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/images/linux/scripts/installers/1804/basic.sh b/images/linux/scripts/installers/1804/basic.sh index 36a316f4..29cb15b4 100644 --- a/images/linux/scripts/installers/1804/basic.sh +++ b/images/linux/scripts/installers/1804/basic.sh @@ -139,10 +139,6 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim fi done -# Workaround for systemd-resolve, since sometimes stub resolver does not work properly. Details: https://github.com/actions/virtual-environments/issues/798 -echo "Create resolv.conf link." -ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf - # Document what was added to the image echo "Lastly, documenting what we added to the metadata file" DocumentInstalledItem "Basic CLI:"