mirror of
https://github.com/actions/runner-images.git
synced 2025-12-15 22:26:56 +00:00
Merge branch 'master' into v-dmshib/update-gem-latest
This commit is contained in:
6
.github/ISSUE_TEMPLATE/bug-report.md
vendored
6
.github/ISSUE_TEMPLATE/bug-report.md
vendored
@@ -10,9 +10,11 @@ assignees: ''
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is, and why you consider it to be a bug.
|
||||
|
||||
**Area for Triage**: <!-- See https://github.com/actions/virtual-environments/tree/master/triage-rules.yml for areas -->
|
||||
**Area for Triage**:
|
||||
<!-- See https://github.com/actions/virtual-environments/tree/master/triage-rules.yml for areas -->
|
||||
|
||||
**Question, Bug, or Feature?**: <!-- Choose "Question", "Bug", or "Feature" -->
|
||||
**Question, Bug, or Feature?**:
|
||||
<!-- Choose "Question", "Bug", or "Feature" -->
|
||||
|
||||
**Virtual environments affected**
|
||||
- [ ] macOS 10.15
|
||||
|
||||
6
.github/ISSUE_TEMPLATE/tool-request.md
vendored
6
.github/ISSUE_TEMPLATE/tool-request.md
vendored
@@ -16,9 +16,11 @@ assignees: ''
|
||||
- Brief description of tool: <!--- Description -->
|
||||
- URL for tool's homepage: <!--- URL -->
|
||||
|
||||
**Area for Triage**: <!-- See https://github.com/actions/virtual-environments/tree/master/triage-rules.yml for areas -->
|
||||
**Area for Triage**:
|
||||
<!-- See https://github.com/actions/virtual-environments/tree/master/triage-rules.yml for areas -->
|
||||
|
||||
**Question, Bug, or Feature?**: <!-- Choose "Question", "Bug", or "Feature" -->
|
||||
**Question, Bug, or Feature?**:
|
||||
<!-- Choose "Question", "Bug", or "Feature" -->
|
||||
|
||||
**Virtual environments affected**
|
||||
- [ ] macOS 10.15
|
||||
|
||||
13
.github/workflows/issue-triager.yml
vendored
13
.github/workflows/issue-triager.yml
vendored
@@ -13,11 +13,24 @@ jobs:
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
- uses: damccorm/tag-ur-it@master
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
configuration-path: "./triage-rules.yml"
|
||||
|
||||
- if: failure()
|
||||
uses: actions/github-script@0.4.0
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
github.issues.addLabels({
|
||||
issue_number: context.issue,
|
||||
owner: context.owner,
|
||||
repo: context.repo,
|
||||
labels: ['needs triage']
|
||||
})
|
||||
|
||||
- name: Set Node.js 10.x
|
||||
uses: actions/setup-node@master
|
||||
with:
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 GitHub
|
||||
Copyright (c) 2020 GitHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
11
README.md
11
README.md
@@ -2,17 +2,18 @@
|
||||
This repository contains the code that we use to create the GitHub Actions [virtual environments](https://help.github.com/en/articles/software-in-virtual-environments-for-github-actions).
|
||||
Please use the issue templates to submit requests and bug reports related to the installed software.
|
||||
|
||||
If you need help with how to set up your workflow file or use a specific tool,
|
||||
If you need help with how to set up your workflow file or use a specific tool,
|
||||
check out the [GitHub Actions Community Forum](https://github.community/t5/GitHub-Actions/bd-p/actions).
|
||||
|
||||
## OS's offered
|
||||
We currently offer Linux, macOS, and Windows virtual environments:
|
||||
|
||||
[](https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu1804-README.md)
|
||||
[](https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu1604-README.md)
|
||||
[](https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md)
|
||||
[](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&redirect=1)
|
||||
[](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu16&redirect=1)
|
||||
[](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&redirect=1)
|
||||
[](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&redirect=1)
|
||||
|
||||
- **Linux**. We offer Ubuntu 16.04 and Ubuntu 18.04. We do not plan to offer other Linux distributions. If you want to build using other distributions with the hosted virtual environments, we suggest you use Docker. Alternatively, you can host your own VMs and make use of self-hosted runners.
|
||||
- **Linux**. We offer Ubuntu 16.04 and Ubuntu 18.04. We do not plan to offer other Linux distributions. If you want to build using other distributions with the hosted virtual environments, we suggest you use Docker. Alternatively, you can host your own VMs and make use of self-hosted runners.
|
||||
- **macOS**. We offer macOS Catalina 10.15.
|
||||
- **Windows**. We offer Windows Server 2016 and Windows Server 2019.
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ Function GenerateResourcesAndImage {
|
||||
Delete the resource group if it exists without user confirmation.
|
||||
|
||||
.EXAMPLE
|
||||
GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\azure-pipelines-image-generation" -ImageType Ubuntu1604 -AzureLocation "East US"
|
||||
GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\virtual-environments" -ImageType Ubuntu1604 -AzureLocation "East US"
|
||||
#>
|
||||
param (
|
||||
[Parameter(Mandatory = $True)]
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Hosted Ubuntu 1604 Image (Ubuntu 16.04.6 LTS)
|
||||
The following software is installed on machines in the Hosted Ubuntu 1604 (20191202.1) pool
|
||||
The following software is installed on machines in the Hosted Ubuntu 1604 (20200102.1) pool
|
||||
***
|
||||
- 7-Zip 9.20
|
||||
- Ansible (ansible 2.9.1)
|
||||
- Ansible (ansible 2.9.2)
|
||||
- AzCopy (azcopy 7.3.0-netcore)
|
||||
- Azure CLI (azure-cli 2.0.77)
|
||||
- Azure CLI (azure-cli 2.0.78)
|
||||
- Azure CLI (azure-devops 0.16.0)
|
||||
- Basic CLI:
|
||||
- curl
|
||||
@@ -29,7 +29,7 @@ The following software is installed on machines in the Hosted Ubuntu 1604 (20191
|
||||
- wget
|
||||
- zip
|
||||
- tzdata
|
||||
- AWS CLI (aws-cli/1.16.293 Python/2.7.12 Linux/4.15.0-1063-azure botocore/1.13.29)
|
||||
- AWS CLI (aws-cli/1.16.310 Python/2.7.12 Linux/4.15.0-1064-azure botocore/1.13.46)
|
||||
- build-essential
|
||||
- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042730.123 (branches/release_60))
|
||||
- CMake (cmake version 3.12.4)
|
||||
@@ -84,26 +84,28 @@ The following software is installed on machines in the Hosted Ubuntu 1604 (20191
|
||||
- 2.1.302
|
||||
- 2.1.301
|
||||
- 2.1.300
|
||||
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.5.6)
|
||||
- Firefox (Mozilla Firefox 70.0.1)
|
||||
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.1)
|
||||
- Firefox (Mozilla Firefox 71.0)
|
||||
- GNU C++ 7.4.0
|
||||
- Git (2.24.0)
|
||||
- Git Large File Storage (LFS) (2.9.1)
|
||||
- Git (2.24.1)
|
||||
- Git Large File Storage (LFS) (2.9.2)
|
||||
- Go 1.9 (go version go1.9.7 linux/amd64)
|
||||
- Go 1.10 (go version go1.10.8 linux/amd64)
|
||||
- Go 1.11 (go version go1.11.12 linux/amd64)
|
||||
- Go 1.12 (go version go1.12.7 linux/amd64)
|
||||
- Go 1.13 (go version go1.13 linux/amd64)
|
||||
- Google Chrome (Google Chrome 78.0.3904.108 )
|
||||
- Google Cloud SDK (272.0.0)
|
||||
- Google Chrome (Google Chrome 79.0.3945.88 )
|
||||
- Chromedriver (ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}))
|
||||
- Selenium server standalone
|
||||
- Google Cloud SDK (274.0.1)
|
||||
- Haskell Cabal (cabal-install version 2.0.0.1
|
||||
compiled using version 2.0.1.1 of the Cabal library )
|
||||
- Haskell Cabal (cabal-install version 2.2.0.0
|
||||
compiled using version 2.2.0.1 of the Cabal library )
|
||||
- Haskell Cabal (cabal-install version 2.4.1.0
|
||||
compiled using version 2.4.1.0 of the Cabal library )
|
||||
- Haskell Cabal (cabal-install version 3.0.0.0
|
||||
compiled using version 3.0.0.0 of the Cabal library )
|
||||
- Haskell Cabal (cabal-install version 3.0.1.0
|
||||
compiled using version 3.0.1.0 of the Cabal library )
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.0.2)
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.2.2)
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.4.4)
|
||||
@@ -113,8 +115,8 @@ compiled using version 3.0.0.0 of the Cabal library )
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.6.5)
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1)
|
||||
- Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2)
|
||||
- Heroku (heroku/7.35.0 linux-x64 node-v12.13.0)
|
||||
- HHVM (HipHop VM 4.33.0 (rel))
|
||||
- Heroku (heroku/7.35.1 linux-x64 node-v12.13.0)
|
||||
- HHVM (HipHop VM 4.38.0 (rel))
|
||||
- ImageMagick
|
||||
- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_242")
|
||||
- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_232")
|
||||
@@ -122,53 +124,54 @@ compiled using version 3.0.0.0 of the Cabal library )
|
||||
- Azul Zulu OpenJDK (12) (openjdk version "12.0.2" 2019-07-16)
|
||||
- Ant (Apache Ant(TM) version 1.9.6 compiled on July 20 2018)
|
||||
- Gradle 6.0.1
|
||||
- Maven (Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T15:06:16Z))
|
||||
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
|
||||
- Kind (v0.5.1)
|
||||
- kubectl (Client Version: v1.16.3)
|
||||
- kubectl (Client Version: v1.17.0)
|
||||
- helm (Client: v2.16.1+gbbdfe5e)
|
||||
- Leiningen (Leiningen 2.9.1 on Java 1.8.0_232 OpenJDK 64-Bit Server VM)
|
||||
- Mercurial (Mercurial Distributed SCM (version 4.4.1))
|
||||
- Miniconda (conda 4.7.12)
|
||||
- Mono (Mono JIT compiler version 6.4.0.198 (tarball Tue Sep 24 01:20:30 UTC 2019))
|
||||
- Mono (Mono JIT compiler version 6.6.0.161 (tarball Tue Dec 10 10:36:47 UTC 2019))
|
||||
- MySQL (mysql Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using EditLine wrapper)
|
||||
- MySQL Server (user:root password:root)
|
||||
- MS SQL Server Client Tools
|
||||
- Node.js (v12.13.1)
|
||||
- Node.js (v12.14.0)
|
||||
- Grunt (grunt-cli v1.2.0)
|
||||
- Gulp (CLI version: 2.2.0
|
||||
Local version: Unknown)
|
||||
- n (6.1.3)
|
||||
- Parcel (1.12.4)
|
||||
- TypeScript (Version 3.7.2)
|
||||
- Webpack (4.41.2)
|
||||
- TypeScript (Version 3.7.4)
|
||||
- Webpack (4.41.5)
|
||||
- Webpack CLI (3.3.10)
|
||||
- Yarn (1.19.2)
|
||||
- Yarn (1.21.1)
|
||||
- PhantomJS (2.1.1)
|
||||
- PHP 5.6 (PHP 5.6.40-14+ubuntu16.04.1+deb.sury.org+1 (cli) )
|
||||
- PHP 7.0 (PHP 7.0.33-13+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:43:06) ( NTS ))
|
||||
- PHP 7.1 (PHP 7.1.33-2+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:41:45) ( NTS ))
|
||||
- PHP 7.2 (PHP 7.2.25-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:41:59) ( NTS ))
|
||||
- PHP 7.3 (PHP 7.3.12-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:36:56) ( NTS ))
|
||||
- PHP 5.6 (PHP 5.6.40-15+ubuntu16.04.1+deb.sury.org+1 (cli) )
|
||||
- PHP 7.0 (PHP 7.0.33-14+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:55:16) ( NTS ))
|
||||
- PHP 7.1 (PHP 7.1.33-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:52:59) ( NTS ))
|
||||
- PHP 7.2 (PHP 7.2.26-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:57:40) ( NTS ))
|
||||
- PHP 7.3 (PHP 7.3.13-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:48:32) ( NTS ))
|
||||
- PHP 7.4 (PHP 7.4.1 (cli) (built: Dec 18 2019 14:44:04) ( NTS ))
|
||||
- Composer (Composer version 1.9.1 2019-11-01 17:20:17)
|
||||
- PHPUnit (PHPUnit 7.5.17 by Sebastian Bergmann and contributors.)
|
||||
- PHPUnit (PHPUnit 7.5.18 by Sebastian Bergmann and contributors.)
|
||||
- Pollinate
|
||||
- Powershell (PowerShell 6.2.3)
|
||||
- rustup (1.20.2)
|
||||
- rust (1.39.0)
|
||||
- cargo (1.39.0)
|
||||
- rustfmt (1.4.8-stable)
|
||||
- rustup (1.21.1)
|
||||
- rust (1.40.0)
|
||||
- cargo (1.40.0)
|
||||
- rustfmt (1.4.9-stable)
|
||||
- clippy (0.0.212)
|
||||
- rustdoc (1.39.0)
|
||||
- rustdoc (1.40.0)
|
||||
- bindgen (execute
|
||||
the
|
||||
0.52.0)
|
||||
- cbindgen (0.10.0)
|
||||
- sbt (1.3.4)
|
||||
- cbindgen (0.12.1)
|
||||
- sbt (1.3.6)
|
||||
- Sphinx Open Source Search Server
|
||||
- Subversion (svn, version 1.9.3 (r1718519))
|
||||
- Terraform (Terraform v0.12.16)
|
||||
- Terraform (Terraform v0.12.18)
|
||||
- Vcpkg 2019.09.12-unknownhash
|
||||
- Zeit Now CLI (16.6.0)
|
||||
- Zeit Now CLI (16.7.0)
|
||||
- Google Repository 58
|
||||
- Google Play services 49
|
||||
- Google APIs 24
|
||||
@@ -231,14 +234,16 @@ the
|
||||
- Az Module (1.6.0)
|
||||
- Az Module (2.3.2)
|
||||
- Az Module (2.6.0)
|
||||
- Az Module (2.8.0)
|
||||
- Az Module (3.1.0)
|
||||
- Cached container images
|
||||
- node:10 (Digest: sha256:be69034700545030c110f67ae22e0584ddd59eeb2af81e4bd7f16f3ba5fa93a6)
|
||||
- node:12 (Digest: sha256:88ee7d2a5e18d359b4b5750ecb50a9b238ab467397c306aeb9955f4f11be44ce)
|
||||
- buildpack-deps:stretch (Digest: sha256:5b4b7ee0ae71108d352f8f484b3bc113780068dad21bef7458ac3dd5211cc044)
|
||||
- debian:9 (Digest: sha256:99768ac883dc7d4f9c8f55dade9abb39afc1a3d737a8457dc5735ef868288cef)
|
||||
- debian:8 (Digest: sha256:9eaf4a70aeddf435bebc619383f3e3a178b8ad8c1f3948319cdf74b65918d156)
|
||||
- node:12-alpine (Digest: sha256:b556d8910b851c27c5c8922eeb55d94fe6dbaf878d24bf0c9a8c32ba21cd091a)
|
||||
- node:10-alpine (Digest: sha256:da8161962573bd6ab16b54a9bfa81a263458e5199074d0678d0556376b22bd22)
|
||||
- node:10 (Digest: sha256:49f77fd32e8e796f85581a8d2321c2a9f1b084e1f8b9baa02cb28bce49563ad5)
|
||||
- node:12 (Digest: sha256:f490ebb9c7d5dcf1a8a1e4d3b3a65e133be44d26abb66815ca1612ef69410c51)
|
||||
- buildpack-deps:stretch (Digest: sha256:d095aae2ecefdc786823e02b2cb0abc62b432202a49abd716c12cce37aee702b)
|
||||
- debian:9 (Digest: sha256:85c4668abb4f26e913152ba8fd04fca5f1c2345d3e2653855e6bb0acf461ed50)
|
||||
- debian:8 (Digest: sha256:8fc7649643ca1acd3940706613ea7b170762cfce6e7955a6afb387aa40e9f9ea)
|
||||
- node:10-alpine (Digest: sha256:8d664f80270a63e0734d38420e97e9f9764a0e9184383640973bded21bfa1382)
|
||||
- node:12-alpine (Digest: sha256:452cad05f6fd2a6fe03da8b9230c9c4ad356d205e00c1a9c29020c14ac5679f8)
|
||||
- alpine:3.10 (Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a)
|
||||
- jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e)
|
||||
- alpine:3.9 (Digest: sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a)
|
||||
@@ -251,6 +256,8 @@ the
|
||||
- Python 3.6.9
|
||||
- Python 3.7.5
|
||||
- Python 3.8.0
|
||||
- PyPy 2.7.13
|
||||
- PyPy 3.6.9
|
||||
- Ruby:
|
||||
- Ruby 2.4.6
|
||||
- Ruby 2.5.5
|
||||
@@ -259,6 +266,4 @@ the
|
||||
- pip (pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7))
|
||||
- Python3 (Python 3.5.2)
|
||||
- pip3 (pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5))
|
||||
- PyPy2 ([PyPy 7.1.0 with GCC 6.2.0 20160901])
|
||||
- PyPy3 ([PyPy 7.2.0 with GCC 6.2.0 20160901])
|
||||
- Boost C++ Libraries 1.69.0
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Hosted Ubuntu 1804 Image (Ubuntu 18.04.3 LTS)
|
||||
The following software is installed on machines in the Hosted Ubuntu 1804 (v20191202.1) pool
|
||||
The following software is installed on machines in the Hosted Ubuntu 1804 (v20200102.1) pool
|
||||
***
|
||||
- 7-Zip 16.02
|
||||
- Ansible (ansible 2.9.1)
|
||||
- Ansible (ansible 2.9.2)
|
||||
- AzCopy (azcopy 7.3.0-netcore)
|
||||
- Azure CLI (azure-cli 2.0.77)
|
||||
- Azure CLI (azure-cli 2.0.78)
|
||||
- Azure CLI (azure-devops 0.16.0)
|
||||
- Basic CLI:
|
||||
- curl
|
||||
@@ -29,7 +29,7 @@ The following software is installed on machines in the Hosted Ubuntu 1804 (v2019
|
||||
- wget
|
||||
- zip
|
||||
- tzdata
|
||||
- AWS CLI (aws-cli/1.16.293 Python/2.7.15+ Linux/5.0.0-1025-azure botocore/1.13.29)
|
||||
- AWS CLI (aws-cli/1.16.310 Python/2.7.17 Linux/5.0.0-1027-azure botocore/1.13.46)
|
||||
- build-essential
|
||||
- Clang 6.0 (clang version 6.0.1-svn334776-1~exp1~20190309042703.125 (branches/release_60))
|
||||
- CMake (cmake version 3.12.4)
|
||||
@@ -86,24 +86,26 @@ The following software is installed on machines in the Hosted Ubuntu 1804 (v2019
|
||||
- 2.1.302
|
||||
- 2.1.301
|
||||
- 2.1.300
|
||||
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.5.6)
|
||||
- Firefox (Mozilla Firefox 70.0.1)
|
||||
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.1)
|
||||
- Firefox (Mozilla Firefox 71.0)
|
||||
- GNU C++ 7.4.0
|
||||
- Git (2.24.0)
|
||||
- Git Large File Storage (LFS) (2.9.1)
|
||||
- Git (2.24.1)
|
||||
- Git Large File Storage (LFS) (2.9.2)
|
||||
- Go 1.11 (go version go1.11.12 linux/amd64)
|
||||
- Go 1.12 (go version go1.12.7 linux/amd64)
|
||||
- Go 1.13 (go version go1.13 linux/amd64)
|
||||
- Google Chrome (Google Chrome 78.0.3904.108 )
|
||||
- Google Cloud SDK (272.0.0)
|
||||
- Google Chrome (Google Chrome 79.0.3945.88 )
|
||||
- Chromedriver (ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}))
|
||||
- Selenium server standalone
|
||||
- Google Cloud SDK (274.0.1)
|
||||
- Haskell Cabal (cabal-install version 2.0.0.1
|
||||
compiled using version 2.0.1.1 of the Cabal library )
|
||||
- Haskell Cabal (cabal-install version 2.2.0.0
|
||||
compiled using version 2.2.0.1 of the Cabal library )
|
||||
- Haskell Cabal (cabal-install version 2.4.1.0
|
||||
compiled using version 2.4.1.0 of the Cabal library )
|
||||
- Haskell Cabal (cabal-install version 3.0.0.0
|
||||
compiled using version 3.0.0.0 of the Cabal library )
|
||||
- Haskell Cabal (cabal-install version 3.0.1.0
|
||||
compiled using version 3.0.1.0 of the Cabal library )
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.0.2)
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.2.2)
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.4.4)
|
||||
@@ -113,59 +115,61 @@ compiled using version 3.0.0.0 of the Cabal library )
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.6.5)
|
||||
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1)
|
||||
- Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2)
|
||||
- Heroku (heroku/7.35.0 linux-x64 node-v12.13.0)
|
||||
- HHVM (HipHop VM 4.33.0 (rel))
|
||||
- Heroku (heroku/7.35.1 linux-x64 node-v12.13.0)
|
||||
- HHVM (HipHop VM 4.38.0 (rel))
|
||||
- ImageMagick
|
||||
- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_242")
|
||||
- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_232")
|
||||
- Azul Zulu OpenJDK (11) (openjdk version "11.0.5" 2019-10-15 LTS)
|
||||
- Azul Zulu OpenJDK (12) (openjdk version "12.0.2" 2019-07-16)
|
||||
- Ant (Apache Ant(TM) version 1.10.5 compiled on March 28 2019)
|
||||
- Gradle 5.6.2
|
||||
- Maven (Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T19:00:29Z))
|
||||
- kubectl (Client Version: v1.16.0)
|
||||
- helm (Client: v2.14.3+g0e7f3b6)
|
||||
- Leiningen (Leiningen 2.9.1 on Java 1.8.0_222 OpenJDK 64-Bit Server VM)
|
||||
- Gradle 6.0.1
|
||||
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
|
||||
- Kind (v0.5.1)
|
||||
- kubectl (Client Version: v1.17.0)
|
||||
- helm (Client: v2.16.1+gbbdfe5e)
|
||||
- Leiningen (Leiningen 2.9.1 on Java 1.8.0_232 OpenJDK 64-Bit Server VM)
|
||||
- Mercurial (Mercurial Distributed SCM (version 4.5.3))
|
||||
- Miniconda (conda 4.7.12)
|
||||
- Mono (Mono JIT compiler version 6.4.0.198 (tarball Tue Sep 24 01:21:28 UTC 2019))
|
||||
- Mono (Mono JIT compiler version 6.6.0.161 (tarball Tue Dec 10 10:36:32 UTC 2019))
|
||||
- MySQL (mysql Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using EditLine wrapper)
|
||||
- MySQL Server (user:root password:root)
|
||||
- MS SQL Server Client Tools
|
||||
- Node.js (v12.13.1)
|
||||
- Node.js (v12.14.0)
|
||||
- Grunt (grunt-cli v1.2.0)
|
||||
- Gulp (CLI version: 2.2.0
|
||||
Local version: Unknown)
|
||||
- n (6.1.3)
|
||||
- Parcel (1.12.4)
|
||||
- TypeScript (Version 3.7.2)
|
||||
- Webpack (4.41.2)
|
||||
- TypeScript (Version 3.7.4)
|
||||
- Webpack (4.41.5)
|
||||
- Webpack CLI (3.3.10)
|
||||
- Yarn (1.19.2)
|
||||
- Yarn (1.21.1)
|
||||
- PhantomJS (2.1.1)
|
||||
- PHP 7.1 (PHP 7.1.33-2+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:42:07) ( NTS ))
|
||||
- PHP 7.2 (PHP 7.2.25-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:42:26) ( NTS ))
|
||||
- PHP 7.3 (PHP 7.3.12-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 28 2019 07:37:16) ( NTS ))
|
||||
- PHP 7.1 (PHP 7.1.33-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:53:18) ( NTS ))
|
||||
- PHP 7.2 (PHP 7.2.26-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:58:00) ( NTS ))
|
||||
- PHP 7.3 (PHP 7.3.13-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Dec 18 2019 14:48:49) ( NTS ))
|
||||
- PHP 7.4 (PHP 7.4.1 (cli) (built: Dec 18 2019 14:44:22) ( NTS ))
|
||||
- Composer (Composer version 1.9.1 2019-11-01 17:20:17)
|
||||
- PHPUnit (PHPUnit 7.5.17 by Sebastian Bergmann and contributors.)
|
||||
- PHPUnit (PHPUnit 7.5.18 by Sebastian Bergmann and contributors.)
|
||||
- Pollinate
|
||||
- Powershell (PowerShell 6.2.3)
|
||||
- rustup (1.20.2)
|
||||
- rust (1.39.0)
|
||||
- cargo (1.39.0)
|
||||
- rustfmt (1.4.8-stable)
|
||||
- rustup (1.21.1)
|
||||
- rust (1.40.0)
|
||||
- cargo (1.40.0)
|
||||
- rustfmt (1.4.9-stable)
|
||||
- clippy (0.0.212)
|
||||
- rustdoc (1.39.0)
|
||||
- rustdoc (1.40.0)
|
||||
- bindgen (execute
|
||||
the
|
||||
0.52.0)
|
||||
- cbindgen (0.10.0)
|
||||
- sbt (1.3.4)
|
||||
- cbindgen (0.12.1)
|
||||
- sbt (1.3.6)
|
||||
- Sphinx Open Source Search Server
|
||||
- Subversion (svn, version 1.9.7 (r1800392))
|
||||
- Terraform (Terraform v0.12.16)
|
||||
- Terraform (Terraform v0.12.18)
|
||||
- Vcpkg 2019.09.12-unknownhash
|
||||
- Zeit Now CLI (16.6.0)
|
||||
- Zeit Now CLI (16.7.0)
|
||||
- Google Repository 58
|
||||
- Google Play services 49
|
||||
- Google APIs 24
|
||||
@@ -222,14 +226,16 @@ the
|
||||
- Az Module (1.6.0)
|
||||
- Az Module (2.3.2)
|
||||
- Az Module (2.6.0)
|
||||
- Az Module (2.8.0)
|
||||
- Az Module (3.1.0)
|
||||
- Cached container images
|
||||
- node:10 (Digest: sha256:be69034700545030c110f67ae22e0584ddd59eeb2af81e4bd7f16f3ba5fa93a6)
|
||||
- node:12 (Digest: sha256:88ee7d2a5e18d359b4b5750ecb50a9b238ab467397c306aeb9955f4f11be44ce)
|
||||
- buildpack-deps:stretch (Digest: sha256:5b4b7ee0ae71108d352f8f484b3bc113780068dad21bef7458ac3dd5211cc044)
|
||||
- debian:9 (Digest: sha256:99768ac883dc7d4f9c8f55dade9abb39afc1a3d737a8457dc5735ef868288cef)
|
||||
- debian:8 (Digest: sha256:9eaf4a70aeddf435bebc619383f3e3a178b8ad8c1f3948319cdf74b65918d156)
|
||||
- node:12-alpine (Digest: sha256:b556d8910b851c27c5c8922eeb55d94fe6dbaf878d24bf0c9a8c32ba21cd091a)
|
||||
- node:10-alpine (Digest: sha256:da8161962573bd6ab16b54a9bfa81a263458e5199074d0678d0556376b22bd22)
|
||||
- node:10 (Digest: sha256:49f77fd32e8e796f85581a8d2321c2a9f1b084e1f8b9baa02cb28bce49563ad5)
|
||||
- node:12 (Digest: sha256:f490ebb9c7d5dcf1a8a1e4d3b3a65e133be44d26abb66815ca1612ef69410c51)
|
||||
- buildpack-deps:stretch (Digest: sha256:d095aae2ecefdc786823e02b2cb0abc62b432202a49abd716c12cce37aee702b)
|
||||
- debian:9 (Digest: sha256:85c4668abb4f26e913152ba8fd04fca5f1c2345d3e2653855e6bb0acf461ed50)
|
||||
- debian:8 (Digest: sha256:8fc7649643ca1acd3940706613ea7b170762cfce6e7955a6afb387aa40e9f9ea)
|
||||
- node:10-alpine (Digest: sha256:8d664f80270a63e0734d38420e97e9f9764a0e9184383640973bded21bfa1382)
|
||||
- node:12-alpine (Digest: sha256:452cad05f6fd2a6fe03da8b9230c9c4ad356d205e00c1a9c29020c14ac5679f8)
|
||||
- alpine:3.10 (Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a)
|
||||
- jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e)
|
||||
- alpine:3.9 (Digest: sha256:7746df395af22f04212cd25a92c1d6dbc5a06a0ca9579a229ef43008d4d1302a)
|
||||
@@ -242,14 +248,14 @@ the
|
||||
- Python 3.6.9
|
||||
- Python 3.7.5
|
||||
- Python 3.8.0
|
||||
- PyPy 2.7.13
|
||||
- PyPy 3.6.9
|
||||
- Ruby:
|
||||
- Ruby 2.4.6
|
||||
- Ruby 2.5.5
|
||||
- Ruby 2.6.3
|
||||
- Python (Python 2.7.15+)
|
||||
- Python (Python 2.7.17)
|
||||
- pip (pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7))
|
||||
- Python3 (Python 3.6.9)
|
||||
- pip3 (pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6))
|
||||
- PyPy2 ([PyPy 7.1.0 with GCC 6.2.0 20160901])
|
||||
- PyPy3 ([PyPy 7.2.0 with GCC 6.2.0 20160901])
|
||||
- Boost C++ Libraries 1.69.0
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Name of the hosted pool this image will support
|
||||
POOL_NAME="Hosted Ubuntu 1604"
|
||||
# Name of the pool supported by this image
|
||||
POOL_NAME="Ubuntu 1604"
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Name of the hosted pool this image will support
|
||||
POOL_NAME="Hosted Ubuntu 1804"
|
||||
# Name of pool supported by this image
|
||||
POOL_NAME="Ubuntu 1804"
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
AddTitle "Hosted Ubuntu 1604 Image ($(lsb_release -ds))"
|
||||
WriteItem "The following software is installed on machines in the Hosted Ubuntu 1604 ($IMAGE_VERSION) pool"
|
||||
AddTitle "$(lsb_release -ds)"
|
||||
WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
|
||||
WriteItem "***"
|
||||
|
||||
@@ -10,9 +10,6 @@ source $HELPER_SCRIPTS/apt.sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "Install curl"
|
||||
apt-get install -y --no-install-recommends curl
|
||||
|
||||
echo "Install dnsutils"
|
||||
apt-get install -y --no-install-recommends dnsutils
|
||||
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
## File: hosted-tool-cache.sh
|
||||
## Desc: Downloads and installs hosted tools cache
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
# Fail out if any setups fail
|
||||
set -e
|
||||
|
||||
# Download hosted tool cache
|
||||
AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
||||
echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment
|
||||
azcopy --recursive \
|
||||
--source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/ubuntu-1804 \
|
||||
--destination $AGENT_TOOLSDIRECTORY
|
||||
|
||||
# Install tools from hosted tool cache
|
||||
original_directory=$PWD
|
||||
setups=$(find $AGENT_TOOLSDIRECTORY -name setup.sh)
|
||||
for setup in $setups; do
|
||||
chmod +x $setup;
|
||||
cd $(dirname $setup);
|
||||
./$(basename $setup);
|
||||
cd $original_directory;
|
||||
done;
|
||||
|
||||
DocumentInstalledItem "Python:"
|
||||
pythons=$(ls $AGENT_TOOLSDIRECTORY/Python)
|
||||
for python in $pythons; do
|
||||
DocumentInstalledItemIndent "Python $python"
|
||||
done;
|
||||
|
||||
# PyPy is also configured using the setup-python action
|
||||
pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy)
|
||||
for pypy in $pypys; do
|
||||
DocumentInstalledItemIndent "PyPy $pypy"
|
||||
# Add symlinks for pypy2 and pypy3 to usr/local/bin, there should only be 2 versions of PyPy in the tools cache that is downloaded
|
||||
if [ ${pypy:0:1} -eq "3" ] ; then
|
||||
# add pypy 3.X to PATH
|
||||
ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy3 /usr/local/bin/pypy3
|
||||
else
|
||||
# add pypy 2.X to PATH
|
||||
ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy /usr/local/bin/pypy
|
||||
fi
|
||||
done;
|
||||
|
||||
DocumentInstalledItem "Ruby:"
|
||||
rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby)
|
||||
for ruby in $rubys; do
|
||||
DocumentInstalledItemIndent "Ruby $ruby"
|
||||
done;
|
||||
@@ -7,6 +7,6 @@
|
||||
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
AddTitle "Hosted Ubuntu 1804 Image ($(lsb_release -ds))"
|
||||
WriteItem "The following software is installed on machines in the Hosted Ubuntu 1804 (v$IMAGE_VERSION) pool"
|
||||
AddTitle "$(lsb_release -ds)"
|
||||
WriteItem "The following software is installed on machines with the $IMAGE_VERSION update."
|
||||
WriteItem "***"
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
BOOST_ZIP_PATH=/opt/hostedtoolcache/Boost
|
||||
BOOST_LIB=/usr/local/share/boost
|
||||
|
||||
# Install Boost
|
||||
@@ -15,9 +14,6 @@ for BOOST_VERSION in ${BOOST_VERSIONS//,/ }
|
||||
do
|
||||
BOOST_SYMLINK_VER=`echo "${BOOST_VERSION//[.]/_}"`
|
||||
BOOST_ROOT="BOOST_ROOT_$BOOST_SYMLINK_VER"
|
||||
BOOST_ZIP="boost_`echo $BOOST_VERSION`_gcc.zip"
|
||||
|
||||
unzip $BOOST_ZIP_PATH/$BOOST_ZIP -d $BOOST_LIB
|
||||
|
||||
echo "$BOOST_ROOT=$BOOST_LIB/$BOOST_VERSION" | tee -a /etc/environment
|
||||
if [[ $BOOST_VERSION == $BOOST_DEFAULT ]]; then
|
||||
@@ -26,6 +22,3 @@ do
|
||||
|
||||
DocumentInstalledItem "Boost C++ Libraries $BOOST_VERSION"
|
||||
done
|
||||
|
||||
# Deleting archives with Boost Libraries
|
||||
rm -rf $BOOST_ZIP_PATH
|
||||
|
||||
@@ -28,4 +28,4 @@ done
|
||||
|
||||
# Document what was added to the image
|
||||
echo "Lastly, documenting what we added to the metadata file"
|
||||
DocumentInstalledItem "Clang 6.0 ($(clang-6.0 --version | head -n 1))"
|
||||
DocumentInstalledItem "Clang 6.0 ($(clang-6.0 --version | head -n 1 | sed 's/~/\\~/g'))"
|
||||
|
||||
@@ -12,7 +12,7 @@ echo "Checking to see if the installer script has already been run"
|
||||
if command -v cmake; then
|
||||
echo "Example variable already set to $EXAMPLE_VAR"
|
||||
else
|
||||
curl -sL https://cmake.org/files/v3.12/cmake-3.12.4-Linux-x86_64.sh -o cmakeinstall.sh \
|
||||
curl -sL https://cmake.org/files/v3.16/cmake-3.16.2-Linux-x86_64.sh -o cmakeinstall.sh \
|
||||
&& chmod +x cmakeinstall.sh \
|
||||
&& ./cmakeinstall.sh --prefix=/usr/local --exclude-subdir \
|
||||
&& rm cmakeinstall.sh
|
||||
|
||||
@@ -43,6 +43,7 @@ CHROMEDRIVER_BIN="/usr/bin/chromedriver"
|
||||
mv "chromedriver" $CHROMEDRIVER_BIN
|
||||
chown root:root $CHROMEDRIVER_BIN
|
||||
chmod +x $CHROMEDRIVER_BIN
|
||||
echo "CHROMEWEBDRIVER=$CHROMEDRIVER_BIN" | tee -a /etc/environment
|
||||
|
||||
# Run tests to determine that the chromedriver installed as expected
|
||||
echo "Testing to make sure that script performed as expected, and basic scenarios work"
|
||||
@@ -52,7 +53,7 @@ if ! command -v chromedriver; then
|
||||
fi
|
||||
|
||||
echo "Lastly, documenting what we added to the metadata file"
|
||||
DocumentInstalledItem "Chromedriver ($(chromedriver --version))"
|
||||
DocumentInstalledItem "Chromedriver ($(chromedriver --version)); Chrome Driver is available via CHROMEWEBDRIVER environment variable"
|
||||
|
||||
# Determine latest selenium standalone server version
|
||||
SELENIUM_LATEST_VERSION_URL=https://api.github.com/repos/SeleniumHQ/selenium/releases/latest
|
||||
@@ -61,7 +62,7 @@ SELENIUM_VERSION_MAJOR_MINOR=$(echo $SELENIUM_VERSION | cut -d '.' -f 1,2)
|
||||
|
||||
# Download selenium standalone server
|
||||
echo "Downloading selenium-server-standalone v$SELENIUM_VERSION..."
|
||||
SELENIUM_JAR_NAME=selenium-server-standalone-$SELENIUM_VERSION.jar
|
||||
SELENIUM_JAR_NAME="selenium-server-standalone-$SELENIUM_VERSION.jar"
|
||||
wget https://selenium-release.storage.googleapis.com/$SELENIUM_VERSION_MAJOR_MINOR/$SELENIUM_JAR_NAME
|
||||
|
||||
echo "Testing to make sure that script performed as expected, and basic scenarios work"
|
||||
@@ -70,8 +71,9 @@ if [ ! -f "$SELENIUM_JAR_NAME" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mv "selenium-server-standalone-$SELENIUM_VERSION.jar" "/usr/share/java/selenium-server-standalone.jar"
|
||||
echo "CLASSPATH=/usr/share/java/selenium-server-standalone.jar:.:$CLASSPATH" | tee -a /etc/environment
|
||||
SELENIUM_JAR_PATH="/usr/share/java/selenium-server-standalone.jar"
|
||||
mv $SELENIUM_JAR_NAME $SELENIUM_JAR_PATH
|
||||
echo "SELENIUM_JAR_PATH=$SELENIUM_JAR_PATH" | tee -a /etc/environment
|
||||
|
||||
echo "Lastly, documenting what we added to the metadata file"
|
||||
DocumentInstalledItem "Selenium server standalone"
|
||||
DocumentInstalledItem "Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)"
|
||||
|
||||
@@ -10,21 +10,23 @@ source $HELPER_SCRIPTS/document.sh
|
||||
# Fail out if any setups fail
|
||||
set -e
|
||||
|
||||
# Download hosted tool cache
|
||||
AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
||||
mkdir $AGENT_TOOLSDIRECTORY
|
||||
echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment
|
||||
azcopy --recursive \
|
||||
--source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/linux \
|
||||
--destination $AGENT_TOOLSDIRECTORY
|
||||
|
||||
# Install tools from hosted tool cache
|
||||
original_directory=$PWD
|
||||
setups=$(find $AGENT_TOOLSDIRECTORY -name setup.sh)
|
||||
for setup in $setups; do
|
||||
chmod +x $setup;
|
||||
cd $(dirname $setup);
|
||||
./$(basename $setup);
|
||||
cd $original_directory;
|
||||
chmod -R 777 $AGENT_TOOLSDIRECTORY
|
||||
|
||||
echo "Installing npm-toolcache..."
|
||||
TOOLSET_PATH="$INSTALLER_SCRIPT_FOLDER/toolcache.json"
|
||||
|
||||
PACKAGE_LIST=($(jq -r 'keys | .[]' $TOOLSET_PATH))
|
||||
|
||||
for PACKAGE_NAME in ${PACKAGE_LIST[@]}; do
|
||||
PACKAGE_VERSIONS=($(jq -r ".[\"$PACKAGE_NAME\"] | .[]" $TOOLSET_PATH))
|
||||
for PACKAGE_VERSION in ${PACKAGE_VERSIONS[@]}; do
|
||||
echo "Install ${PACKAGE_NAME}@${PACKAGE_VERSION}"
|
||||
npm install ${PACKAGE_NAME}@${PACKAGE_VERSION} --registry=${TOOLCACHE_REGISTRY}
|
||||
done;
|
||||
done;
|
||||
|
||||
DocumentInstalledItem "Python:"
|
||||
@@ -33,22 +35,14 @@ for python in $pythons; do
|
||||
DocumentInstalledItemIndent "Python $python"
|
||||
done;
|
||||
|
||||
# PyPy is also configured using the setup-python action
|
||||
pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy)
|
||||
for pypy in $pypys; do
|
||||
DocumentInstalledItemIndent "PyPy $pypy"
|
||||
# Add symlinks for pypy2 and pypy3 to usr/local/bin, there should only be 2 versions of PyPy in the tools cache that is downloaded
|
||||
if [ ${pypy:0:1} -eq "3" ] ; then
|
||||
# add pypy 3.X to PATH
|
||||
ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy3 /usr/local/bin/pypy3
|
||||
else
|
||||
# add pypy 2.X to PATH
|
||||
ln -s $AGENT_TOOLSDIRECTORY/PyPy/$pypy/x64/bin/pypy /usr/local/bin/pypy
|
||||
fi
|
||||
done;
|
||||
|
||||
DocumentInstalledItem "Ruby:"
|
||||
rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby)
|
||||
for ruby in $rubys; do
|
||||
DocumentInstalledItemIndent "Ruby $ruby"
|
||||
done;
|
||||
done;
|
||||
|
||||
DocumentInstalledItem "PyPy:"
|
||||
pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy)
|
||||
for pypy in $pypys; do
|
||||
DocumentInstalledItemIndent "PyPy $pypy"
|
||||
done;
|
||||
@@ -6,65 +6,69 @@
|
||||
|
||||
# Must be procecessed after tool cache setup(hosted-tool-cache.sh).
|
||||
|
||||
Test_Hostedtoolcache_Tool() {
|
||||
TOOL_NAME=$1
|
||||
TOOL_EXEC_TEST=$2
|
||||
|
||||
if [ -d "$AGENT_TOOLSDIRECTORY/$TOOL_NAME" ]; then
|
||||
cd $AGENT_TOOLSDIRECTORY/$TOOL_NAME
|
||||
|
||||
tool_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||"))
|
||||
|
||||
echo "--------------------------------------------"
|
||||
echo "$TOOL_NAME versions folders: ${tool_dirs[@]}"
|
||||
echo "--------------------------------------------"
|
||||
|
||||
if [ -n "$tool_dirs" ]; then
|
||||
tool_key=$(echo $TOOL_NAME | tr "[:upper:]" "[:lower:]")
|
||||
package_versions=($(jq -r ".[\"${TOOLCACHE_KEY_VALUE[$tool_key]}\"] | .[]" "$INSTALLER_SCRIPT_FOLDER/toolcache.json"))
|
||||
|
||||
for tool_version in ${package_versions[@]}
|
||||
do
|
||||
version_dir=$(find . -name "$tool_version.*" -print -quit)
|
||||
|
||||
echo "Test $AGENT_TOOLSDIRECTORY/$TOOL_NAME/$version_dir:"
|
||||
|
||||
actual_version=$(eval $AGENT_TOOLSDIRECTORY/$TOOL_NAME/$version_dir/$TOOL_EXEC_TEST)
|
||||
|
||||
if [ "$actual_version" = "$tool_version" ]; then
|
||||
echo "Passed!"
|
||||
else
|
||||
echo "Expected: $tool_version; Actual: $actual_version"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
done;
|
||||
else
|
||||
echo "$AGENT_TOOLSDIRECTORY/$tool_version does not include any folders"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "$AGENT_TOOLSDIRECTORY/$tool_version does not exist"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Fail out if any tests fail
|
||||
set -e
|
||||
|
||||
# define dictionary for key_alias and its values
|
||||
declare -A TOOLCACHE_KEY_VALUE
|
||||
|
||||
package_list=($(jq -r 'keys | .[]' "$INSTALLER_SCRIPT_FOLDER/toolcache.json"))
|
||||
|
||||
for package_name in ${package_list[@]}; do
|
||||
# get key alias
|
||||
key_alias=$(echo $package_name | cut -f2 -d-)
|
||||
|
||||
# set dictionary
|
||||
TOOLCACHE_KEY_VALUE+=(["$key_alias"]="$package_name")
|
||||
done;
|
||||
|
||||
AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
||||
|
||||
# Python test
|
||||
if [ -d "$AGENT_TOOLSDIRECTORY/Python" ]; then
|
||||
cd $AGENT_TOOLSDIRECTORY/Python
|
||||
python_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||"))
|
||||
echo "Python versions folders: ${python_dirs[@]}"
|
||||
echo "------------------------------------------"
|
||||
if [ -n "$python_dirs" ]; then
|
||||
for version_dir in "${python_dirs[@]}"
|
||||
do
|
||||
echo "Test $AGENT_TOOLSDIRECTORY/Python/$version_dir:"
|
||||
expected_ver=$(echo $version_dir | egrep -o '[0-9]+\.[0-9]+')
|
||||
actual_ver=$($AGENT_TOOLSDIRECTORY/Python/$version_dir/x64/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+')
|
||||
|
||||
if [ "$expected_ver" = "$actual_ver" ]; then
|
||||
echo "Passed!"
|
||||
else
|
||||
echo "Expected: $expected_ver; Actual: $actual_ver"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "$AGENT_TOOLSDIRECTORY/Python does not include any folders"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "$AGENT_TOOLSDIRECTORY/Python does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ruby test
|
||||
if [ -d "$AGENT_TOOLSDIRECTORY/Ruby" ]; then
|
||||
cd $AGENT_TOOLSDIRECTORY/Ruby
|
||||
ruby_dirs=($(find . -mindepth 1 -maxdepth 1 -type d | sed "s|^\./||"))
|
||||
echo "Ruby versions folders: ${ruby_dirs[@]}"
|
||||
echo "--------------------------------------"
|
||||
if [ -n "$ruby_dirs" ]; then
|
||||
for version_dir in "${ruby_dirs[@]}"
|
||||
do
|
||||
echo "Test $AGENT_TOOLSDIRECTORY/Ruby/$version_dir:"
|
||||
expected_ver=$(echo $version_dir | egrep -o '[0-9]+\.[0-9]+')
|
||||
actual_ver=$($AGENT_TOOLSDIRECTORY/Ruby/$version_dir/x64/bin/ruby -e "puts RUBY_VERSION" | egrep -o '[0-9]+\.[0-9]+')
|
||||
|
||||
if [ "$expected_ver" = "$actual_ver" ]; then
|
||||
echo "Passed!"
|
||||
else
|
||||
echo "Expected: $expected_ver; Actual: $actual_ver"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "$AGENT_TOOLSDIRECTORY/Ruby does not include any folders"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "$AGENT_TOOLSDIRECTORY/Ruby does not exist"
|
||||
exit 1
|
||||
fi
|
||||
Test_Hostedtoolcache_Tool "Python" "x64/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+'"
|
||||
Test_Hostedtoolcache_Tool "Ruby" "x64/bin/ruby -e 'puts RUBY_VERSION' | egrep -o '[0-9]+\.[0-9]+'"
|
||||
Test_Hostedtoolcache_Tool "PyPy" "x64/bin/python -c 'import sys;print(sys.version)'| head -1 | egrep -o '[0-9]+\.[0-9]+' | cut -d '.' -f 1"
|
||||
|
||||
14
images/linux/toolcache-1604.json
Normal file
14
images/linux/toolcache-1604.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"toolcache-python-ubuntu-1604-x64": [
|
||||
"2.7", "3.5", "3.6", "3.7", "3.8"
|
||||
],
|
||||
"toolcache-ruby-ubuntu-1604-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"toolcache-pypy-ubuntu-1604-x64": [
|
||||
"2", "3"
|
||||
],
|
||||
"toolcache-boost-ubuntu-1604-x64": [
|
||||
"1.69"
|
||||
]
|
||||
}
|
||||
14
images/linux/toolcache-1804.json
Normal file
14
images/linux/toolcache-1804.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"toolcache-python-ubuntu-1804-x64": [
|
||||
"2.7", "3.5", "3.6", "3.7", "3.8"
|
||||
],
|
||||
"toolcache-ruby-ubuntu-1804-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"toolcache-pypy-ubuntu-1804-x64": [
|
||||
"2", "3"
|
||||
],
|
||||
"toolcache-boost-ubuntu-1804-x64": [
|
||||
"1.69"
|
||||
]
|
||||
}
|
||||
@@ -20,8 +20,10 @@
|
||||
"helper_script_folder": "/imagegeneration/helpers",
|
||||
"vm_size": "Standard_DS2_v2",
|
||||
"capture_name_prefix": "packer",
|
||||
"image_version": "dev"
|
||||
"image_version": "dev",
|
||||
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/"
|
||||
},
|
||||
"sensitive-variables": ["client_secret"],
|
||||
"builders": [
|
||||
{
|
||||
"type": "azure-arm",
|
||||
@@ -167,19 +169,26 @@
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{template_dir}}/toolcache-1604.json",
|
||||
"destination": "{{user `installer_script_folder`}}/toolcache.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts":[
|
||||
"{{template_dir}}/scripts/installers/1604/android.sh",
|
||||
"{{template_dir}}/scripts/installers/1604/azpowershell.sh",
|
||||
"{{template_dir}}/scripts/helpers/containercache.sh",
|
||||
"{{template_dir}}/scripts/installers/1604/hosted-tool-cache.sh",
|
||||
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
||||
"{{template_dir}}/scripts/installers/python.sh",
|
||||
"{{template_dir}}/scripts/installers/test-toolcache.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"METADATA_FILE={{user `metadata_file`}}",
|
||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}"
|
||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
||||
"TOOLCACHE_REGISTRY={{user `toolcache_registry`}}",
|
||||
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
|
||||
@@ -20,8 +20,10 @@
|
||||
"helper_script_folder": "/imagegeneration/helpers",
|
||||
"vm_size": "Standard_DS2_v2",
|
||||
"capture_name_prefix": "packer",
|
||||
"image_version": "dev"
|
||||
"image_version": "dev",
|
||||
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/"
|
||||
},
|
||||
"sensitive-variables": ["client_secret"],
|
||||
"builders": [
|
||||
{
|
||||
"type": "azure-arm",
|
||||
@@ -170,19 +172,26 @@
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{template_dir}}/toolcache-1804.json",
|
||||
"destination": "{{user `installer_script_folder`}}/toolcache.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts":[
|
||||
"{{template_dir}}/scripts/installers/1804/android.sh",
|
||||
"{{template_dir}}/scripts/installers/1804/azpowershell.sh",
|
||||
"{{template_dir}}/scripts/helpers/containercache.sh",
|
||||
"{{template_dir}}/scripts/installers/1804/hosted-tool-cache.sh",
|
||||
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
||||
"{{template_dir}}/scripts/installers/python.sh",
|
||||
"{{template_dir}}/scripts/installers/test-toolcache.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"METADATA_FILE={{user `metadata_file`}}",
|
||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}"
|
||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
|
||||
"TOOLCACHE_REGISTRY={{user `toolcache_registry`}}",
|
||||
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
---
|
||||
title: GitHub Hosted Github Mojave 10.15 VM Image Updates
|
||||
description: Software used on build machines
|
||||
date: Week 51
|
||||
date: Week 2
|
||||
---
|
||||
|
||||
#### Xcode 11.1 set by default
|
||||
#### Xcode 11.2.1 set by default
|
||||
|
||||
## Operating System
|
||||
|
||||
- OS X 10.15.1 (19B88) **Catalina**
|
||||
- OS X 10.15.2 (19C57) **Catalina**
|
||||
|
||||
## Installed Software
|
||||
|
||||
@@ -19,29 +19,29 @@ date: Week 51
|
||||
- Java 11 : OpenJDK Runtime Environment Zulu11.35+15-CA (build 11.0.5+10-LTS)
|
||||
- Java 12 : OpenJDK Runtime Environment Zulu12.3+11-CA (build 12.0.2+3)
|
||||
- Java 13 : OpenJDK Runtime Environment Zulu13.28+11-CA (build 13.0.1+10-MTS)
|
||||
- Node.js v12.13.1
|
||||
- Node.js v12.14.0
|
||||
- NVM 0.33.11
|
||||
- NVM - Installed node versions:
|
||||
v6.17.1 *
|
||||
v8.16.2 *
|
||||
v10.17.0 *
|
||||
v12.13.1 *
|
||||
v13.3.0 *
|
||||
v8.17.0 *
|
||||
v10.18.0 *
|
||||
v12.14.0 *
|
||||
v13.5.0 *
|
||||
- PowerShell 6.2.3
|
||||
- Python 2.7.17
|
||||
- Python 3.7.5
|
||||
- Python 3.7.6
|
||||
- Ruby -2.6.5p114
|
||||
- .NET SDK 2.0.0 3.0.100 3.0.101
|
||||
- Go 1.13.4
|
||||
- Go 1.13.5
|
||||
|
||||
### Package Management
|
||||
|
||||
- Bundler 2.0.2
|
||||
- Bundler 2.1.3
|
||||
- Carthage 0.34.0
|
||||
- CocoaPods 1.8.4
|
||||
- Homebrew 2.2.0
|
||||
- NPM 6.12.1
|
||||
- Yarn 1.19.2
|
||||
- Homebrew 2.2.2
|
||||
- NPM 6.13.4
|
||||
- Yarn 1.21.1
|
||||
- NuGet 5.3.1.6268
|
||||
- pip 19.3.1
|
||||
- Miniconda 4.7.12
|
||||
@@ -54,17 +54,18 @@ date: Week 51
|
||||
### Utilities
|
||||
|
||||
- curl 7.67.0 (x86_64-apple-darwin19.0.0) libcurl/7.67.0 SecureTransport zlib/1.2.11
|
||||
- Git 2.24.0
|
||||
- Git LFS: git-lfs/2.8.0 (GitHub; darwin amd64; go 1.12.7)
|
||||
- Git 2.24.1
|
||||
- Git LFS: git-lfs/2.9.2 (GitHub; darwin amd64; go 1.13.5)
|
||||
- GNU Wget 1.20.3
|
||||
- Subversion (SVN) 1.13.0
|
||||
- GNU parallel 20191122
|
||||
- GNU parallel 20191222
|
||||
|
||||
### Tools
|
||||
|
||||
- fastlane 2.137.0
|
||||
- App Center CLI 2.3.2
|
||||
- Azure-Cli 2.0.77
|
||||
- fastlane 2.139.0
|
||||
- App Center CLI 2.3.3
|
||||
- Azure-Cli 2.0.78
|
||||
- CMake 3.16.2
|
||||
|
||||
### Pre-cached tools
|
||||
|
||||
@@ -81,11 +82,15 @@ date: Week 51
|
||||
- 2.5.5
|
||||
- 2.6.3
|
||||
|
||||
### Browsers
|
||||
- Google Chrome 79.0.3945.88
|
||||
- ChromeDriver 79.0.3945.36
|
||||
|
||||
### Xcode
|
||||
|
||||
| Version | Build | Path |
|
||||
|------------------------|---------|----------------------------------|
|
||||
| 11.3_beta | 11C24b | /Applications/Xcode_11.3_beta.app|
|
||||
| 11.3 | 11C29 | /Applications/Xcode_11.3.app |
|
||||
| 11.2.1 | 11B53 | /Applications/Xcode_11.2.1.app |
|
||||
| 11.2 | 11B52 | /Applications/Xcode_11.2.app |
|
||||
| 11.1 | 11A1027 | /Applications/Xcode_11.1.app |
|
||||
@@ -97,29 +102,29 @@ date: Week 51
|
||||
- Nomad CLI 3.0.6
|
||||
- Nomad CLI IPA 0.14.3
|
||||
- xcpretty 0.3.0
|
||||
- xctool 0.3.6
|
||||
- xctool 0.3.7
|
||||
- xcversion 2.6.3
|
||||
|
||||
### Installed SDKs
|
||||
|
||||
| SDK | SDK name |Xcode Version |
|
||||
|---------------------------|-------------|--------------|
|
||||
| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1 |
|
||||
| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3 |
|
||||
| iOS 13.0 | iphoneos13.0 | 11.0 |
|
||||
| iOS 13.1 | iphoneos13.1 | 11.1 |
|
||||
| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1 |
|
||||
| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3 |
|
||||
| iOS Simulator 13.0 | iphonesimulator13.0 | 11.0 |
|
||||
| iOS Simulator 13.1 | iphonesimulator13.1 | 11.1 |
|
||||
| iOS Simulator 13.2 | iphonesimulator13.2 | 11.2, 11.2.1 |
|
||||
| iOS Simulator 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3 |
|
||||
| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
|
||||
| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1 |
|
||||
| tvOS Simulator 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
|
||||
| tvOS Simulator 13.2 | appletvsimulator13.2 | 11.2, 11.2.1 |
|
||||
| tvOS Simulator 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3 |
|
||||
| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
|
||||
| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1 |
|
||||
| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3 |
|
||||
| watchOS Simulator 6.0 | watchsimulator6.0 | 11.0, 11.1 |
|
||||
| watchOS Simulator 6.1 | watchsimulator6.1 | 11.2, 11.2.1 |
|
||||
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1 |
|
||||
| watchOS Simulator 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3 |
|
||||
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3 |
|
||||
|
||||
### Installed Simulators
|
||||
|
||||
@@ -129,23 +134,15 @@ date: Week 51
|
||||
|---------|---------------------------------|------------|
|
||||
| iOS 13.0 (17A577a) | 11 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.1 (17A844) | 11.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| iOS 13.2 (17B102) | 11.2, 11.2.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
|
||||
| tvOS 11.4 (15L576)<br>tvOS 12.0 (16J5283n)<br>tvOS 12.1 (16J602)<br>tvOS 12.2 (16L225)<br>tvOS 12.4 (16M567)<br>tvOS 13.0 (17J559)<br>tvOS 13.2 (17K90) | 11.0, 11.1<br>11.2, 11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| watchOS 6.0 (17R566)<br><br>watchOS 6.1 (17S80) | 11.0<br>11.1<br>11.2, 11.2.1 | Apple Watch Series 4 40mm<br>Apple Watch Series 4 44mm<br>Apple Watch Series 5 40mm<br>Apple Watch Series 5 44mm |
|
||||
| iOS 13.2 (17B102) <br> iOS 13.3 (17C45) | 11.2, 11.2.1 <br> 11.3 | iPhone 8 <br> iPhone 8 Plus <br> iPhone 11 <br> iPhone 11 Pro <br> iPhone 11 Pro Max <br> iPad Pro (9.7-inch) <br> iPad (7th generation) <br> iPad Pro <br> iPad Pro (12.9-inch) (3rd generation) <br> iPad Air (3rd generation) |
|
||||
| tvOS 13.0 (17J559)<br>tvOS 13.2 (17K90)<br>tvOS 13.3 (17K446) | 11.2, 11.2.1<br> 11.3 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| watchOS 6.0 (17R566)<br><br>watchOS 6.1 (17S80)<br>watchOS 6.1.1 (17S445) | 11.0<br>11.1<br>11.2, 11.2.1<br> 11.3 | Apple Watch Series 4 40mm<br>Apple Watch Series 4 44mm<br>Apple Watch Series 5 40mm<br>Apple Watch Series 5 44mm |
|
||||
|
||||
|
||||
### Device Pairs
|
||||
|
||||
| Watch | Phone |
|
||||
|-----------------------------|-------------------|
|
||||
| Apple Watch - 38mm | iPhone 6s |
|
||||
| Apple Watch - 42mm | iPhone 6s Plus |
|
||||
| Apple Watch Series 2 - 38mm | iPhone 7 |
|
||||
| Apple Watch Series 2 - 42mm | iPhone 7 Plus |
|
||||
| Apple Watch Series 3 - 38mm | iPhone 8 |
|
||||
| Apple Watch Series 3 - 42mm | iPhone 8 Plus |
|
||||
| Apple Watch Series 4 - 40mm | iPhone XS |
|
||||
| Apple Watch Series 4 - 44mm | iPhone XS Max |
|
||||
| Apple Watch Series 5 - 40mm | iPhone 11 Pro |
|
||||
| Apple Watch Series 5 - 44mm | iPhone 11 Pro Max |
|
||||
|
||||
@@ -210,7 +207,7 @@ date: Week 51
|
||||
| lldb | 2.3.3614996 |
|
||||
| ndk-bundle | 18.1.5063045 |
|
||||
| ProGuard | 5.3.3 |
|
||||
| Android Emulator | 29.2.11 |
|
||||
| Android Emulator | 29.3.2 |
|
||||
|
||||
### Google APIs
|
||||
|
||||
@@ -234,7 +231,7 @@ date: Week 51
|
||||
|
||||
### Visual Studio for Mac
|
||||
|
||||
- 8.3.10.2
|
||||
- 8.3.11.1
|
||||
|
||||
|
||||
### Mono
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
|
||||
"vm_size": "Standard_DS4_v2",
|
||||
|
||||
"root_folder": "C:",
|
||||
"image_folder": "C:\\image",
|
||||
"commit_file": "C:\\image\\commit.txt",
|
||||
"metadata_file": "C:\\image\\metadata.txt",
|
||||
@@ -24,8 +25,10 @@
|
||||
"install_user": "installer",
|
||||
"install_password": null,
|
||||
"capture_name_prefix": "packer",
|
||||
"image_version": "dev"
|
||||
"image_version": "dev",
|
||||
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/"
|
||||
},
|
||||
"sensitive-variables": ["install_password", "ssh_password", "client_secret"],
|
||||
"builders": [
|
||||
{
|
||||
"name": "vhd",
|
||||
@@ -268,6 +271,27 @@
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{template_dir}}/toolcache.json",
|
||||
"destination": "{{user `root_folder`}}/toolcache.json"
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"TOOLCACHE_REGISTRY={{ user `toolcache_registry` }}",
|
||||
"ROOT_FOLDER={{user `root_folder`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1"
|
||||
]
|
||||
@@ -336,6 +360,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-Firefox.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Selenium.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -362,12 +392,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-WinAppDriver.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -450,12 +474,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-AzureCosmosDbEmulator.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars": [
|
||||
@@ -562,6 +580,9 @@
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"ROOT_FOLDER={{user `root_folder`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1"
|
||||
]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Hosted Windows2016 image
|
||||
# Windows Server 2016
|
||||
|
||||
The following software is installed on machines in the Azure Pipelines **Hosted Windows2016** (v20191009.1) pool.
|
||||
The following software is installed on machines with the 20191009.1 update.
|
||||
|
||||
Components marked with **\*** have been upgraded since the previous version of the image.
|
||||
|
||||
@@ -519,8 +519,6 @@ _Environment:_
|
||||
* Bower 1.8.8<br/>
|
||||
* Yarn 1.19.1<br/>
|
||||
|
||||
> Note: You can install and use another version of Node.js on Microsoft-hosted agent pools using the [Node tool installer](https://docs.microsoft.com/vsts/pipelines/tasks/tool/node-js) task.
|
||||
|
||||
## npm
|
||||
|
||||
_Version:_ 6.9.0<br/>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
|
||||
"vm_size": "Standard_DS4_v2",
|
||||
|
||||
"root_folder": "C:",
|
||||
"image_folder": "C:\\image",
|
||||
"commit_file": "C:\\image\\commit.txt",
|
||||
"metadata_file": "C:\\image\\metadata.txt",
|
||||
@@ -24,7 +25,8 @@
|
||||
"install_user": "installer",
|
||||
"install_password": null,
|
||||
"capture_name_prefix": "packer",
|
||||
"image_version": "dev"
|
||||
"image_version": "dev",
|
||||
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/"
|
||||
},
|
||||
"sensitive-variables": ["install_password", "ssh_password", "client_secret"],
|
||||
"builders": [
|
||||
@@ -238,6 +240,27 @@
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{template_dir}}/toolcache.json",
|
||||
"destination": "{{user `root_folder`}}/toolcache.json"
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"TOOLCACHE_REGISTRY={{ user `toolcache_registry` }}",
|
||||
"ROOT_FOLDER={{user `root_folder`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1"
|
||||
]
|
||||
@@ -306,6 +329,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-Firefox.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Selenium.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -332,12 +361,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-WinAppDriver.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -420,12 +443,6 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-AzureCosmosDbEmulator.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars": [
|
||||
@@ -532,6 +549,9 @@
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"ROOT_FOLDER={{user `root_folder`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-ToolCache.ps1"
|
||||
]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -16,4 +16,6 @@ Export-ModuleMember -Function @(
|
||||
'Install-EXE'
|
||||
'Add-ContentToMarkdown'
|
||||
'Add-SoftwareDetailsToMarkdown'
|
||||
'Stop-SvcWithErrHandling'
|
||||
'Set-SvcWithErrHandling'
|
||||
)
|
||||
|
||||
@@ -81,3 +81,82 @@ function Install-EXE
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
||||
function Stop-SvcWithErrHandling
|
||||
<#
|
||||
.DESCRIPTION
|
||||
Function for stopping the Windows Service with error handling
|
||||
|
||||
.AUTHOR
|
||||
Andrey Mishechkin v-andmis@microsoft.com
|
||||
|
||||
.PARAMETER -ServiceName
|
||||
The name of stopping service
|
||||
|
||||
.PARAMETER -StopOnError
|
||||
Switch for stopping the script and exit from PowerShell if one service is absent
|
||||
#>
|
||||
{
|
||||
param (
|
||||
[Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName,
|
||||
[Parameter()] [switch] $StopOnError
|
||||
)
|
||||
|
||||
Process {
|
||||
$Service = Get-Service $ServiceName -ErrorAction SilentlyContinue
|
||||
if (-not $Service) {
|
||||
Write-Warning "[!] Service [$ServiceName] is not found";
|
||||
if ($StopOnError) {
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
Write-Host "Try to stop service [$ServiceName]";
|
||||
try {
|
||||
Stop-Service -Name $ServiceName -Force;
|
||||
$Service.WaitForStatus("Stopped", "00:01:00");
|
||||
Write-Host "Service [$ServiceName] has been stopped successfuly";
|
||||
}
|
||||
catch {
|
||||
Write-Error "[!] Failed to stop service [$ServiceName] with error:"
|
||||
$_ | Out-String | Write-Error;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Set-SvcWithErrHandling
|
||||
<#
|
||||
.DESCRIPTION
|
||||
Function for setting the Windows Service parameter with error handling
|
||||
|
||||
.AUTHOR
|
||||
Andrey Mishechkin v-andmis@microsoft.com
|
||||
|
||||
.PARAMETER -ServiceName
|
||||
The name of stopping service
|
||||
|
||||
.PARAMETER -Arguments
|
||||
Hashtable for service arguments
|
||||
#>
|
||||
{
|
||||
|
||||
param (
|
||||
[Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName,
|
||||
[Parameter(Mandatory)] [hashtable] $Arguments
|
||||
)
|
||||
|
||||
Process {
|
||||
$Service = Get-Service $ServiceName -ErrorAction SilentlyContinue
|
||||
if (-not $Service) {
|
||||
Write-Warning "[!] Service [$ServiceName] is not found";
|
||||
}
|
||||
try {
|
||||
Set-Service $ServiceName @Arguments;
|
||||
}
|
||||
catch {
|
||||
Write-Error "[!] Failed to set service [$ServiceName] arguments with error:"
|
||||
$_ | Out-String | Write-Error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,51 +1,48 @@
|
||||
################################################################################
|
||||
## File: Download-ToolCache.ps1
|
||||
## Team: CI-Build
|
||||
## Desc: Download tool cache
|
||||
################################################################################
|
||||
|
||||
Function InstallTool
|
||||
{
|
||||
Param
|
||||
(
|
||||
[System.Object]$ExecutablePath
|
||||
Function Install-NpmPackage {
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[System.String]
|
||||
$Name,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[System.String]
|
||||
$NpmRegistry
|
||||
)
|
||||
|
||||
Write-Host $ExecutablePath.DirectoryName
|
||||
Set-Location -Path $ExecutablePath.DirectoryName
|
||||
Get-Location | Write-Host
|
||||
if (Test-Path 'tool.zip')
|
||||
{
|
||||
Expand-Archive 'tool.zip' -DestinationPath '.'
|
||||
}
|
||||
cmd.exe /c 'install_to_tools_cache.bat'
|
||||
Write-Host "Installing npm '$Name' package from '$NpmRegistry'"
|
||||
|
||||
npm install $Name --registry=$NpmRegistry
|
||||
}
|
||||
|
||||
$SourceUrl = "https://vstsagenttools.blob.core.windows.net/tools"
|
||||
|
||||
# HostedToolCache Path
|
||||
$Dest = "C:/"
|
||||
|
||||
$Path = "hostedtoolcache/windows"
|
||||
|
||||
$env:Path = "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy;" + $env:Path
|
||||
|
||||
Write-Host "Started AzCopy from $SourceUrl to $Dest"
|
||||
|
||||
AzCopy /Source:$SourceUrl /Dest:$Dest /S /V /Pattern:$Path
|
||||
|
||||
$ToolsDirectory = $Dest + $Path
|
||||
|
||||
$current = Get-Location
|
||||
Set-Location -Path $ToolsDirectory
|
||||
|
||||
Get-ChildItem -Recurse -Depth 4 -Filter install_to_tools_cache.bat | ForEach-Object {
|
||||
#In order to work correctly Python 3.4 x86 must be installed after x64, this is achieved by current toolcache catalog structure
|
||||
InstallTool($_)
|
||||
}
|
||||
|
||||
Set-Location -Path $current
|
||||
|
||||
# Define AGENT_TOOLSDIRECTORY environment variable
|
||||
$env:AGENT_TOOLSDIRECTORY = $ToolsDirectory
|
||||
setx AGENT_TOOLSDIRECTORY $ToolsDirectory /M
|
||||
|
||||
# Install HostedToolCache tools via NPM
|
||||
$ToolVersionsFileContent = Get-Content -Path "$env:ROOT_FOLDER/toolcache.json" -Raw
|
||||
$ToolVersions = ConvertFrom-Json -InputObject $ToolVersionsFileContent
|
||||
|
||||
$ToolVersions.PSObject.Properties | ForEach-Object {
|
||||
$PackageName = $_.Name
|
||||
$PackageVersions = $_.Value
|
||||
$NpmPackages = $PackageVersions | ForEach-Object { "$PackageName@$_" }
|
||||
foreach($NpmPackage in $NpmPackages) {
|
||||
Install-NpmPackage -Name $NpmPackage -NpmRegistry $env:TOOLCACHE_REGISTRY
|
||||
}
|
||||
}
|
||||
|
||||
#junction point from the previous Python2 directory to the toolcache Python2
|
||||
Write-Host "Create symlink to Python2"
|
||||
$python2Dir = (Get-Item -Path ($ToolsDirectory + '/Python/2.7*/x64')).FullName
|
||||
cmd.exe /c mklink /d "C:\Python27amd64" "$python2Dir"
|
||||
|
||||
@@ -1,28 +1,16 @@
|
||||
################################################################################
|
||||
## File: Install-Boost.ps1
|
||||
## File: Set-BoostRoot.ps1
|
||||
## Team: CI-Build
|
||||
## Desc: Install boost using tool cache
|
||||
################################################################################
|
||||
|
||||
$ToolCache = 'C:\hostedtoolcache\windows\boost'
|
||||
$BoostDirectory = Join-Path -Path $env:ProgramFiles -ChildPath "Boost"
|
||||
$BoostVersionsToInstall = $env:BOOST_VERSIONS.split(',')
|
||||
$BoostVersions = $env:BOOST_VERSIONS.split(',')
|
||||
$BoostDefault = $env:BOOST_DEFAULT
|
||||
|
||||
foreach($BoostVersion in $BoostVersionsToInstall)
|
||||
foreach($BoostVersion in $BoostVersions)
|
||||
{
|
||||
$ZipName = Join-Path -Path $ToolCache -ChildPath "boost_${BoostVersion}_msvc-14.1.zip"
|
||||
|
||||
if (-Not (Test-Path $ZipName))
|
||||
{
|
||||
Write-Host "$ZipName not found"
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host "Expanding $ZipName"
|
||||
|
||||
$BoostInstallationDir = Join-Path -Path $BoostDirectory -ChildPath $BoostVersion
|
||||
# Expand-Archive slower for 70% than 7z
|
||||
& "$env:ProgramFiles\7-Zip\7z.exe" x $ZipName -o"$BoostDirectory" -y
|
||||
|
||||
$EnvBoostPath = "BOOST_ROOT_{0}" -f ($BoostVersion.Replace('.', '_'))
|
||||
setx $EnvBoostPath $BoostInstallationDir /M | Out-Null
|
||||
@@ -36,10 +24,3 @@ foreach($BoostVersion in $BoostVersionsToInstall)
|
||||
setx BOOST_ROOT $BoostInstallationDir /M | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
# Removing boost cache folder
|
||||
Write-Host "Removing boost cache folder"
|
||||
if (Test-Path $ToolCache)
|
||||
{
|
||||
Remove-Item -Path $ToolCache -Force -Recurse
|
||||
}
|
||||
|
||||
@@ -3,24 +3,40 @@
|
||||
## Desc: Install Google Chrome
|
||||
################################################################################
|
||||
|
||||
Import-Module -Name ImageHelpers -Force
|
||||
Import-Module -Name ImageHelpers -Force;
|
||||
|
||||
$temp_install_dir = 'C:\Windows\Installer'
|
||||
New-Item -Path $temp_install_dir -ItemType Directory -Force
|
||||
$ChromeInstallerFile = "chrome_installer.exe";
|
||||
$ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}";
|
||||
Install-Exe -Url $ChromeInstallerUri -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install")
|
||||
|
||||
Install-MSI -MsiUrl "https://seleniumwebdrivers.blob.core.windows.net/knownchromeversion/googlechromestandaloneenterprise64.msi" -MsiName "googlechromestandaloneenterprise64.msi"
|
||||
Write-Host "Adding the firewall rule for Google update blocking";
|
||||
New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe";
|
||||
|
||||
New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe"
|
||||
$GoogleSvcs = ('gupdate','gupdatem');
|
||||
$GoogleSvcs | Stop-SvcWithErrHandling -StopOnError;
|
||||
$GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"};
|
||||
|
||||
$regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update";
|
||||
$regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome";
|
||||
($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object {
|
||||
New-Item -Path $_ -Force;
|
||||
}
|
||||
|
||||
$regGoogleParameters = @(
|
||||
@{ Name = "AutoUpdateCheckPeriodMinutes"; Value = 00000000},
|
||||
@{ Name = "UpdateDefault"; Value = 00000000 },
|
||||
@{ Name = "DisableAutoUpdateChecksCheckboxValue"; Value = 00000001 },
|
||||
@{ Name = "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}"; Value = 00000000 },
|
||||
@{ Path = $regGoogleUpdateChrome; Name = "DefaultBrowserSettingEnabled"; Value = 00000000 }
|
||||
)
|
||||
|
||||
$regGoogleParameters | ForEach-Object {
|
||||
$Arguments = $_;
|
||||
if (-not ($Arguments.Path)) {
|
||||
$Arguments.Add("Path", $regGoogleUpdatePath);
|
||||
}
|
||||
$Arguments.Add("Force", $true);
|
||||
New-ItemProperty @Arguments;
|
||||
}
|
||||
|
||||
Stop-Service -Name gupdate -Force
|
||||
Set-Service -Name gupdate -StartupType "Disabled"
|
||||
Stop-Service -Name gupdatem -Force
|
||||
Set-Service -Name gupdatem -StartupType "Disabled"
|
||||
|
||||
New-Item -Path "HKLM:\SOFTWARE\Policies\Google\Update" -Force
|
||||
New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "AutoUpdateCheckPeriodMinutes" -Value 00000000 -Force
|
||||
New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "UpdateDefault" -Value 00000000 -Force
|
||||
New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "DisableAutoUpdateChecksCheckboxValue" -Value 00000001 -Force
|
||||
New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Update" -Name "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}" -Value 00000000 -Force
|
||||
New-Item -Path "HKLM:\SOFTWARE\Policies\Google\Chrome" -Force
|
||||
New-ItemProperty "HKLM:\SOFTWARE\Policies\Google\Chrome" -Name "DefaultBrowserSettingEnabled" -Value 00000000 -Force
|
||||
|
||||
@@ -54,7 +54,8 @@ function InstallAllValidSdks()
|
||||
|
||||
# Consider all channels except preview/eol channels.
|
||||
# Sort the channels in ascending order
|
||||
$dotnetChannels = $dotnetChannels.'releases-index' | Where-Object { !$_."support-phase".Equals('preview') -and !$_."support-phase".Equals('eol') } | Sort-Object { [Version] $_."channel-version" }
|
||||
# HACK: Explicitly adding eol channel 2.2 for a grace period as this channel is wierdly marked as eol with no higher 2.x channel
|
||||
$dotnetChannels = $dotnetChannels.'releases-index' | Where-Object { (!$_."support-phase".Equals('preview') -and !$_."support-phase".Equals('eol')) -or ($_."channel-version" -eq "2.2") } | Sort-Object { [Version] $_."channel-version" }
|
||||
|
||||
# Download installation script.
|
||||
Invoke-WebRequest -Uri 'https://dot.net/v1/dotnet-install.ps1' -UseBasicParsing -OutFile 'dotnet-install.ps1'
|
||||
|
||||
@@ -12,7 +12,4 @@ choco install git -y --package-parameters="/GitAndUnixToolsOnPath /WindowsTermin
|
||||
# Disable GCM machine-wide
|
||||
[Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine)
|
||||
|
||||
Add-MachinePathItem "C:\Program Files\Git\mingw64\bin"
|
||||
Add-MachinePathItem "C:\Program Files\Git\usr\bin"
|
||||
Add-MachinePathItem "C:\Program Files\Git\bin"
|
||||
exit 0
|
||||
|
||||
35
images/win/scripts/Installers/Install-Selenium.ps1
Normal file
35
images/win/scripts/Installers/Install-Selenium.ps1
Normal file
@@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
## File: Install-Selenium.ps1
|
||||
## Desc: Install Selenium Server standalone
|
||||
################################################################################
|
||||
|
||||
# Acquire latest Selenium release number from GitHub API
|
||||
$latestReleaseUrl = "https://api.github.com/repos/SeleniumHQ/selenium/releases/latest"
|
||||
try {
|
||||
$latestReleaseInfo = Invoke-RestMethod -Uri $latestReleaseUrl
|
||||
} catch {
|
||||
Write-Error $_
|
||||
exit 1
|
||||
}
|
||||
Write-Debug $latestReleaseInfo
|
||||
$seleniumVersionString = $latestReleaseInfo.name.Split(" ")[1]
|
||||
Write-Debug $seleniumVersionString
|
||||
$seleniumVersion = [version]::Parse($seleniumVersionString)
|
||||
|
||||
# Download Selenium
|
||||
Write-Host "Downloading selenium-server-standalone v$seleniumVersion..."
|
||||
|
||||
$seleniumReleaseUrl = "https://selenium-release.storage.googleapis.com/$($seleniumVersion.ToString(2))/selenium-server-standalone-$($seleniumVersion.ToString(3)).jar"
|
||||
New-Item -ItemType directory -Path "C:\selenium\"
|
||||
$seleniumBinPath = "C:\selenium\selenium-server-standalone.jar"
|
||||
try {
|
||||
Invoke-WebRequest -UseBasicParsing -Uri $seleniumReleaseUrl -OutFile $seleniumBinPath
|
||||
} catch {
|
||||
Write-Error $_
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host "Add selenium jar to the environment variables..."
|
||||
setx "SELENIUM_JAR_PATH" "$($seleniumBinPath)" /M
|
||||
|
||||
exit 0
|
||||
@@ -2,16 +2,58 @@
|
||||
## File: Install-SeleniumWebDrivers.ps1
|
||||
## Desc: Install Selenium Web Drivers
|
||||
################################################################################
|
||||
$DestinationPath = "$($env:SystemDrive)\";
|
||||
$DriversZipFile = "SeleniumWebDrivers.zip"
|
||||
Write-Host "Destination path: [$DestinationPath]";
|
||||
Write-Host "Selenium drivers download and install...";
|
||||
try {
|
||||
Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/${DriversZipFile}" -OutFile $DriversZipFile;
|
||||
}
|
||||
catch {
|
||||
Write-Error "[!] Failed to download $DriverZipFile";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/SeleniumWebDrivers.zip" -OutFile SeleniumWebDrivers.zip
|
||||
Expand-Archive -Path $DriversZipFile -DestinationPath $DestinationPath -Force;
|
||||
Remove-Item $DriversZipFile;
|
||||
|
||||
Expand-Archive -Path SeleniumWebDrivers.zip -DestinationPath "C:\" -Force
|
||||
$ChromeDriverPath = "$DestinationPath\SeleniumWebDrivers\ChromeDriver";
|
||||
Write-Host "Chrome driver path: [$ChromeDriverPath]";
|
||||
Remove-Item -Path "$ChromeDriverPath\*" -Force;
|
||||
|
||||
Remove-Item SeleniumWebDrivers.zip
|
||||
$ChromePath = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe').'(default)';
|
||||
[version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion;
|
||||
Write-Host "Chrome version: [$ChromeVersion]";
|
||||
|
||||
setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M
|
||||
setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M
|
||||
setx ChromeWebDriver "C:\SeleniumWebDrivers\ChromeDriver" /M
|
||||
$ChromeDriverVersionUri = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$($ChromeVersion.Major).$($ChromeVersion.Minor).$($ChromeVersion.Build)";
|
||||
Write-Host "Chrome driver version Uri [$ChromeDriverVersionUri]";
|
||||
Write-Host "Getting the Chrome driver version...";
|
||||
$ChromeDriverVersion = Invoke-WebRequest -Uri $ChromeDriverVersionUri;
|
||||
Write-Host "Current Chrome driver version: [$ChromeDriverVersion]";
|
||||
|
||||
exit 0
|
||||
$ChromeDriverZipDownloadUri = "https://chromedriver.storage.googleapis.com/$($ChromeDriverVersion.ToString())/chromedriver_win32.zip";
|
||||
Write-Host "Chrome driver zip file download Uri: [$ChromeDriverZipDownloadUri]";
|
||||
|
||||
$DestFile= "$ChromeDriverPath\chromedriver_win32.zip";
|
||||
$ChromeDriverVersion.Content | Out-File -FilePath "$ChromeDriverPath\versioninfo.txt" -Force;
|
||||
|
||||
Write-Host "Chrome driver download....";
|
||||
Invoke-WebRequest -Uri $ChromeDriverZipDownloadUri -OutFile $DestFile;
|
||||
|
||||
Write-Host "Chrome driver install....";
|
||||
Expand-Archive -Path "$ChromeDriverPath\chromedriver_win32.zip" -DestinationPath $ChromeDriverPath -Force;
|
||||
Remove-Item -Path "$ChromeDriverPath\chromedriver_win32.zip" -Force;
|
||||
|
||||
Write-Host "Setting the environment variables";
|
||||
|
||||
setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M;
|
||||
setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M;
|
||||
setx ChromeWebDriver "C:\SeleniumWebDrivers\ChromeDriver" /M;
|
||||
|
||||
$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\';
|
||||
$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path';
|
||||
$PathValue += ";C:\SeleniumWebDrivers\ChromeDriver\";
|
||||
Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue;
|
||||
|
||||
exit 0;
|
||||
|
||||
|
||||
@@ -6,5 +6,5 @@
|
||||
|
||||
Write-Host "Run windows updates"
|
||||
Install-Module -Name PSWindowsUpdate -Force -AllowClobber
|
||||
Get-WUInstall -WindowsUpdate -AcceptAll -UpdateType Software -IgnoreReboot
|
||||
Get-WUInstall -MicrosoftUpdate -AcceptAll -IgnoreUserInput -IgnoreReboot
|
||||
Get-WUInstall -WindowsUpdate -AcceptAll -Install -UpdateType Software -IgnoreReboot
|
||||
Get-WUInstall -MicrosoftUpdate -AcceptAll -Install -IgnoreUserInput -IgnoreReboot
|
||||
|
||||
@@ -12,6 +12,21 @@ function GetChildFolders {
|
||||
return Get-ChildItem -Path $Path -Directory -Name
|
||||
}
|
||||
|
||||
function Get-ToolcachePackages {
|
||||
$toolcachePath = Join-Path $env:ROOT_FOLDER "toolcache.json"
|
||||
return Get-Content -Raw $toolcachePath | ConvertFrom-Json
|
||||
}
|
||||
|
||||
$packages = (Get-ToolcachePackages).PSObject.Properties | ForEach-Object {
|
||||
$packageNameParts = $_.Name.Split("-")
|
||||
$toolName = $packageNameParts[1]
|
||||
return [PSCustomObject] @{
|
||||
ToolName = $packageNameParts[1]
|
||||
Versions = $_.Value
|
||||
Arch = $packageNameParts[3]
|
||||
}
|
||||
}
|
||||
|
||||
function ToolcacheTest {
|
||||
param (
|
||||
[Parameter(Mandatory = $True)]
|
||||
@@ -22,36 +37,53 @@ function ToolcacheTest {
|
||||
if (Test-Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName")
|
||||
{
|
||||
$description = ""
|
||||
[array]$versions = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName"
|
||||
if ($versions.count -gt 0){
|
||||
foreach ($version in $versions)
|
||||
[array]$installedVersions = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName"
|
||||
if ($installedVersions.count -gt 0){
|
||||
$softwarePackages = $packages | Where-Object { $_.ToolName -eq $SoftwareName }
|
||||
foreach($softwarePackage in $softwarePackages)
|
||||
{
|
||||
$architectures = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version"
|
||||
|
||||
Write-Host "$SoftwareName version - $version : $([system.String]::Join(",", $architectures))"
|
||||
|
||||
foreach ($arch in $architectures)
|
||||
foreach ($version in $softwarePackage.Versions)
|
||||
{
|
||||
$path = "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version\$arch"
|
||||
foreach ($test in $ExecTests)
|
||||
{
|
||||
if (Test-Path "$path\$test")
|
||||
{
|
||||
Write-Host "$SoftwareName($test) $version($arch) is successfully installed:"
|
||||
Write-Host (& "$path\$test" --version)
|
||||
$foundVersion = $installedVersions | where { $_.StartsWith($version) }
|
||||
|
||||
if ($foundVersion -ne $null){
|
||||
|
||||
$architectures = GetChildFolders -Path "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$foundVersion"
|
||||
|
||||
$softwareArch = $softwarePackage.Arch
|
||||
|
||||
if ($architectures -Contains $softwareArch) {
|
||||
$path = "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$foundVersion\$softwareArch"
|
||||
foreach ($test in $ExecTests)
|
||||
{
|
||||
if (Test-Path "$path\$test")
|
||||
{
|
||||
Write-Host "$SoftwareName($test) $foundVersion($softwareArch) is successfully installed:"
|
||||
Write-Host (& "$path\$test" --version)
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "$SoftwareName($test) $foundVersion ($softwareArch) is not installed"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
$description += "_Version:_ $foundVersion ($softwareArch)<br/>"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "$SoftwareName($test) $version ($arch) is not installed"
|
||||
Write-Host "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$foundVersion does not include required architecture"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
$description += "_Version:_ $version ($arch)<br/>"
|
||||
else
|
||||
{
|
||||
Write-Host "$env:AGENT_TOOLSDIRECTORY\$SoftwareName\$version.* was not found"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $description
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $description
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -119,9 +119,9 @@ wmic logicaldisk get size,freespace,caption
|
||||
# Adding description of the software to Markdown
|
||||
|
||||
$Content = @"
|
||||
# Azure Pipelines Hosted VS2017 image
|
||||
# Windows Server 2016
|
||||
|
||||
The following software is installed on machines in the Azure Pipelines **Hosted VS2017** (v$env:ImageVersion) pool.
|
||||
The following software is installed on machines with the $env:ImageVersion update.
|
||||
|
||||
Components marked with **\*** have been upgraded since the previous version of the image.
|
||||
|
||||
|
||||
@@ -118,9 +118,9 @@ wmic logicaldisk get size,freespace,caption
|
||||
# Adding description of the software to Markdown
|
||||
|
||||
$Content = @"
|
||||
# Azure Pipelines Hosted Windows 2019 with VS2019 image
|
||||
# Windows Server 2019
|
||||
|
||||
The following software is installed on machines in the Azure Pipelines **Hosted Windows 2019 with VS2019** (v$env:ImageVersion) pool.
|
||||
The following software is installed on machines with the $env:ImageVersion update.
|
||||
|
||||
Components marked with **\*** have been upgraded since the previous version of the image.
|
||||
|
||||
|
||||
17
images/win/toolcache.json
Normal file
17
images/win/toolcache.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"toolcache-python-windows-x64": [
|
||||
"2.7", "3.5", "3.6", "3.7", "3.8"
|
||||
],
|
||||
"toolcache-python-windows-x86": [
|
||||
"2.7", "3.5", "3.6", "3.7", "3.8"
|
||||
],
|
||||
"toolcache-ruby-windows-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"toolcache-pypy-windows-x86": [
|
||||
"2", "3"
|
||||
],
|
||||
"toolcache-boost-windows-x64": [
|
||||
"1.69"
|
||||
]
|
||||
}
|
||||
@@ -25,7 +25,7 @@ rules:
|
||||
- valueFor: '**Area for Triage**'
|
||||
contains: 'Apple'
|
||||
addLabels: ['Area: Apple']
|
||||
assign: ['AlenaSviridenko']
|
||||
assign: ['sergey-akhalkov']
|
||||
|
||||
# Area: Artifacts
|
||||
- valueFor: '**Area for Triage**'
|
||||
@@ -115,13 +115,13 @@ rules:
|
||||
- valueFor: '**Area for Triage**'
|
||||
contains: 'Ruby'
|
||||
addLabels: ['Area: Ruby']
|
||||
assign: ['madhurig']
|
||||
assign: ['zachariahcox']
|
||||
|
||||
# Area: Rust
|
||||
- valueFor: '**Area for Triage**'
|
||||
contains: 'Rust'
|
||||
addLabels: ['Area: Rust']
|
||||
assign: ['AlenaSviridenko']
|
||||
assign: ['sergey-akhalkov']
|
||||
|
||||
# Area: Scala
|
||||
- valueFor: '**Area for Triage**'
|
||||
@@ -157,7 +157,7 @@ rules:
|
||||
- valueFor: '**Area for Triage**'
|
||||
contains: 'Xamarin'
|
||||
addLabels: ['Area: Xamarin']
|
||||
assign: ['AlenaSviridenko']
|
||||
assign: ['sergey-akhalkov']
|
||||
|
||||
# Types
|
||||
- valueFor: '**Question, Bug, or Feature?**'
|
||||
@@ -189,4 +189,4 @@ tags:
|
||||
- noneIn: ['bug', 'enhancement', 'question']
|
||||
addLabels: ['needs triage']
|
||||
- noneMatch: '\s*Area:\s*([^]*)'
|
||||
addLabels: ['needs triage']
|
||||
addLabels: ['needs triage']
|
||||
|
||||
Reference in New Issue
Block a user