mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2026-01-04 00:44:52 +08:00
6
.github/ISSUE_TEMPLATE/tool-request.md
vendored
6
.github/ISSUE_TEMPLATE/tool-request.md
vendored
@@ -9,6 +9,7 @@ assignees: ''
|
||||
|
||||
**Tool information**
|
||||
- Tool name: <!--- Name -->
|
||||
- Tool license: <!--- Type of licensing for desired tool -->
|
||||
- Add or update? <!--- Add or update? -->
|
||||
- Desired version: <!--- Let us know if you're requesting a specific version, dev/RC, whatever is latest, etc. -->
|
||||
- Approximate size: <!--- Leave blank if not known -->
|
||||
@@ -30,7 +31,10 @@ assignees: ''
|
||||
- [ ] Windows Server 2019
|
||||
|
||||
**Can this tool be installed during the build?**
|
||||
<!--- If so, please provide a description of how and approximately how much time it takes. -->
|
||||
<!--- If so, please provide a description with required steps. -->
|
||||
|
||||
**Tool installation time in runtime**
|
||||
<!--- How long does it take to install the tool? -->
|
||||
|
||||
**Are you willing to submit a PR?**
|
||||
<!--- We accept contributions! -->
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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*
|
||||
@@ -43,4 +48,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
|
||||
[self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners
|
||||
|
||||
9
images.CI/credscan-exclusions.json
Normal file
9
images.CI/credscan-exclusions.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"tool": "Credential Scanner",
|
||||
"suppressions": [
|
||||
{
|
||||
"placeholder": "P@ssword!!",
|
||||
"_justification": "Password used by SQL Express. It is required to interact with database."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
8
images/linux/scripts/base/reboot.sh
Normal file
8
images/linux/scripts/base/reboot.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
## File: reboot.sh
|
||||
## Desc: Reboot VM
|
||||
################################################################################
|
||||
|
||||
echo "Reboot VM"
|
||||
sudo reboot
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
85
images/linux/scripts/helpers/etc-environment.sh
Normal file
85
images/linux/scripts/helpers/etc-environment.sh
Normal file
@@ -0,0 +1,85 @@
|
||||
#!/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 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 addEtcEnvironmentVariable {
|
||||
variable_name="$1"
|
||||
variable_value="$2"
|
||||
|
||||
echo "$variable_name=\"$variable_value\"" | sudo tee -a /etc/environment
|
||||
}
|
||||
|
||||
function replaceEtcEnvironmentVariable {
|
||||
variable_name="$1"
|
||||
variable_value="$2"
|
||||
|
||||
# modify /etc/environemnt in place by replacing a string that begins with variable_name
|
||||
sudo sed -i -e "s%^${variable_name}=.*$%${variable_name}=\"${variable_value}\"%" /etc/environment
|
||||
}
|
||||
|
||||
function setEtcEnvironmentVariable {
|
||||
variable_name="$1"
|
||||
variable_value="$2"
|
||||
|
||||
if grep "$variable_name" /etc/environment > /dev/null; then
|
||||
replaceEtcEnvironmentVariable $variable_name $variable_value
|
||||
else
|
||||
addEtcEnvironmentVariable $variable_name $variable_value
|
||||
fi
|
||||
}
|
||||
|
||||
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"
|
||||
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
|
||||
# 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=$(getEtcEnvironmentVariable PATH)
|
||||
export PATH="$PATH:$etc_path"
|
||||
}
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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,9 +277,15 @@ 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
|
||||
|
||||
#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
|
||||
@@ -293,6 +300,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))"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
WriteItem "<!--- DO NOT EDIT - This markdown file is autogenerated. -->"
|
||||
AddTitle "$(lsb_release -ds)"
|
||||
WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
|
||||
WriteItem "***"
|
||||
|
||||
@@ -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 ]
|
||||
|
||||
@@ -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"
|
||||
|
||||
26
images/linux/scripts/installers/1804/containers.sh
Normal file
26
images/linux/scripts/installers/1804/containers.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/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 | 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)"
|
||||
@@ -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,9 +194,15 @@ 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
|
||||
|
||||
#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
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
WriteItem "<!--- DO NOT EDIT - This markdown file is autogenerated. -->"
|
||||
AddTitle "$(lsb_release -ds)"
|
||||
WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
|
||||
WriteItem "***"
|
||||
WriteItem "***"
|
||||
55
images/linux/scripts/installers/Install-Toolset.ps1
Normal file
55
images/linux/scripts/installers/Install-Toolset.ps1
Normal file
@@ -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
|
||||
62
images/linux/scripts/installers/Validate-Toolset.ps1
Normal file
62
images/linux/scripts/installers/Validate-Toolset.ps1
Normal file
@@ -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)'`""
|
||||
}
|
||||
}
|
||||
27
images/linux/scripts/installers/aliyun-cli.sh
Normal file
27
images/linux/scripts/installers/aliyun-cli.sh
Normal file
@@ -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)"
|
||||
24
images/linux/scripts/installers/aws-sam-cli.sh
Normal file
24
images/linux/scripts/installers/aws-sam-cli.sh
Normal file
@@ -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)"
|
||||
16
images/linux/scripts/installers/cleanup.sh
Normal file
16
images/linux/scripts/installers/cleanup.sh
Normal file
@@ -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"
|
||||
@@ -10,9 +10,9 @@ 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.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
|
||||
|
||||
12
images/linux/scripts/installers/complete-snap-setup.sh
Normal file
12
images/linux/scripts/installers/complete-snap-setup.sh
Normal file
@@ -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"
|
||||
@@ -16,16 +16,22 @@ 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
|
||||
|
||||
# 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
|
||||
elif ! [[ $(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
|
||||
sleep 10
|
||||
set -e
|
||||
@@ -44,8 +50,13 @@ 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"
|
||||
docker_version=$(docker -v)
|
||||
DocumentInstalledItem "Docker-Moby ($docker_version)"
|
||||
|
||||
echo "Documenting Docker-buildx version"
|
||||
DOCKER_BUILDX_VERSION=$(docker buildx version | cut -d ' ' -f2)
|
||||
DocumentInstalledItem "Docker-Buildx ($DOCKER_BUILDX_VERSION)"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
14
images/linux/scripts/installers/homebrew-validate.sh
Normal file
14
images/linux/scripts/installers/homebrew-validate.sh
Normal file
@@ -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
|
||||
|
||||
36
images/linux/scripts/installers/homebrew.sh
Normal file
36
images/linux/scripts/installers/homebrew.sh
Normal file
@@ -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/')
|
||||
appendEtcEnvironmentPath "$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))"
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
24
images/linux/scripts/installers/rndgenerator.sh
Normal file
24
images/linux/scripts/installers/rndgenerator.sh
Normal file
@@ -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)"
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,6 +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
|
||||
echo "PATH=${CARGO_HOME}/bin:${PATH}:${DOTNET_TOOLS_HOME}:${PHP_COMPOSER_HOME}" | tee -a /etc/environment
|
||||
14
images/linux/scripts/installers/validate-disk-space.sh
Normal file
14
images/linux/scripts/installers/validate-disk-space.sh
Normal file
@@ -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=18000
|
||||
|
||||
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
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
# 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
|
||||
@@ -13,11 +14,22 @@ echo "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" | tee -a /etc/environm
|
||||
|
||||
# Install vcpkg
|
||||
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
|
||||
|
||||
@@ -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"
|
||||
],
|
||||
|
||||
@@ -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"
|
||||
],
|
||||
|
||||
18
images/linux/toolset-1604.json
Normal file
18
images/linux/toolset-1604.json
Normal file
@@ -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.*"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
18
images/linux/toolset-1804.json
Normal file
18
images/linux/toolset-1804.json
Normal file
@@ -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.*"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -132,6 +132,46 @@
|
||||
],
|
||||
"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": [
|
||||
"{{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": [
|
||||
@@ -141,6 +181,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",
|
||||
@@ -187,10 +228,9 @@
|
||||
"{{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/mongodb.sh",
|
||||
"{{template_dir}}/scripts/installers/rndgenerator.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"METADATA_FILE={{user `metadata_file`}}",
|
||||
@@ -199,6 +239,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": [
|
||||
@@ -217,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":[
|
||||
@@ -235,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":[
|
||||
@@ -247,6 +317,19 @@
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts":[
|
||||
"{{template_dir}}/scripts/installers/cleanup.sh"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts":[
|
||||
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{user `metadata_file`}}",
|
||||
|
||||
@@ -135,6 +135,46 @@
|
||||
],
|
||||
"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": [
|
||||
"{{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": [
|
||||
@@ -144,11 +184,13 @@
|
||||
"{{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",
|
||||
"{{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",
|
||||
@@ -190,9 +232,9 @@
|
||||
"{{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/mongodb.sh",
|
||||
"{{template_dir}}/scripts/installers/rndgenerator.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"METADATA_FILE={{user `metadata_file`}}",
|
||||
@@ -201,6 +243,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": [
|
||||
@@ -219,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":[
|
||||
@@ -237,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":[
|
||||
@@ -249,6 +321,19 @@
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts":[
|
||||
"{{template_dir}}/scripts/installers/cleanup.sh"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts":[
|
||||
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{user `metadata_file`}}",
|
||||
|
||||
@@ -1,45 +1,43 @@
|
||||
# macOS Catalina 10.15.4 (19E266)
|
||||
The following software is installed on machines with the 20200328.1 update.
|
||||
# OS X info
|
||||
- System Version: macOS 10.15.4 (19E287)
|
||||
- Kernel Version: Darwin 19.4.0
|
||||
- System Integrity Protection: Enabled
|
||||
- Image Version: 20200425.1
|
||||
|
||||
#### Xcode 11.3.1 set by default
|
||||
## Operating System
|
||||
|
||||
- OS X 10.15.4 (19E266) **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)
|
||||
- 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
|
||||
- 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.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
|
||||
- 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.1 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,169 +45,189 @@ 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.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.3.4
|
||||
- azcopy 10.4.1
|
||||
- zstd 1.4.4
|
||||
- bazel 2.2.0
|
||||
- bazelisk v1.3.0
|
||||
- helm v3.1.2+gd878d4d
|
||||
- Docker 19.03.8
|
||||
- docker-machine 0.16.2
|
||||
- docker-compose 1.25.4
|
||||
- bazel 3.1.0
|
||||
- bazelisk v1.4.0
|
||||
- helm v3.2.0+ge11b7ce
|
||||
- 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.146.1
|
||||
- Cmake 3.17.1
|
||||
- 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.39
|
||||
|
||||
### 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.122
|
||||
- ChromeDriver 81.0.4044.69
|
||||
- Microsoft Edge 81.0.416.64
|
||||
- MSEdgeDriver 81.0.416.64
|
||||
- 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.4.12
|
||||
|
||||
#### 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 (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
|
||||
### 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.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<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.1 | 11.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.2 | 11.2<br>11.2.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.3 | 11.3<br>11.3.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (1st generation) |
|
||||
| iOS 13.4 | 11.4 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Air (3rd generation) |
|
||||
| tvOS 13.0 | 11.0<br>11.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.2 | 11.2<br>11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.3 | 11.3<br>11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.4 | 11.4 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| watchOS 6.0 | 11.0<br>11.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||
| watchOS 6.1 | 11.2<br>11.2.1<br>11.3<br>11.3.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||
| watchOS 6.2 | 11.4 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||
### Installed Simulators
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 12.4 | 10.3 | iPhone 5s<br>iPhone 6 Plus<br>iPhone 6<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone SE<br>iPhone 7<br>iPhone 7 Plus<br>iPhone 8<br>iPhone 8 Plus<br>iPhone X<br>iPhone Xs<br>iPhone Xs Max<br>iPhone Xʀ<br>iPad Air<br>iPad Air 2<br>iPad Pro (9.7-inch)<br>iPad Pro (12.9-inch)<br>iPad (5th generation)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (10.5-inch)<br>iPad (6th generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.0 | 11.0 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.1 | 11.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.2 | 11.2<br>11.2.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.3 | 11.3<br>11.3.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.4 | 11.4<br>11.4.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Air (3rd generation)<br>iPhone SE (2nd generation) |
|
||||
| tvOS 12.4 | 10.3 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.0 | 11.0<br>11.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.2 | 11.2<br>11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.3 | 11.3<br>11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.4 | 11.4<br>11.4.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm<br>Apple Watch Series 2 - 42mm<br>Apple Watch Series 3 - 38mm<br>Apple Watch Series 3 - 42mm<br>Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm |
|
||||
| watchOS 6.0 | 11.0<br>11.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||
| watchOS 6.1 | 11.2<br>11.2.1<br>11.3<br>11.3.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||
| watchOS 6.2 | 11.4<br>11.4.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>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 |
|
||||
| platform-tools | Android SDK Platform-Tools, Revision 30.0.0 |
|
||||
|
||||
#### Android SDK Platforms
|
||||
### Android SDK Platforms
|
||||
| Package Name | Description |
|
||||
| ------------ | ----------------------------------- |
|
||||
| android-24 | Android SDK Platform 24, Revision 2 |
|
||||
@@ -219,7 +237,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 +266,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.1.6352462 |
|
||||
| Android Emulator | 30.0.5 |
|
||||
|
||||
#### Android Google APIs
|
||||
### Android Google APIs
|
||||
| Package Name | Description |
|
||||
| --------------------------- | ----------------------- |
|
||||
| addon-google_apis-google-21 | Google APIs, Revision 1 |
|
||||
@@ -264,7 +282,7 @@ 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 |
|
||||
@@ -272,3 +290,4 @@ The following software is installed on machines with the 20200328.1 update.
|
||||
| Google Repository | 58 |
|
||||
| Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 |
|
||||
|
||||
|
||||
|
||||
@@ -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",
|
||||
@@ -175,10 +176,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Windows2016/Update-DockerImages.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"inline": ["choco install vcredist140 -y"]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"valid_exit_codes": [
|
||||
@@ -299,6 +296,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-Bazel.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-AliyunCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -316,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":[
|
||||
@@ -326,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":[
|
||||
@@ -452,6 +469,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-AWS.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-AWS-SAM.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -470,14 +493,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":[
|
||||
@@ -621,6 +636,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-AzureCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-AWS-SAM.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -636,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":[
|
||||
@@ -742,7 +772,7 @@
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-SQLExpress.ps1"
|
||||
"{{ template_dir }}/scripts/Installers/Validate-AliyunCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -877,6 +907,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Kind.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "C:\\InstalledSoftware.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 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<br/>
|
||||
_Version:_ v3.2.0+ge11b7ce<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of helm
|
||||
|
||||
@@ -36,15 +36,15 @@ _Version:_ 7.0.0
<br/>
|
||||
|
||||
## 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)
|
||||
The following container images have been cached:
|
||||
* 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.22+28307.1093<br/>
|
||||
_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise
|
||||
|
||||
@@ -135,6 +135,8 @@ In addition the following optional components are installed:
|
||||
* Microsoft.VisualStudio.Component.Windows10SDK.17763
|
||||
* 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
|
||||
@@ -166,13 +168,17 @@ _WDK Visual Studio Extension Version:_ 10.0.17740.0<br/>
|
||||
_WDK Visual Studio Extension Version:_ 10.0.17740.0<br/>
|
||||
|
||||
## Azure Service Fabric
|
||||
|
||||
_SDK Version:_ 4.0.470.9590<br/>
|
||||
|
||||
_SDK Version:_ 4.1.409.9590<br/>
|
||||
_Runtime Version:_ 7.1.409.9590
|
||||
|
||||
## WinAppDriver
|
||||
|
||||
_Version:_ 1.1.1809.18001<br/>
|
||||
|
||||
## AWS CLI
|
||||
|
||||
_Version:_ aws-cli 2.0.9<br/>
|
||||
|
||||
## Android SDK Build Tools
|
||||
|
||||
@@ -422,13 +428,17 @@ _Description:_ .NET has been configured to use TLS 1.2 by default
|
||||
_Description:_ .NET has been configured to use TLS 1.2 by default
|
||||
|
||||
## Azure CLI
|
||||
|
||||
|
||||
_Version:_ 2.4.0
|
||||
_Environment:_
|
||||
* PATH: contains location of az.cmd
|
||||
|
||||
## AWS SAM CLI
|
||||
|
||||
_Version:_ 0.47.0<br/>
|
||||
|
||||
## Azure DevOps Cli extension
|
||||
|
||||
|
||||
_Version:_ azure-devops 0.18.0
|
||||
|
||||
## Python
|
||||
@@ -440,11 +450,11 @@ _Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/>
|
||||
_Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/>
|
||||
|
||||
## Ruby
|
||||
|
||||
|
||||
_Version:_ 2.4.10 (x64)<br/>_Version:_ 2.5.8 (x64)<br/>_Version:_ 2.6.6 (x64)<br/>_Version:_ 2.7.1 (x64)<br/><br/>__System default version:__ Ruby 2.5.8p224<br/>_Environment:_<br/>* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin<br/>* PATH: contains the location of Ruby 2.5.8p224<br/>* Gem Version: 3.1.2<br/>
|
||||
|
||||
## OpenSSL
|
||||
|
||||
|
||||
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe<br/>_Version:_ 1.1.1d at C:\Strawberry\c\bin\openssl.exe<br/>_Version:_ 1.1.1f at C:\Program Files\Git\mingw64\bin\openssl.exe<br/>_Version:_ 1.1.1f at C:\Program Files\Git\usr\bin\openssl.exe<br/>_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe<br/>
|
||||
|
||||
## Perl
|
||||
@@ -452,7 +462,7 @@ _Version:_ v5.30.2<br/>
|
||||
_Version:_ v5.30.2<br/>
|
||||
|
||||
## Git
|
||||
|
||||
|
||||
_Version:_ 2.26.2<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of git.exe
|
||||
@@ -478,8 +488,8 @@ _Environment:_
|
||||
|
||||
#### 1.69.0 [msvc-14.1]
|
||||
|
||||
_Environment:_
|
||||
* PATH: contains the location of Boost version 1.69.0
|
||||
_Environment:_
|
||||
* BOOST_ROOT_1_69_0: root directory of the Boost version 1.69.0 installation
|
||||
|
||||
#### 1.72.0 [msvc-14.1]
|
||||
|
||||
@@ -498,24 +508,32 @@ 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.
|
||||
|
||||
|
||||
|
||||
## Composer
|
||||
|
||||
|
||||
#### Composer version 1.10.5 2020-04-10 11:44:22
|
||||
|
||||
_Environment:_
|
||||
* PATH: contains the location of php.exe version 7.4.3
|
||||
_Environment:_
|
||||
* 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)
|
||||
|
||||
|
||||
#### 1.43.0
|
||||
_Location:_ C:\Rust\.cargo\bin
|
||||
_Environment:_
|
||||
* PATH: contains the location of rustc.exe
|
||||
|
||||
## Julia (x64)
|
||||
|
||||
|
||||
_Version:_ 1.4.1<br/>
|
||||
|
||||
## sbt
|
||||
@@ -530,17 +548,17 @@ _Environment:_
|
||||
|
||||
## Google Chrome
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.4044.122
|
||||
|
||||
## Microsoft Edge
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.64
|
||||
|
||||
## Mozilla Firefox
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
75.0
|
||||
|
||||
## Selenium Web Drivers
|
||||
@@ -548,7 +566,7 @@ _version:_
|
||||
|
||||
#### Chrome Driver
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.4044.69
|
||||
|
||||
_Environment:_
|
||||
@@ -572,7 +590,7 @@ _Environment:_
|
||||
|
||||
#### Microsoft Edge Driver
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.64
|
||||
|
||||
_Environment:_
|
||||
@@ -580,7 +598,7 @@ _Environment:_
|
||||
|
||||
|
||||
## Node.js
|
||||
|
||||
|
||||
_Version:_ 12.16.2<br/>
|
||||
_Architecture:_ x64<br/>
|
||||
_Environment:_
|
||||
@@ -591,17 +609,21 @@ _Environment:_
|
||||
|
||||
|
||||
## npm
|
||||
|
||||
|
||||
_Version:_ 6.14.4<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of npm.cmd
|
||||
|
||||
## bazel
|
||||
|
||||
|
||||
_Version:_ bazel 3.1.0<br/>
|
||||
|
||||
## bazelisk
|
||||
|
||||
|
||||
_Version:_ 1.4.0<br/>
|
||||
|
||||
## Alibaba Cloud CLI
|
||||
|
||||
_Version:_ 3.0.26<br/>
|
||||
|
||||
## Java Development Kit
|
||||
@@ -636,13 +658,13 @@ _Environment:_
|
||||
* M2_HOME: Maven installation root
|
||||
|
||||
## Gradle
|
||||
|
||||
|
||||
_Version:_ 6.3<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of gradle
|
||||
|
||||
|
||||
## CMake
|
||||
|
||||
|
||||
_Version:_ 3.17.1<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of cmake.exe
|
||||
@@ -659,6 +681,10 @@ _Environment:_
|
||||
_Environment:_
|
||||
* PATH: contains location of dotnet.exe
|
||||
|
||||
_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
|
||||
@@ -682,12 +708,14 @@ _SDK:_
|
||||
* 2.2.103 C:\Program Files\dotnet\sdk\2.2.103
|
||||
* 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
|
||||
@@ -696,6 +724,7 @@ _SDK:_
|
||||
* 2.1.605 C:\Program Files\dotnet\sdk\2.1.605
|
||||
* 2.1.604 C:\Program Files\dotnet\sdk\2.1.604
|
||||
* 2.1.603 C:\Program Files\dotnet\sdk\2.1.603
|
||||
* 2.1.602 C:\Program Files\dotnet\sdk\2.1.602
|
||||
* 2.1.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
|
||||
@@ -718,6 +747,8 @@ _SDK:_
|
||||
* 2.1.202 C:\Program Files\dotnet\sdk\2.1.202
|
||||
* 1.1.14 C:\Program Files\dotnet\sdk\1.1.14
|
||||
|
||||
_Runtime:_
|
||||
* 3.1.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
|
||||
@@ -737,6 +768,7 @@ _Runtime:_
|
||||
* 2.1.5 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.5
|
||||
* 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
|
||||
@@ -791,7 +823,7 @@ _Version:_ 19.00<br/>
|
||||
_Version:_ 19.00<br/>
|
||||
|
||||
## Packer
|
||||
|
||||
|
||||
_Version:_ 1.5.5<br/>
|
||||
|
||||
## Mercurial
|
||||
@@ -813,9 +845,13 @@ _Version:_ 6.0.4<br/>
|
||||
## GitVersion
|
||||
|
||||
_Version:_ 5.2.4.0<br/>
|
||||
|
||||
## Nullsoft Install System (NSIS)
|
||||
|
||||
_Version:_ 3.5<br/>
|
||||
|
||||
## Cloud Foundry CLI
|
||||
|
||||
|
||||
_Version:_ 6.51.0<br/>
|
||||
|
||||
## Vcpkg
|
||||
@@ -826,7 +862,7 @@ _Environment:_
|
||||
* VCPKG_INSTALLATION_ROOT: root directory of the vcpkg installation
|
||||
|
||||
## Kubectl
|
||||
|
||||
|
||||
_Version:_ Client Version: v1.18.2<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of kubectl.exe
|
||||
|
||||
@@ -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":[
|
||||
@@ -433,6 +448,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-AWS.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-AWS-SAM.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -451,14 +472,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":[
|
||||
@@ -586,6 +599,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-Bazel.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-AliyunCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -614,6 +633,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-AzureCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-AWS-SAM.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -629,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":[
|
||||
@@ -756,12 +790,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-MysqlCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-SQLExpress.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -876,6 +904,18 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Bazel.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-AliyunCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-DiskSpace.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "C:\\InstalledSoftware.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 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<br/>
|
||||
_Version:_ v3.2.0+ge11b7ce<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of helm
|
||||
|
||||
@@ -36,15 +36,15 @@ _Version:_ 7.0.0
<br/>
|
||||
|
||||
## 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)
|
||||
The following container images have been cached:
|
||||
* 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.4+30011.22<br/>
|
||||
_Location:_ C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
|
||||
|
||||
@@ -108,6 +108,7 @@ The following workloads and components are installed with Visual Studio 2019:
|
||||
* Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre
|
||||
* Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre
|
||||
* Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre
|
||||
* Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre
|
||||
* Microsoft.VisualStudio.Component.Windows10SDK.14393
|
||||
* Microsoft.VisualStudio.Component.Windows10SDK.16299
|
||||
* Microsoft.VisualStudio.Component.Windows10SDK.17134
|
||||
@@ -144,9 +145,9 @@ _Environment:_
|
||||
* WIX: Installation root of WIX
|
||||
|
||||
## Microsoft SSDT Visual Studio 2019 Extensions
|
||||
|
||||
_Microsoft Analysis Services Projects Version:_ 2.9.6<br/>
|
||||
_SQL Server Integration Services Projects Version:_ 3.5<br/>
|
||||
|
||||
_Microsoft Analysis Services Projects Version:_ 2.9.8<br/>
|
||||
_SQL Server Integration Services Projects Version:_ 3.6<br/>
|
||||
_Microsoft Reporting Services Projects Version:_ 2.6.5<br/>
|
||||
|
||||
## .NET 4.8
|
||||
@@ -160,13 +161,17 @@ _WDK Visual Studio Extension Version:_ 10.0.18346.0<br/>
|
||||
_WDK Visual Studio Extension Version:_ 10.0.18346.0<br/>
|
||||
|
||||
## Azure Service Fabric
|
||||
|
||||
_SDK Version:_ 4.0.470.9590<br/>
|
||||
|
||||
_SDK Version:_ 4.1.409.9590<br/>
|
||||
_Runtime Version:_ 7.1.409.9590
|
||||
|
||||
## WinAppDriver
|
||||
|
||||
_Version:_ 1.1.1809.18001<br/>
|
||||
|
||||
## AWS CLI
|
||||
|
||||
_Version:_ aws-cli 2.0.9<br/>
|
||||
|
||||
## Android SDK Build Tools
|
||||
|
||||
@@ -416,13 +421,17 @@ _Description:_ .NET has been configured to use TLS 1.2 by default
|
||||
_Description:_ .NET has been configured to use TLS 1.2 by default
|
||||
|
||||
## Azure CLI
|
||||
|
||||
|
||||
_Version:_ 2.4.0
|
||||
_Environment:_
|
||||
* PATH: contains location of az.cmd
|
||||
|
||||
## AWS SAM CLI
|
||||
|
||||
_Version:_ 0.47.0<br/>
|
||||
|
||||
## Azure DevOps Cli extension
|
||||
|
||||
|
||||
_Version:_ azure-devops 0.18.0
|
||||
|
||||
## Python
|
||||
@@ -434,11 +443,11 @@ _Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/>
|
||||
_Version:_ 2.7.13 (x86)<br/>_Version:_ 3.6.9 (x86)<br/>
|
||||
|
||||
## Ruby
|
||||
|
||||
|
||||
_Version:_ 2.4.10 (x64)<br/>_Version:_ 2.5.8 (x64)<br/>_Version:_ 2.6.6 (x64)<br/>_Version:_ 2.7.1 (x64)<br/><br/>__System default version:__ Ruby 2.5.8p224<br/>_Environment:_<br/>* Location: C:\hostedtoolcache\windows\Ruby\2.5.8\x64\bin<br/>* PATH: contains the location of Ruby 2.5.8p224<br/>* Gem Version: 3.1.2<br/>
|
||||
|
||||
## OpenSSL
|
||||
|
||||
|
||||
_Version:_ 1.1.1 at C:\Program Files\OpenSSL\bin\openssl.exe<br/>_Version:_ 1.1.1d at C:\Strawberry\c\bin\openssl.exe<br/>_Version:_ 1.1.1f at C:\Program Files\Git\mingw64\bin\openssl.exe<br/>_Version:_ 1.1.1f at C:\Program Files\Git\usr\bin\openssl.exe<br/>_Version:_ 1.0.2j at C:\Program Files (x86)\Subversion\bin\openssl.exe<br/>
|
||||
|
||||
## Perl
|
||||
@@ -446,7 +455,7 @@ _Version:_ v5.30.2<br/>
|
||||
_Version:_ v5.30.2<br/>
|
||||
|
||||
## Git
|
||||
|
||||
|
||||
_Version:_ 2.26.2<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of git.exe
|
||||
@@ -465,12 +474,6 @@ _Environment:_
|
||||
* PATH: contains location of hub.exe
|
||||
|
||||
## Go (x64)
|
||||
|
||||
#### 1.14
|
||||
|
||||
_Environment:_
|
||||
* PATH: contains the location of go.exe version 1.14
|
||||
* GOROOT: root directory of the Go 1.14 installation
|
||||
|
||||
|
||||
|
||||
@@ -483,8 +486,8 @@ _Environment:_
|
||||
|
||||
#### 1.72.0 [msvc-14.2]
|
||||
|
||||
_Environment:_
|
||||
* PATH: contains the location of Boost version 1.72.0
|
||||
_Environment:_
|
||||
* BOOST_ROOT_1_72_0: root directory of the Boost version 1.72.0 installation
|
||||
|
||||
|
||||
#### _Notes:_
|
||||
@@ -498,24 +501,32 @@ 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.
|
||||
|
||||
|
||||
|
||||
## Composer
|
||||
|
||||
|
||||
#### Composer version 1.10.5 2020-04-10 11:44:22
|
||||
|
||||
_Environment:_
|
||||
* PATH: contains the location of php.exe version 7.4.3
|
||||
_Environment:_
|
||||
* 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)
|
||||
|
||||
|
||||
#### 1.43.0
|
||||
_Location:_ C:\Rust\.cargo\bin
|
||||
_Environment:_
|
||||
* PATH: contains the location of rustc.exe
|
||||
|
||||
## Julia (x64)
|
||||
|
||||
|
||||
_Version:_ 1.4.1<br/>
|
||||
|
||||
## Subversion
|
||||
@@ -530,17 +541,17 @@ _Environment:_
|
||||
|
||||
## Google Chrome
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.4044.122
|
||||
|
||||
## Microsoft Edge
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.64
|
||||
|
||||
## Mozilla Firefox
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
75.0
|
||||
|
||||
## Selenium Web Drivers
|
||||
@@ -548,7 +559,7 @@ _version:_
|
||||
|
||||
#### Chrome Driver
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.4044.69
|
||||
|
||||
_Environment:_
|
||||
@@ -572,7 +583,7 @@ _Environment:_
|
||||
|
||||
#### Microsoft Edge Driver
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.64
|
||||
|
||||
_Environment:_
|
||||
@@ -580,7 +591,7 @@ _Environment:_
|
||||
|
||||
|
||||
## Node.js
|
||||
|
||||
|
||||
_Version:_ 12.16.2<br/>
|
||||
_Architecture:_ x64<br/>
|
||||
_Environment:_
|
||||
@@ -591,7 +602,7 @@ _Environment:_
|
||||
|
||||
|
||||
## npm
|
||||
|
||||
|
||||
_Version:_ 6.14.4<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of npm.cmd
|
||||
@@ -628,13 +639,13 @@ _Environment:_
|
||||
* M2_HOME: Maven installation root
|
||||
|
||||
## Gradle
|
||||
|
||||
|
||||
_Version:_ 6.3<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of gradle
|
||||
|
||||
|
||||
## CMake
|
||||
|
||||
|
||||
_Version:_ 3.17.1<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of cmake.exe
|
||||
@@ -651,7 +662,10 @@ _Environment:_
|
||||
_Environment:_
|
||||
* PATH: contains location of dotnet.exe
|
||||
|
||||
_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
|
||||
@@ -675,12 +689,14 @@ _SDK:_
|
||||
* 2.2.103 C:\Program Files\dotnet\sdk\2.2.103
|
||||
* 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
|
||||
@@ -689,6 +705,7 @@ _SDK:_
|
||||
* 2.1.605 C:\Program Files\dotnet\sdk\2.1.605
|
||||
* 2.1.604 C:\Program Files\dotnet\sdk\2.1.604
|
||||
* 2.1.603 C:\Program Files\dotnet\sdk\2.1.603
|
||||
* 2.1.602 C:\Program Files\dotnet\sdk\2.1.602
|
||||
* 2.1.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
|
||||
@@ -709,6 +726,7 @@ _SDK:_
|
||||
* 2.1.301 C:\Program Files\dotnet\sdk\2.1.301
|
||||
* 2.1.300 C:\Program Files\dotnet\sdk\2.1.300
|
||||
|
||||
_Runtime:_
|
||||
* 3.1.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
|
||||
@@ -729,6 +747,7 @@ _Runtime:_
|
||||
* 2.1.5 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.5
|
||||
* 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
|
||||
@@ -751,7 +770,7 @@ _Version:_ 1.0
|
||||
_Version:_ 1.0
|
||||
|
||||
## SQLServer PS
|
||||
|
||||
|
||||
_Version:_ 21.1.18221
|
||||
|
||||
## MinGW
|
||||
@@ -780,7 +799,7 @@ _Version:_ 19.00<br/>
|
||||
_Version:_ 19.00<br/>
|
||||
|
||||
## Packer
|
||||
|
||||
|
||||
_Version:_ 1.5.5<br/>
|
||||
|
||||
## Mercurial
|
||||
@@ -802,9 +821,13 @@ _Version:_ 6.0.4<br/>
|
||||
## GitVersion
|
||||
|
||||
_Version:_ 5.2.4.0<br/>
|
||||
|
||||
## Nullsoft Install System (NSIS)
|
||||
|
||||
_Version:_ 3.5<br/>
|
||||
|
||||
## Cloud Foundry CLI
|
||||
|
||||
|
||||
_Version:_ 6.51.0<br/>
|
||||
|
||||
## Vcpkg
|
||||
@@ -820,7 +843,7 @@ _Version_: 2.8.4+ff0de50053 - shim 0.8.1<br/>
|
||||
* PATH: contains location of vswhere.exe
|
||||
|
||||
## Kubectl
|
||||
|
||||
|
||||
_Version:_ Client Version: v1.18.2<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of kubectl.exe
|
||||
@@ -832,8 +855,12 @@ _Environment:_
|
||||
* PATH: contains location of kind.exe
|
||||
|
||||
## bazel
|
||||
|
||||
|
||||
_Version:_ bazel 3.1.0<br/>
|
||||
|
||||
## bazelisk
|
||||
|
||||
|
||||
_Version:_ 1.4.0<br/>
|
||||
|
||||
## Alibaba Cloud CLI
|
||||
|
||||
|
||||
32
images/win/scripts/ImageHelpers/ChocoHelpers.ps1
Normal file
32
images/win/scripts/ImageHelpers/ChocoHelpers.ps1
Normal file
@@ -0,0 +1,32 @@
|
||||
function Choco-Install {
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[string] $PackageName,
|
||||
[string[]] $ArgumentList,
|
||||
[int] $RetryCount = 5
|
||||
)
|
||||
|
||||
process {
|
||||
$count = 1
|
||||
while($true)
|
||||
{
|
||||
Write-Host "Running [#$count]: choco install $packageName -y $argumentList"
|
||||
choco install $packageName -y @argumentList
|
||||
|
||||
$pkg = choco list --localonly $packageName --exact --all --limitoutput
|
||||
if ($pkg) {
|
||||
Write-Host "Package installed: $pkg"
|
||||
break
|
||||
}
|
||||
else {
|
||||
$count++
|
||||
if ($count -ge $retryCount) {
|
||||
Write-Host "Could not install $packageName after $count attempts"
|
||||
exit 1
|
||||
}
|
||||
Start-Sleep -Seconds 30
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ param()
|
||||
. $PSScriptRoot\PathHelpers.ps1
|
||||
. $PSScriptRoot\InstallHelpers.ps1
|
||||
. $PSScriptRoot\MarkdownHelpers.ps1
|
||||
. $PSScriptRoot\ChocoHelpers.ps1
|
||||
|
||||
Export-ModuleMember -Function @(
|
||||
'Test-MachinePath'
|
||||
@@ -12,9 +13,9 @@ Export-ModuleMember -Function @(
|
||||
'Add-MachinePathItem'
|
||||
'Get-SystemVariable'
|
||||
'Set-SystemVariable'
|
||||
'Install-MSI'
|
||||
'Install-EXE'
|
||||
'Install-Binary'
|
||||
'Get-ToolcachePackages'
|
||||
'Get-ToolsetContent'
|
||||
'Get-ToolsByName'
|
||||
'Add-ContentToMarkdown'
|
||||
'Add-SoftwareDetailsToMarkdown'
|
||||
@@ -26,4 +27,5 @@ Export-ModuleMember -Function @(
|
||||
'Get-WinVersion'
|
||||
'Test-IsWin19'
|
||||
'Test-IsWin16'
|
||||
'Choco-Install'
|
||||
)
|
||||
|
||||
@@ -1,162 +1,151 @@
|
||||
function Install-MSI
|
||||
function Install-Binary
|
||||
{
|
||||
Param
|
||||
(
|
||||
[String]$MsiUrl,
|
||||
[String]$MsiName
|
||||
<#
|
||||
.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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -172,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
|
||||
@@ -216,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
|
||||
@@ -229,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
|
||||
{
|
||||
@@ -256,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"
|
||||
@@ -280,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
|
||||
@@ -289,12 +278,16 @@ function Get-VSExtensionVersion
|
||||
return $packageVersion
|
||||
}
|
||||
|
||||
|
||||
function Get-ToolcachePackages {
|
||||
$toolcachePath = Join-Path $env:ROOT_FOLDER "toolcache.json"
|
||||
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)]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
function Add-ContentToMarkdown {
|
||||
[CmdletBinding()]
|
||||
|
||||
param(
|
||||
$Content = ""
|
||||
)
|
||||
|
||||
@@ -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)]
|
||||
@@ -71,8 +56,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
|
||||
@@ -104,5 +91,4 @@ $ToolVersions.PSObject.Properties | ForEach-Object {
|
||||
}
|
||||
}
|
||||
|
||||
Set-DefaultPythonVersion -Version "3.7"
|
||||
Set-DefaultRubyVersion -Version "2.5"
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install 7zip
|
||||
################################################################################
|
||||
|
||||
choco install 7zip.install -y
|
||||
Choco-Install -PackageName 7zip.install
|
||||
|
||||
7
images/win/scripts/Installers/Install-AWS-SAM.ps1
Normal file
7
images/win/scripts/Installers/Install-AWS-SAM.ps1
Normal file
@@ -0,0 +1,7 @@
|
||||
################################################################################
|
||||
## File: Install-AWS-SAM.ps1
|
||||
## Desc: Install aws sam cli
|
||||
## https://aws.amazon.com/serverless/sam/
|
||||
################################################################################
|
||||
|
||||
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"
|
||||
@@ -3,7 +3,7 @@
|
||||
## Desc: Install awscli
|
||||
################################################################################
|
||||
|
||||
choco install awscli -y
|
||||
Choco-Install -PackageName awscli
|
||||
|
||||
$env:PATH =$env:PATH + ";$Env:Programfiles\Amazon\AWSCLIV2"
|
||||
|
||||
|
||||
6
images/win/scripts/Installers/Install-AliyunCli.ps1
Normal file
6
images/win/scripts/Installers/Install-AliyunCli.ps1
Normal file
@@ -0,0 +1,6 @@
|
||||
################################################################################
|
||||
## File: Install-AliyunCli.ps1
|
||||
## Desc: Install Alibaba Cloud CLI
|
||||
################################################################################
|
||||
|
||||
Choco-Install -PackageName aliyun-cli
|
||||
@@ -3,7 +3,7 @@
|
||||
## Desc: Install Azure CLI
|
||||
################################################################################
|
||||
|
||||
choco install azure-cli -y
|
||||
Choco-Install -PackageName azure-cli
|
||||
|
||||
$AzureCliExtensionPath = Join-Path $Env:CommonProgramFiles 'AzureCliExtensionDirectory'
|
||||
New-Item -ItemType "directory" -Path $AzureCliExtensionPath
|
||||
|
||||
@@ -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
|
||||
@@ -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")
|
||||
[Environment]::SetEnvironmentVariable("PSModulePath", $finalModulePath, "Machine")
|
||||
|
||||
@@ -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
|
||||
@@ -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";
|
||||
|
||||
@@ -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""'
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
Choco-Install -PackageName kubernetes-helm
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -5,10 +5,34 @@
|
||||
|
||||
Import-Module -Name ImageHelpers
|
||||
|
||||
# Install the latest version of Git which is bundled with Git LFS.
|
||||
# See https://chocolatey.org/packages/git
|
||||
choco install git -y --package-parameters="/GitAndUnixToolsOnPath /WindowsTerminal /NoShellIntegration"
|
||||
choco install hub
|
||||
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-Binary -Url $downloadUrl `
|
||||
-Name $installerFile `
|
||||
-ArgumentList (
|
||||
"/VERYSILENT", `
|
||||
"/NORESTART", `
|
||||
"/NOCANCEL", `
|
||||
"/SP-", `
|
||||
"/CLOSEAPPLICATIONS", `
|
||||
"/RESTARTAPPLICATIONS", `
|
||||
"/o:PathOption=CmdTools", `
|
||||
"/o:BashTerminalOption=ConHost", `
|
||||
"/COMPONENTS=gitlfs")
|
||||
|
||||
Choco-Install -PackageName hub
|
||||
|
||||
# Disable GCM machine-wide
|
||||
[Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine)
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install GitVersion
|
||||
################################################################################
|
||||
|
||||
choco install gitversion.portable -y
|
||||
Choco-Install -PackageName gitversion.portable
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install Inno Setup
|
||||
################################################################################
|
||||
|
||||
choco install innosetup -y
|
||||
Choco-Install -PackageName innosetup
|
||||
|
||||
@@ -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,12 +65,13 @@ 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
|
||||
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
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install jq
|
||||
################################################################################
|
||||
|
||||
choco install jq -y
|
||||
Choco-Install -PackageName jq
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install Julia
|
||||
################################################################################
|
||||
|
||||
choco install julia -y --ia "/D=C:\Julia"
|
||||
Choco-Install -PackageName julia -ArgumentList "--ia","/DIR=C:\Julia"
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install KubernetesCli
|
||||
################################################################################
|
||||
|
||||
choco install kubernetes-cli -y
|
||||
Choco-Install -PackageName kubernetes-cli
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
Import-Module -Name ImageHelpers -Force
|
||||
|
||||
choco install -y 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
## Desc: Install NSIS
|
||||
################################################################################
|
||||
|
||||
choco install nsis -y
|
||||
Choco-Install -PackageName nsis
|
||||
|
||||
$NsisPath = "${env:ProgramFiles(x86)}\NSIS\"
|
||||
Add-MachinePathItem $NsisPath
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install OpenSSL
|
||||
################################################################################
|
||||
|
||||
choco install openssl.light -y
|
||||
Choco-Install -PackageName openssl.light
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install Packer
|
||||
################################################################################
|
||||
|
||||
choco install packer -y
|
||||
Choco-Install -PackageName packer
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install Perl
|
||||
################################################################################
|
||||
|
||||
choco install strawberryperl -y
|
||||
Choco-Install -PackageName strawberryperl
|
||||
|
||||
@@ -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 extended 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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install Subversion
|
||||
################################################################################
|
||||
|
||||
choco install svn -y
|
||||
Choco-Install -PackageName svn
|
||||
|
||||
76
images/win/scripts/Installers/Install-Toolset.ps1
Normal file
76
images/win/scripts/Installers/Install-Toolset.ps1
Normal file
@@ -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
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install latest stable version of VSWhere
|
||||
################################################################################
|
||||
|
||||
choco install vswhere -y
|
||||
Choco-Install -PackageName vswhere
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
## Desc: Install zstd
|
||||
################################################################################
|
||||
|
||||
choco install zstandard -y
|
||||
Choco-Install -PackageName zstandard
|
||||
|
||||
27
images/win/scripts/Installers/Validate-AWS-SAM.ps1
Normal file
27
images/win/scripts/Installers/Validate-AWS-SAM.ps1
Normal file
@@ -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<br/>
|
||||
"@
|
||||
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
|
||||
24
images/win/scripts/Installers/Validate-AliyunCli.ps1
Normal file
24
images/win/scripts/Installers/Validate-AliyunCli.ps1
Normal file
@@ -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<br/>
|
||||
"@
|
||||
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
|
||||
@@ -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
|
||||
Add-ModuleDescription -ModuleName Az
|
||||
|
||||
14
images/win/scripts/Installers/Validate-DiskSpace.ps1
Normal file
14
images/win/scripts/Installers/Validate-DiskSpace.ps1
Normal file
@@ -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
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user