mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-27 20:12:46 +08:00
@@ -8,6 +8,7 @@ jobs:
|
||||
- job:
|
||||
pool: ci-agent-pool
|
||||
timeoutInMinutes: 600
|
||||
cancelTimeoutInMinutes: 30
|
||||
variables:
|
||||
- group: Image Generation Variables
|
||||
|
||||
@@ -74,4 +75,4 @@ jobs:
|
||||
-ClientSecret $(CLIENT_SECRET) `
|
||||
-Image ${{ parameters.image_type }} `
|
||||
-SubscriptionId $(AZURE_SUBSCRIPTION) `
|
||||
-TenantId $(AZURE_TENANT)
|
||||
-TenantId $(AZURE_TENANT)
|
||||
|
||||
@@ -11,7 +11,7 @@ az login --service-principal --username $ClientId --password $ClientSecret --ten
|
||||
|
||||
$TempResourceGroupName = "${ResourcesNamePrefix}_${Image}"
|
||||
|
||||
$groupExist = az group exists --name $TempResourceGroupName --subscription $SubscriptionId | Out-Null
|
||||
$groupExist = az group exists --name $TempResourceGroupName --subscription $SubscriptionId
|
||||
if ($groupExist -eq "true") {
|
||||
Write-Host "Found a match, deleting temporary files"
|
||||
az group delete --name $TempResourceGroupName --subscription $SubscriptionId --yes | Out-Null
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
||||
# Ubuntu 18.04.4 LTS
|
||||
The following software is installed on machines with the 20200406.2 update.
|
||||
The following software is installed on machines with the 20200430.1 update.
|
||||
***
|
||||
- Homebrew on Linux (Homebrew 2.2.14
|
||||
Homebrew/linuxbrew-core (git revision d5a54e; last commit 2020-04-30))
|
||||
- 7-Zip 16.02
|
||||
- Ansible (ansible 2.9.6)
|
||||
- Ansible (ansible 2.9.7)
|
||||
- AzCopy (azcopy 7.3.0-netcore)
|
||||
- Azure CLI (azure-cli 2.3.1)
|
||||
- Azure CLI (azure-cli 2.5.1)
|
||||
- Azure CLI (azure-devops 0.18.0)
|
||||
- Basic CLI:
|
||||
- curl
|
||||
@@ -15,6 +18,7 @@ The following software is installed on machines with the 20200406.2 update.
|
||||
- iputils-ping
|
||||
- jq
|
||||
- libcurl3
|
||||
- libgbm-dev
|
||||
- libicu55
|
||||
- libunwind8
|
||||
- locales
|
||||
@@ -32,16 +36,21 @@ The following software is installed on machines with the 20200406.2 update.
|
||||
- wget
|
||||
- zip
|
||||
- zstd
|
||||
- AWS CLI (aws-cli/1.18.37 Python/2.7.17 Linux/5.0.0-1035-azure botocore/1.15.37)
|
||||
- Alibaba Cloud CLI (3.0.39)
|
||||
- AWS CLI (aws-cli/1.18.49 Python/2.7.17 Linux/5.3.0-1020-azure botocore/1.15.49)
|
||||
- build-essential
|
||||
- Clang 6.0 (6.0.0)
|
||||
- Clang 8 (8.0.0)
|
||||
- Clang 9 (9.0.0)
|
||||
- Swift version 5.2.1 (swift-5.2.1-RELEASE)
|
||||
- Swift version 5.2.3 (swift-5.2.3-RELEASE)
|
||||
Target: x86_64-unknown-linux-gnu
|
||||
- CMake (cmake version 3.16.2)
|
||||
- CMake (cmake version 3.17.0)
|
||||
- Podman (podman --version)
|
||||
Buildah (buildah --version)
|
||||
Skopeo (skopeo --version)
|
||||
- Docker Compose (docker-compose version 1.25.4, build 8d51620a)
|
||||
- Docker-Moby (Docker version 3.0.11+azure, build eb310fca49568dccd87c6136f774ef6fff2a1b51)
|
||||
- Docker-Buildx (0.3.1+azure)
|
||||
- .NET Core SDK:
|
||||
- 3.1.201
|
||||
- 3.1.200
|
||||
@@ -108,20 +117,20 @@ Target: x86_64-unknown-linux-gnu
|
||||
- 2.1.302
|
||||
- 2.1.301
|
||||
- 2.1.300
|
||||
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7)
|
||||
- Firefox (Mozilla Firefox 74.0.1)
|
||||
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7.1)
|
||||
- Firefox (Mozilla Firefox 75.0)
|
||||
- Geckodriver (0.26.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
|
||||
- GNU C++ 7.5.0
|
||||
- GNU C++ 8.4.0
|
||||
- GNU C++ 9.2.1
|
||||
- GNU C++ 9.3.0
|
||||
- GNU Fortran 8.4.0
|
||||
- GNU Fortran 9.2.1
|
||||
- Git (2.26.0)
|
||||
- GNU Fortran 9.3.0
|
||||
- Git (2.26.2)
|
||||
- Git Large File Storage (LFS) (2.10.0)
|
||||
- Hub CLI (2.14.2)
|
||||
- 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 (287.0.0)
|
||||
- Google Chrome (Google Chrome 81.0.4044.129 )
|
||||
- ChromeDriver 81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}); Chrome Driver is available via CHROMEWEBDRIVER environment variable
|
||||
- Google Cloud SDK (290.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
|
||||
@@ -144,46 +153,47 @@ compiled using version 3.2.0.0 of the Cabal library )
|
||||
- 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.2 linux-x64 node-v12.13.0)
|
||||
- HHVM (HipHop VM 4.52.0 (rel))
|
||||
- Heroku (heroku/7.39.5 linux-x64 node-v12.16.2)
|
||||
- HHVM (HipHop VM 4.55.0 (rel))
|
||||
- ImageMagick
|
||||
- Azul Zulu OpenJDK:
|
||||
- 7 (openjdk version "1.7.0_252")
|
||||
- 8 (openjdk version "1.8.0_242") (default)
|
||||
- 11 (openjdk version "11.0.6" 2020-01-14 LTS)
|
||||
- 7 (openjdk version "1.7.0_262")
|
||||
- 8 (openjdk version "1.8.0_252") (default)
|
||||
- 11 (openjdk version "11.0.7" 2020-04-14 LTS)
|
||||
- 12 (openjdk version "12.0.2" 2019-07-16)
|
||||
- Ant (Apache Ant(TM) version 1.10.5 compiled on March 28 2019)
|
||||
- Gradle 6.3
|
||||
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
|
||||
- Kind (kind v0.7.0 go1.13.6 linux/amd64)
|
||||
- kubectl (error: Missing or incomplete configuration info. Please point to an existing, complete config file:)
|
||||
- helm (v3.1.2+gd878d4d)
|
||||
- Leiningen (Leiningen 2.9.3 on Java 1.8.0_242 OpenJDK 64-Bit Server VM)
|
||||
- helm (v3.2.0+ge11b7ce)
|
||||
- Leiningen (Leiningen 2.9.3 on Java 1.8.0_252 OpenJDK 64-Bit Server VM)
|
||||
- Mercurial (Mercurial Distributed SCM (version 4.5.3))
|
||||
- Miniconda (conda 4.8.2)
|
||||
- Mono (Mono JIT compiler version 6.8.0.105 (tarball Tue Feb 4 21:20:20 UTC 2020))
|
||||
- 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
|
||||
- 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'
|
||||
- nvm (0.35.3)
|
||||
- Node.js (v12.16.1)
|
||||
- Node.js (v12.16.3)
|
||||
- Grunt (grunt-cli v1.2.0)
|
||||
- Gulp (CLI version: 2.2.0
|
||||
Local version: Unknown)
|
||||
- n (6.4.0)
|
||||
- n (6.5.1)
|
||||
- Parcel (1.12.4)
|
||||
- TypeScript (Version 3.8.3)
|
||||
- Webpack (4.42.1)
|
||||
- Webpack (4.43.0)
|
||||
- Webpack CLI (3.3.11)
|
||||
- Yarn (1.22.4)
|
||||
- Bazel (bazel 3.0.0)
|
||||
- Bazelisk (1.3.0)
|
||||
- Bazel (bazel 3.1.0)
|
||||
- Bazelisk (1.4.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 ))
|
||||
- PHP 7.2 (PHP 7.2.29-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:54:39) ( NTS ))
|
||||
- PHP 7.3 (PHP 7.3.16-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:51:46) ( NTS ))
|
||||
- PHP 7.4 (PHP 7.4.4 (cli) (built: Mar 20 2020 13:47:45) ( NTS ))
|
||||
- Composer (Composer version 1.10.1 2020-03-13 20:34:27)
|
||||
- PHP 7.1 (PHP 7.1.33-15+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:59:27) ( NTS ))
|
||||
- PHP 7.2 (PHP 7.2.30-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:50:50) ( NTS ))
|
||||
- PHP 7.3 (PHP 7.3.17-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:44:26) ( NTS ))
|
||||
- PHP 7.4 (PHP 7.4.5 (cli) (built: Apr 19 2020 07:36:30) ( NTS ))
|
||||
- Composer (Composer version 1.10.5 2020-04-10 11:44:22)
|
||||
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
|
||||
- Pollinate
|
||||
- psql (PostgreSQL) 10.12
|
||||
@@ -191,29 +201,31 @@ Local version: Unknown)
|
||||
- ruby (2.5.1p57)
|
||||
- gem (3.1.2)
|
||||
- rustup (1.21.1)
|
||||
- rust (1.42.0)
|
||||
- cargo (1.42.0)
|
||||
- rustfmt (1.4.11-stable)
|
||||
- rust (1.43.0)
|
||||
- cargo (1.43.0)
|
||||
- rustfmt (1.4.12-stable)
|
||||
- clippy (0.0.212)
|
||||
- rustdoc (1.42.0)
|
||||
- rustdoc (1.43.0)
|
||||
- bindgen (0.53.2)
|
||||
- cbindgen (0.14.0)
|
||||
- Julia (julia version 1.4.0)
|
||||
- sbt (1.3.9)
|
||||
- cbindgen (0.14.1)
|
||||
- Julia (julia version 1.4.1)
|
||||
- sbt (1.3.10)
|
||||
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
|
||||
- Sphinx Open Source Search Server
|
||||
- Subversion (svn, version 1.9.7 (r1800392))
|
||||
- Terraform (Terraform v0.12.24)
|
||||
- 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)
|
||||
- Zeit Now CLI (18.0.0)
|
||||
- MongoDB on Linux (2020-04-30T20:19:37.962+0000 I CONTROL [initandlisten] db version v4.2.6
|
||||
2020-04-30T20:19:37.962+0000 I CONTROL [initandlisten] git version: 20364840b8f1af16917e4c23c1b5f5efd8b352f8
|
||||
2020-04-30T20:19:37.962+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1g 21 Apr 2020)
|
||||
- Haveged 1.9.1-6
|
||||
- AWS SAM CLI, version 0.48.0
|
||||
- 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)
|
||||
- Go 1.14 (go version go1.14.1 linux/amd64)
|
||||
- Go 1.13 (go version go1.13.10 linux/amd64)
|
||||
- Go 1.14 (go version go1.14.2 linux/amd64)
|
||||
- Google Repository 58
|
||||
- Google Play services 49
|
||||
- Google APIs 24
|
||||
@@ -223,7 +235,7 @@ Local version: Unknown)
|
||||
- CMake 3.10.2.4988404
|
||||
3.6.4111459
|
||||
- Android Support Repository 47.0.0
|
||||
- Android SDK Platform-Tools 29.0.6
|
||||
- Android SDK Platform-Tools 30.0.0
|
||||
- Android SDK Platform 29
|
||||
- Android SDK Platform 28
|
||||
- Android SDK Platform 27
|
||||
@@ -267,7 +279,7 @@ Local version: Unknown)
|
||||
- Android SDK Build-Tools 20.0.0
|
||||
- Android SDK Build-Tools 19.1.0
|
||||
- Android SDK Build-Tools 17.0.0
|
||||
- Android NDK 21.0.6113669
|
||||
- Android NDK 21.1.6352462
|
||||
- Az Module (1.0.0)
|
||||
- Az Module (1.6.0)
|
||||
- Az Module (2.3.2)
|
||||
@@ -276,25 +288,20 @@ 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)
|
||||
- jekyll/builder:latest (Digest: sha256:c97cebe5f614888d61bebf234c1c93399aa74463ffdb175fd9b975a4b0fa8f13)
|
||||
- node:12-alpine (Digest: sha256:84f5c9090cc741421b2376b2393e7d5fa2f89d36167c12eb57aef16dd64ecf6c)
|
||||
- node:12 (Digest: sha256:5fe210262a6dc0c1f5555976356cf076c7a8c7645b0c781bc8a913881bbe7942)
|
||||
- node:10-alpine (Digest: sha256:b2db1b026f1b01a6a91f39d8204b89c5c13d2b40a017dd4d9253ab066c9cf2cb)
|
||||
- alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
|
||||
- alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
|
||||
- node:10 (Digest: sha256:e0c512c52c3ca8797fc60ada3698004f5cba13af4a8a5968041edac1b5d98577)
|
||||
- buildpack-deps:stretch (Digest: sha256:38353fdc334fa612f3dedb3d1e8172c3e63de706ca80260856e5708d0fd1146a)
|
||||
- debian:9 (Digest: sha256:666ffd4fbcdff07edcbd65f0ec1dc86ed294f5e3be93eb26280575f77427df46)
|
||||
- debian:8 (Digest: sha256:734728c8e411698485ae644fc988dad06f757565e292b5b85edc084befa37bbb)
|
||||
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
|
||||
- alpine:3.9 (Digest: sha256:115731bab0862031b44766733890091c17924f9b7781b79997f5f163be262178)
|
||||
- alpine:3.10 (Digest: sha256:7c3773f7bcc969f03f8f653910001d99a9d324b4b9caa008846ad2c3089f5a5f)
|
||||
- jekyll/builder:latest (Digest: sha256:875de39aa06300c749e26a79f39cdfa31404e4f2dbd2953cd4ebb0442bffda9e)
|
||||
- ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
|
||||
- alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
|
||||
- mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
|
||||
- Python:
|
||||
- Python 2.7.17
|
||||
- Python 3.5.9
|
||||
- Python 3.6.10
|
||||
- Python 3.7.6
|
||||
- Python 3.8.2
|
||||
- Ruby:
|
||||
- Ruby 2.4.10
|
||||
- Ruby 2.5.8
|
||||
@@ -307,5 +314,11 @@ Local version: Unknown)
|
||||
- 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))
|
||||
- Python:
|
||||
- Python 2.7.18
|
||||
- Python 3.5.9
|
||||
- Python 3.6.10
|
||||
- Python 3.7.7
|
||||
- Python 3.8.2
|
||||
- Boost C++ Libraries 1.69.0
|
||||
- Boost C++ Libraries 1.72.0
|
||||
|
||||
@@ -38,7 +38,8 @@ apt-fast install -y --no-install-recommends \
|
||||
upx \
|
||||
wget \
|
||||
zip \
|
||||
zstd
|
||||
zstd \
|
||||
lib32z1
|
||||
|
||||
# Electron / VSCode / GitHub Desktop / kubectl prereqs
|
||||
apt-fast install -y --no-install-recommends \
|
||||
@@ -101,3 +102,4 @@ DocumentInstalledItemIndent "wget"
|
||||
DocumentInstalledItemIndent "zip"
|
||||
DocumentInstalledItemIndent "zstd"
|
||||
DocumentInstalledItemIndent "gnupg2"
|
||||
DocumentInstalledItemIndent "lib32z1"
|
||||
|
||||
@@ -133,6 +133,9 @@ apt-get install -y --no-install-recommends parallel
|
||||
echo "Install gnupg2"
|
||||
apt-get install -y --no-install-recommends gnupg2
|
||||
|
||||
echo "Install lib32z1"
|
||||
apt-get install -y --no-install-recommends lib32z1
|
||||
|
||||
# Run tests to determine that the software installed as expected
|
||||
echo "Testing to make sure that script performed as expected, and basic scenarios work"
|
||||
for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet time unzip wget zip; do
|
||||
@@ -142,6 +145,13 @@ for cmd in curl file ftp jq netcat ssh parallel rsync shellcheck sudo telnet tim
|
||||
fi
|
||||
done
|
||||
|
||||
# Workaround for systemd-resolve, since sometimes stub resolver does not work properly. Details: https://github.com/actions/virtual-environments/issues/798
|
||||
echo "Create resolv.conf link."
|
||||
if [[ -f /run/systemd/resolve/resolv.conf ]]; then
|
||||
echo "Create resolv.conf link."
|
||||
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
|
||||
fi
|
||||
|
||||
# Document what was added to the image
|
||||
echo "Lastly, documenting what we added to the metadata file"
|
||||
DocumentInstalledItem "Basic CLI:"
|
||||
@@ -172,3 +182,4 @@ DocumentInstalledItemIndent "wget"
|
||||
DocumentInstalledItemIndent "zip"
|
||||
DocumentInstalledItemIndent "zstd"
|
||||
DocumentInstalledItemIndent "gnupg2"
|
||||
DocumentInstalledItemIndent "lib32z1"
|
||||
|
||||
@@ -28,7 +28,8 @@ $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
|
||||
$toolsToInstall = @("Python", "Node")
|
||||
$tools = ConvertFrom-Json -InputObject $toolsetJson | Select-Object -ExpandProperty toolcache | Where {$ToolsToInstall -contains $_.Name}
|
||||
|
||||
foreach ($tool in $tools) {
|
||||
# Get versions manifest for current tool
|
||||
|
||||
@@ -27,8 +27,9 @@ $ErrorActionPreference = "Stop"
|
||||
|
||||
# Define executables for cached tools
|
||||
$toolsExecutables = @{
|
||||
Python = @("python", "bin/pip");
|
||||
Python = @("python", "bin/pip")
|
||||
node = @("bin/node", "bin/npm")
|
||||
PyPy = @("bin/python", "bin/pip")
|
||||
}
|
||||
|
||||
# Get toolset content
|
||||
@@ -43,6 +44,11 @@ foreach($tool in $tools) {
|
||||
$toolExecs = $toolsExecutables[$tool.name]
|
||||
|
||||
foreach ($version in $tool.versions) {
|
||||
# Add wildcard if missing
|
||||
if (-not $version.Contains('*')) {
|
||||
$version += '.*'
|
||||
}
|
||||
|
||||
# Check if version folder exists
|
||||
$expectedVersionPath = Join-Path $toolPath $version
|
||||
if (-not (Test-Path $expectedVersionPath)) {
|
||||
@@ -59,7 +65,14 @@ foreach($tool in $tools) {
|
||||
Write-Host "Run validation test for $($tool.name)($($tool.arch)) $($foundVersion.name) executables..."
|
||||
Run-ExecutableTests -Executables $toolExecs -ToolPath $foundVersionPath
|
||||
|
||||
$foundVersionName = $foundVersion.name
|
||||
if ($tool.name -eq 'PyPy')
|
||||
{
|
||||
$pypyVersion = & "$foundVersionPath/bin/python" -c "import sys;print(sys.version.split('\n')[1])"
|
||||
$foundVersionName = "{0} {1}" -f $foundVersionName, $pypyVersion
|
||||
}
|
||||
|
||||
# Add tool version to documentation
|
||||
Invoke-Expression "bash -c `"source $env:HELPER_SCRIPTS/document.sh; DocumentInstalledItemIndent '$($tool.name) $($foundVersion.name)'`""
|
||||
Invoke-Expression "bash -c `"source $env:HELPER_SCRIPTS/document.sh; DocumentInstalledItemIndent '$($tool.name) $foundVersionName'`""
|
||||
}
|
||||
}
|
||||
@@ -7,19 +7,32 @@
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
# Install AzCopy
|
||||
# Install AzCopy7
|
||||
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
|
||||
tar -xf azcopy.tar.gz
|
||||
rm azcopy.tar.gz
|
||||
./install.sh
|
||||
|
||||
# Install AzCopy10
|
||||
wget -O /tmp/azcopy.tar.gz https://aka.ms/downloadazcopy-v10-linux
|
||||
tar zxvf /tmp/azcopy.tar.gz --strip-components=1 -C /tmp
|
||||
mv /tmp/azcopy /usr/local/bin/azcopy10
|
||||
|
||||
# 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 azcopy; then
|
||||
echo "azcopy was not installed"
|
||||
echo "azcopy7 was not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v azcopy10; then
|
||||
echo "azcopy10 was not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Document what was added to the image
|
||||
azcopy7Version=$(azcopy --version | awk '{print $2}' | cut -d '-' -f 1)
|
||||
azcopy10Version=$(azcopy10 --version | awk '{print $3}')
|
||||
echo "Lastly, documenting what we added to the metadata file"
|
||||
DocumentInstalledItem "AzCopy ($(azcopy --version))"
|
||||
DocumentInstalledItem "AzCopy7 (available by azcopy alias) $azcopy7Version"
|
||||
DocumentInstalledItem "AzCopy10 (available by azcopy10 alias) $azcopy10Version"
|
||||
|
||||
@@ -6,6 +6,7 @@ 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
|
||||
rm -rf /tmp/*
|
||||
|
||||
# after cleanup
|
||||
after=$(df / -Pm | awk 'NR==2{print $4}')
|
||||
|
||||
@@ -33,8 +33,8 @@ apt-get install -y \
|
||||
cabal-install-3.0 \
|
||||
cabal-install-3.2
|
||||
|
||||
# Install haskell stack, pinned to v2.1.3
|
||||
curl -sSL https://raw.githubusercontent.com/commercialhaskell/stack/v2.1.3/etc/scripts/get-stack.sh | sh
|
||||
# Install the latest stable release of haskell stack
|
||||
curl -sSL https://get.haskellstack.org/ | sh
|
||||
|
||||
# Run tests to determine that the software installed as expected
|
||||
echo "Testing to make sure that script performed as expected, and basic scenarios work"
|
||||
|
||||
@@ -54,9 +54,3 @@ rubys=$(ls $AGENT_TOOLSDIRECTORY/Ruby)
|
||||
for ruby in $rubys; do
|
||||
DocumentInstalledItemIndent "Ruby $ruby"
|
||||
done;
|
||||
|
||||
DocumentInstalledItem "PyPy:"
|
||||
pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy)
|
||||
for pypy in $pypys; do
|
||||
DocumentInstalledItemIndent "PyPy $pypy"
|
||||
done;
|
||||
97
images/linux/scripts/installers/pypy.sh
Normal file
97
images/linux/scripts/installers/pypy.sh
Normal file
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
## File: pypy.sh
|
||||
## Desc: Installs PyPy
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/document.sh
|
||||
|
||||
# Fail out if any setups fail
|
||||
set -e
|
||||
|
||||
# This function installs PyPy using the specified arguments:
|
||||
# $1=PACKAGE_URL
|
||||
function InstallPyPy
|
||||
{
|
||||
PACKAGE_URL=$1
|
||||
|
||||
PACKAGE_TAR_NAME=$(echo $PACKAGE_URL | awk -F/ '{print $NF}')
|
||||
echo "Downloading tar archive '$PACKAGE_TAR_NAME' - '$PACKAGE_URL'"
|
||||
PACKAGE_TAR_TEMP_PATH="/tmp/$PACKAGE_TAR_NAME"
|
||||
wget -q -O $PACKAGE_TAR_TEMP_PATH $PACKAGE_URL
|
||||
|
||||
echo "Expand '$PACKAGE_TAR_NAME' to the /tmp folder"
|
||||
tar xf $PACKAGE_TAR_TEMP_PATH -C /tmp
|
||||
|
||||
# Get Python version
|
||||
PACKAGE_NAME=${PACKAGE_TAR_NAME/.tar.bz2/}
|
||||
MAJOR_VERSION=$(echo ${PACKAGE_NAME/pypy/} | cut -d. -f1)
|
||||
PYTHON_MAJOR="python$MAJOR_VERSION"
|
||||
|
||||
if [ $MAJOR_VERSION != 2 ]; then
|
||||
PYPY_MAJOR="pypy$MAJOR_VERSION"
|
||||
else
|
||||
PYPY_MAJOR="pypy"
|
||||
fi
|
||||
|
||||
PACKAGE_TEMP_FOLDER="/tmp/$PACKAGE_NAME"
|
||||
PYTHON_FULL_VERSION=$("$PACKAGE_TEMP_FOLDER/bin/$PYPY_MAJOR" -c "import sys;print('{}.{}.{}'.format(sys.version_info[0],sys.version_info[1],sys.version_info[2]))")
|
||||
|
||||
# PyPy folder structure
|
||||
PYPY_TOOLCACHE_PATH=$AGENT_TOOLSDIRECTORY/PyPy
|
||||
PYPY_TOOLCACHE_VERSION_PATH=$PYPY_TOOLCACHE_PATH/$PYTHON_FULL_VERSION
|
||||
PYPY_TOOLCACHE_VERSION_ARCH_PATH=$PYPY_TOOLCACHE_VERSION_PATH/x64
|
||||
|
||||
echo "Check if PyPy hostedtoolcache folder exist..."
|
||||
if [ ! -d $PYPY_TOOLCACHE_PATH ]; then
|
||||
mkdir -p $PYPY_TOOLCACHE_PATH
|
||||
fi
|
||||
|
||||
echo "Create PyPy '$PYPY_TOOLCACHE_VERSION_PATH' folder"
|
||||
mkdir $PYPY_TOOLCACHE_VERSION_PATH
|
||||
|
||||
echo "Move PyPy '$PACKAGE_TEMP_FOLDER' binaries to '$PYPY_TOOLCACHE_VERSION_ARCH_PATH' folder"
|
||||
mv $PACKAGE_TEMP_FOLDER $PYPY_TOOLCACHE_VERSION_ARCH_PATH
|
||||
|
||||
echo "Create additional symlinks (Required for UsePythonVersion Azure DevOps task)"
|
||||
cd $PYPY_TOOLCACHE_VERSION_ARCH_PATH/bin
|
||||
ln -s $PYPY_MAJOR $PYTHON_MAJOR
|
||||
ln -s $PYTHON_MAJOR python
|
||||
|
||||
chmod +x ./python ./$PYTHON_MAJOR
|
||||
|
||||
echo "Install latest Pip"
|
||||
./python -m ensurepip
|
||||
./python -m pip install --ignore-installed pip
|
||||
|
||||
echo "Create complete file"
|
||||
touch $PYPY_TOOLCACHE_VERSION_PATH/x64.complete
|
||||
|
||||
echo "Remove '$PACKAGE_TAR_TEMP_PATH'"
|
||||
rm -f $PACKAGE_TAR_TEMP_PATH
|
||||
}
|
||||
|
||||
function getPyPyVersions
|
||||
{
|
||||
uri="https://api.bitbucket.org/2.0/repositories/pypy/pypy/downloads?pagelen=100"
|
||||
curl -s -N $uri | jq -r ".values[].links.self.href|select(contains(\"linux64\"))"
|
||||
}
|
||||
|
||||
# Installation PyPy
|
||||
pypyVersions=$(getPyPyVersions)
|
||||
toolsetJson="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
toolsetVersions=$(cat $toolsetJson | jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]')
|
||||
|
||||
for toolsetVersion in $toolsetVersions; do
|
||||
latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+-" | head -1)
|
||||
|
||||
if [[ -z "$latestMajorPyPyVersion" ]]; then
|
||||
echo "Failed to get PyPy version '$toolsetVersion'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
InstallPyPy $latestMajorPyPyVersion
|
||||
done
|
||||
|
||||
chown -R "$SUDO_USER:$SUDO_USER" "$AGENT_TOOLSDIRECTORY/PyPy"
|
||||
@@ -70,4 +70,3 @@ done;
|
||||
AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
||||
|
||||
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"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
################################################################################
|
||||
|
||||
availableSpaceMB=$(df / -hm | sed 1d | awk '{ print $4}')
|
||||
minimumFreeSpaceMB=18000
|
||||
minimumFreeSpaceMB=17800
|
||||
|
||||
echo "Available disk space: $availableSpaceMB MB"
|
||||
if [ $availableSpaceMB -le $minimumFreeSpaceMB ]; then
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
"@actions/toolcache-ruby-ubuntu-1604-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"@actions/toolcache-pypy-ubuntu-1604-x64": [
|
||||
"2", "3"
|
||||
],
|
||||
"@actions/toolcache-boost-ubuntu-1604-x64": [
|
||||
"1.69", "1.72"
|
||||
]
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
"@actions/toolcache-ruby-ubuntu-1804-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"@actions/toolcache-pypy-ubuntu-1804-x64": [
|
||||
"2", "3"
|
||||
],
|
||||
"@actions/toolcache-boost-ubuntu-1804-x64": [
|
||||
"1.69", "1.72"
|
||||
]
|
||||
|
||||
@@ -14,6 +14,15 @@
|
||||
"3.8.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "PyPy",
|
||||
"arch": "x64",
|
||||
"platform" : "linux",
|
||||
"versions": [
|
||||
"2.7",
|
||||
"3.6"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "node",
|
||||
"url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json",
|
||||
|
||||
@@ -14,6 +14,15 @@
|
||||
"3.8.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "PyPy",
|
||||
"arch": "x64",
|
||||
"platform" : "linux",
|
||||
"versions": [
|
||||
"2.7",
|
||||
"3.6"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "node",
|
||||
"url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json",
|
||||
|
||||
@@ -268,6 +268,7 @@
|
||||
"{{template_dir}}/scripts/installers/azpowershell.sh",
|
||||
"{{template_dir}}/scripts/helpers/containercache.sh",
|
||||
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
||||
"{{template_dir}}/scripts/installers/pypy.sh",
|
||||
"{{template_dir}}/scripts/installers/python.sh",
|
||||
"{{template_dir}}/scripts/installers/test-toolcache.sh"
|
||||
],
|
||||
|
||||
@@ -272,6 +272,7 @@
|
||||
"{{template_dir}}/scripts/installers/azpowershell.sh",
|
||||
"{{template_dir}}/scripts/helpers/containercache.sh",
|
||||
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
|
||||
"{{template_dir}}/scripts/installers/pypy.sh",
|
||||
"{{template_dir}}/scripts/installers/python.sh",
|
||||
"{{template_dir}}/scripts/installers/test-toolcache.sh"
|
||||
],
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
# OS X info
|
||||
# macOS info
|
||||
- System Version: macOS 10.15.4 (19E287)
|
||||
- Kernel Version: Darwin 19.4.0
|
||||
- System Integrity Protection: Enabled
|
||||
- Image Version: 20200430.1
|
||||
- Image Version: 20200507.1
|
||||
|
||||
# Installed Software
|
||||
## Language and Runtime
|
||||
## 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.31+11-CA (build 13.0.3+3-MTS)
|
||||
- Java 14: Zulu14.28+21-CA (build 14.0.1+8)
|
||||
- Rust 1.43.0
|
||||
- Rust 1.43.1
|
||||
- Clang/LLVM 10.0.0
|
||||
- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0
|
||||
- gcc-9 (Homebrew GCC 9.3.0_1) 9.3.0
|
||||
- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0
|
||||
- GNU Fortran (Homebrew GCC 9.3.0_1) 9.3.0
|
||||
- Node.js v12.16.3
|
||||
- NVM 0.33.11
|
||||
- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.3 v13.14.0
|
||||
- NVM 0.35.3
|
||||
- NVM - Cached node versions: v6.17.1 v8.17.0 v10.20.1 v12.16.3 v13.14.0 v14.2.0
|
||||
- PowerShell 7.0.0
|
||||
- Python 2.7.17
|
||||
- Python 3.7.7
|
||||
@@ -30,33 +30,33 @@
|
||||
- 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.14
|
||||
- Homebrew 2.2.15
|
||||
- NPM 6.14.4
|
||||
- Yarn 1.22.4
|
||||
- NuGet 5.5.0.6382
|
||||
- Pip 19.3.1 (python 2.7)
|
||||
- Pip 20.0.2 (python 3.7)
|
||||
- Miniconda 4.8.2
|
||||
- RubyGems 3.1.2
|
||||
- RubyGems 3.1.3
|
||||
|
||||
## Project Management
|
||||
### Project Management
|
||||
- Apache Maven 3.6.3
|
||||
- Gradle 6.3
|
||||
- Gradle 6.4
|
||||
|
||||
## Utilities
|
||||
### Utilities
|
||||
- Curl 7.70.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
|
||||
- Packer 1.5.6
|
||||
- GNU parallel 20200422
|
||||
- OpenSSL 1.0.2t 10 Sep 2019
|
||||
- jq 1.6
|
||||
@@ -64,61 +64,61 @@
|
||||
- psql (PostgreSQL) 12.2
|
||||
- PostgreSQL 12.2
|
||||
- aria2 1.35.0
|
||||
- azcopy 10.4.1
|
||||
- azcopy 10.4.3
|
||||
- zstd 1.4.4
|
||||
- bazel 3.1.0
|
||||
- bazelisk v1.4.0
|
||||
- helm v3.2.0+ge11b7ce
|
||||
- virtualbox 6.1.6r137129
|
||||
- Vagrant 2.2.7
|
||||
- Vagrant 2.2.8
|
||||
|
||||
## Tools
|
||||
### Tools
|
||||
- Fastlane 2.146.1
|
||||
- Cmake 3.17.2
|
||||
- App Center CLI 2.5.0
|
||||
- App Center CLI 2.5.1
|
||||
- Azure CLI 2.5.1
|
||||
- AWS CLI 2.0.10
|
||||
- AWS SAM CLI 0.48.0
|
||||
- Aliyun CLI 3.0.39
|
||||
|
||||
## Browsers
|
||||
### Browsers
|
||||
- Safari 13.1 (15609.1.20.111.8)
|
||||
- SafariDriver 13.1 (15609.1.20.111.8)
|
||||
- Google Chrome 81.0.4044.129
|
||||
- ChromeDriver 81.0.4044.69
|
||||
- Microsoft Edge 81.0.416.68
|
||||
- Google Chrome 81.0.4044.138
|
||||
- ChromeDriver 81.0.4044.138
|
||||
- Microsoft Edge 81.0.416.68
|
||||
- MSEdgeDriver 81.0.416.68
|
||||
- Mozilla Firefox 75.0
|
||||
- Mozilla Firefox 76.0
|
||||
- geckodriver 0.26.0
|
||||
|
||||
## Toolcache
|
||||
### Ruby
|
||||
### Toolcache
|
||||
#### Ruby
|
||||
- 2.4.10
|
||||
- 2.5.8
|
||||
- 2.6.6
|
||||
- 2.7.1
|
||||
|
||||
### Python
|
||||
#### Python
|
||||
- 2.7.18
|
||||
- 3.5.9
|
||||
- 3.6.10
|
||||
- 3.7.7
|
||||
- 3.8.2
|
||||
|
||||
### PyPy
|
||||
#### PyPy
|
||||
- 2.7.17
|
||||
- 3.6.9
|
||||
|
||||
## Xamarin
|
||||
### Visual Studio for Mac
|
||||
- 8.5.4.12
|
||||
### Xamarin
|
||||
#### Visual Studio for Mac
|
||||
- 8.5.5.7
|
||||
|
||||
### 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
|
||||
@@ -127,7 +127,7 @@
|
||||
- 13.4.0.2
|
||||
- 13.2.0.47
|
||||
|
||||
### Xamarin.Mac
|
||||
#### Xamarin.Mac
|
||||
- 6.16.0.13
|
||||
- 6.14.1.39
|
||||
- 6.10.0.21
|
||||
@@ -136,18 +136,18 @@
|
||||
- 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.5 (beta) | 11N605c | /Applications/Xcode_11.5_beta.app |
|
||||
| 11.5 (beta) | 11N605f | /Applications/Xcode_11.5_beta.app |
|
||||
| 11.4.1 (default) | 11E503a | /Applications/Xcode_11.4.1.app |
|
||||
| 11.4 | 11E146 | /Applications/Xcode_11.4.app |
|
||||
| 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app |
|
||||
@@ -158,14 +158,14 @@
|
||||
| 11.0 | 11A420a | /Applications/Xcode_11.app |
|
||||
| 10.3 | 10G8 | /Applications/Xcode_10.3.app |
|
||||
|
||||
### Xcode Support Tools
|
||||
- Nomad CLI 3.1.2
|
||||
#### Xcode Support Tools
|
||||
- Nomad CLI 3.1.3
|
||||
- Nomad CLI IPA ipa 0.14.3
|
||||
- xcpretty 0.3.0
|
||||
- xctool 0.3.7
|
||||
- xcversion 2.6.4
|
||||
|
||||
### Installed SDKs
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ----------------------- | -------------------- | ---------------------------------------------------------- |
|
||||
| macOS 10.14 | macosx10.14 | 10.3 |
|
||||
@@ -200,7 +200,7 @@
|
||||
| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5 |
|
||||
| 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, 11.5 |
|
||||
|
||||
### Installed Simulators
|
||||
#### 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) |
|
||||
@@ -220,18 +220,18 @@
|
||||
| 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<br>11.5 | 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 30.0.0 |
|
||||
| platform-tools | Android SDK Platform-Tools, Revision 30.0.1 |
|
||||
|
||||
### Android SDK Platforms
|
||||
#### Android SDK Platforms
|
||||
| Package Name | Description |
|
||||
| ------------ | ----------------------------------- |
|
||||
| android-24 | Android SDK Platform 24, Revision 2 |
|
||||
@@ -241,7 +241,7 @@
|
||||
| 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 |
|
||||
@@ -268,17 +268,16 @@
|
||||
| build-tools-29.0.1 | Android SDK Build-Tools, Revision 29.0.1 |
|
||||
| build-tools-29.0.2 | Android SDK Build-Tools, Revision 29.0.2 |
|
||||
| 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 |
|
||||
| build-tools-30.0.0-rc4 | Android SDK Build-Tools, Revision 30.0.0 rc4 |
|
||||
|
||||
### Android Utils
|
||||
#### Android Utils
|
||||
| Package Name | Version |
|
||||
| ---------------- | ------------ |
|
||||
| cmake | 3.6.4111459 |
|
||||
| lldb | 3.1.4508709 |
|
||||
| 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 |
|
||||
@@ -286,7 +285,7 @@
|
||||
| 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 |
|
||||
|
||||
@@ -334,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-PyPy.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
@@ -521,6 +530,14 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"elevated_user": "SYSTEM",
|
||||
"elevated_password": "",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Msys2.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -533,6 +550,18 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-TypeScript.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Haskell.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Stack.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -648,6 +677,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-AzureDevOpsCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Msys2.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
@@ -823,6 +858,18 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-TypeScript.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Haskell.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Stack.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<!--- DO NOT EDIT - This markdown file is autogenerated. -->
|
||||
# Windows Server 2016
|
||||
|
||||
The following software is installed on machines with the 20200426.1 update.
|
||||
The following software is installed on machines with the 20200505.1 update.
|
||||
|
||||
Components marked with **\*** have been upgraded since the previous version of the image.
|
||||
|
||||
@@ -177,7 +178,7 @@ _Version:_ 1.1.1809.18001<br/>
|
||||
_Version:_ 1.1.1809.18001<br/>
|
||||
|
||||
## AWS CLI
|
||||
|
||||
|
||||
_Version:_ aws-cli 2.0.10<br/>
|
||||
|
||||
## Android SDK Build Tools
|
||||
@@ -420,6 +421,10 @@ _Location:_ C:\Modules\az_3.1.0\Az\3.1.0\Az.psd1
|
||||
#### 3.5.0
|
||||
|
||||
This version is saved but not installed
|
||||
_Location:_ C:\Modules\az_3.5.0\Az\3.5.0\Az.psd1
|
||||
#### 3.8.0
|
||||
|
||||
This version is saved but not installed
|
||||
_Location:_ C:\Modules\az_3.8.0\Az\3.8.0\Az.psd1
|
||||
|
||||
## TLS12
|
||||
@@ -428,29 +433,33 @@ _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.5.1
|
||||
_Environment:_
|
||||
* PATH: contains location of az.cmd
|
||||
|
||||
## AWS SAM CLI
|
||||
|
||||
|
||||
_Version:_ 0.48.0<br/>
|
||||
|
||||
## Azure DevOps Cli extension
|
||||
|
||||
_Version:_ azure-devops 0.18.0
|
||||
|
||||
## Python
|
||||
|
||||
_Version:_ 2.7.17 (x64)<br/>_Version:_ 3.5.4 (x64)<br/>_Version:_ 3.6.8 (x64)<br/>_Version:_ 3.7.6 (x64)<br/>_Version:_ 3.8.2 (x64)<br/>_Version:_ 2.7.17 (x86)<br/>_Version:_ 3.5.4 (x86)<br/>_Version:_ 3.6.8 (x86)<br/>_Version:_ 3.7.6 (x86)<br/>_Version:_ 3.8.2 (x86)<br/><br/>__System default version:__ Python 3.7.6<br/>_Environment:_<br/>* Location: C:\hostedtoolcache\windows\Python\3.7.6\x64<br/>* PATH: contains the location of Python 3.7.6<br/>
|
||||
|
||||
## PyPy
|
||||
|
||||
_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.3<br/>
|
||||
|
||||
## Python (x64)
|
||||
|
||||
_Version:_ 2.7.18<br/>_Version:_ 3.5.4<br/>_Version:_ 3.6.8<br/>_Version:_ 3.7.7<br/>_Version:_ 3.8.2<br/><br/>__System default version:__ Python 3.7.7<br/>_Environment:_<br/>* Location: C:\hostedtoolcache\windows\Python\3.7.7\x64<br/>* PATH: contains the location of Python 3.7.7<br/>
|
||||
|
||||
## Python (x86)
|
||||
|
||||
_Version:_ 2.7.18<br/>_Version:_ 3.5.4<br/>_Version:_ 3.6.8<br/>_Version:_ 3.7.7<br/>_Version:_ 3.8.2<br/>
|
||||
|
||||
## OpenSSL
|
||||
@@ -527,8 +536,8 @@ _Environment:_
|
||||
|
||||
## Rust (64-bit)
|
||||
|
||||
#### 1.43.0
|
||||
#### 1.43.0
|
||||
_Environment:_
|
||||
* _Location:_ C:\Rust\.cargo\bin
|
||||
* PATH: contains the location of rustc.exe
|
||||
|
||||
@@ -548,12 +557,12 @@ _Environment:_
|
||||
|
||||
## Google Chrome
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.4044.129
|
||||
|
||||
## Microsoft Edge
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.68
|
||||
|
||||
## Mozilla Firefox
|
||||
@@ -590,7 +599,7 @@ _Environment:_
|
||||
|
||||
#### Microsoft Edge Driver
|
||||
|
||||
_version:_
|
||||
_version:_
|
||||
81.0.416.68
|
||||
|
||||
_Environment:_
|
||||
@@ -598,7 +607,7 @@ _Environment:_
|
||||
|
||||
|
||||
## Node.js
|
||||
|
||||
|
||||
_Version:_ 12.16.3<br/>
|
||||
_Architecture:_ x64<br/>
|
||||
_Environment:_
|
||||
@@ -637,9 +646,13 @@ _Environment:_
|
||||
#### 1.7.0_232
|
||||
|
||||
_Location:_ C:\Program Files\Java\zulu-7-azure-jdk_7.31.0.5-7.0.232-win_x64
|
||||
|
||||
|
||||
#### 13.0.3
|
||||
|
||||
|
||||
_Location:_ C:\Program Files\Java\zulu-13-azure-jdk_13.31.11-13.0.3-win_x64
|
||||
|
||||
#### 13.0.3
|
||||
|
||||
_Location:_ C:\Program Files\Java\zulu-13-azure-jdk_13.31.11-13.0.3-win_x64
|
||||
|
||||
## Ant
|
||||
@@ -664,7 +677,7 @@ _Environment:_
|
||||
* PATH: contains location of gradle
|
||||
|
||||
## CMake
|
||||
|
||||
|
||||
_Version:_ 3.17.2<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of cmake.exe
|
||||
@@ -843,7 +856,7 @@ _Version:_ 6.0.4<br/>
|
||||
_Version:_ 6.0.4<br/>
|
||||
|
||||
## GitVersion
|
||||
|
||||
|
||||
_Version:_ 5.3.2.0<br/>
|
||||
|
||||
## Nullsoft Install System (NSIS)
|
||||
|
||||
@@ -307,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-PyPy.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
@@ -500,6 +509,14 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"elevated_user": "SYSTEM",
|
||||
"elevated_password": "",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Msys2.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -512,6 +529,18 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-TypeScript.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Haskell.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-Stack.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -645,6 +674,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-AzureDevOpsCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Msys2.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
@@ -808,6 +843,18 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-TypeScript.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Haskell.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Stack.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
|
||||
@@ -29,4 +29,5 @@ Export-ModuleMember -Function @(
|
||||
'Test-IsWin19'
|
||||
'Test-IsWin16'
|
||||
'Choco-Install'
|
||||
'Extract-7Zip'
|
||||
)
|
||||
|
||||
@@ -221,12 +221,15 @@ function Start-DownloadWithRetry
|
||||
(
|
||||
[Parameter(Mandatory)]
|
||||
[string] $Url,
|
||||
[Parameter(Mandatory)]
|
||||
[string] $Name,
|
||||
[string] $DownloadPath = "${env:Temp}",
|
||||
[int] $Retries = 20
|
||||
)
|
||||
|
||||
if ([String]::IsNullOrEmpty($Name)) {
|
||||
$Name = [IO.Path]::GetFileName($Url)
|
||||
}
|
||||
|
||||
$filePath = Join-Path -Path $DownloadPath -ChildPath $Name
|
||||
|
||||
#Default retry logic for the package.
|
||||
@@ -386,3 +389,22 @@ function Test-IsWin16
|
||||
{
|
||||
(Get-WinVersion) -match "2016"
|
||||
}
|
||||
|
||||
function Extract-7Zip {
|
||||
param
|
||||
(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$Path,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$DestinationPath
|
||||
)
|
||||
|
||||
Write-Host "Expand archive '$PATH' to '$DestinationPath' directory"
|
||||
7z.exe x "$Path" -o"$DestinationPath" -y | Out-Null
|
||||
|
||||
if ($LASTEXITCODE -ne 0)
|
||||
{
|
||||
Write-Host "There is an error during expanding '$Path' to '$DestinationPath' directory"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ $ChromeDriverZipDownloadUrl = "https://chromedriver.storage.googleapis.com/${Chr
|
||||
$ChromeDriverArchPath = Start-DownloadWithRetry -Url $ChromeDriverZipDownloadUrl -Name $ChromeDriverArchName
|
||||
|
||||
Write-Host "Expand Chrome WebDriver archive..."
|
||||
Expand-Archive -Path $ChromeDriverArchPath -DestinationPath $ChromeDriverPath -Force
|
||||
Extract-7Zip -Path $ChromeDriverArchPath -DestinationPath $ChromeDriverPath
|
||||
|
||||
Write-Host "Setting the environment variables..."
|
||||
setx ChromeWebDriver "$ChromeDriverPath" /M
|
||||
|
||||
@@ -17,7 +17,7 @@ New-Item -Path $CloudFoundryCliPath -ItemType Directory -Force
|
||||
|
||||
# Extract the zip archive
|
||||
Write-Host "Extracting cf cli..."
|
||||
Expand-Archive -Path $CloudFoundryArchPath -DestinationPath $CloudFoundryCliPath -Force
|
||||
Extract-7Zip -Path $CloudFoundryArchPath -DestinationPath $CloudFoundryCliPath
|
||||
|
||||
# Add cf to path
|
||||
Add-MachinePathItem $CloudFoundryCliPath
|
||||
@@ -6,6 +6,6 @@
|
||||
Import-Module -Name ImageHelpers -Force
|
||||
|
||||
$InstallerName = "DacFramework.msi"
|
||||
$InstallerUrl = "https://download.microsoft.com/download/f/1/9/f19eaee6-0728-4a0b-9755-9808acc8af0b/EN/x64/${InstallerName}"
|
||||
$InstallerUrl = "https://go.microsoft.com/fwlink/?linkid=2128142"
|
||||
|
||||
Install-Binary -Url $InstallerUrl -Name $InstallerName
|
||||
@@ -29,7 +29,7 @@ $EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVer
|
||||
$EdgeDriverArchPath = Start-DownloadWithRetry -Url $EdgeDriverDownloadUrl -Name $EdgeDriverArchName
|
||||
|
||||
Write-Host "Expand Microsoft Edge WebDriver archive..."
|
||||
Expand-Archive -Path $EdgeDriverArchPath -DestinationPath $EdgeDriverPath -Force
|
||||
Extract-7Zip -Path $EdgeDriverArchPath -DestinationPath $EdgeDriverPath
|
||||
|
||||
Write-Host "Setting the environment variables..."
|
||||
setx EdgeWebDriver "$EdgeDriverPath" /M
|
||||
|
||||
@@ -45,7 +45,7 @@ $GeckoDriverDownloadUrl = $GeckoDriverWindowsAsset.browser_download_url
|
||||
$GeckoDriverArchPath = Start-DownloadWithRetry -Url $GeckoDriverDownloadUrl -Name $GeckoDriverArchName
|
||||
|
||||
Write-Host "Expand Gecko WebDriver archive..."
|
||||
Expand-Archive -Path $GeckoDriverArchPath -DestinationPath $GeckoDriverPath -Force
|
||||
Extract-7Zip -Path $GeckoDriverArchPath -DestinationPath $GeckoDriverPath
|
||||
|
||||
Write-Host "Setting the environment variables..."
|
||||
Add-MachinePathItem -PathItem $GeckoDriverPath
|
||||
|
||||
@@ -15,7 +15,7 @@ function Install-GoVersion
|
||||
[Switch] $addToDefaultPath
|
||||
)
|
||||
|
||||
$latestVersionObject = $refsJson | Where-Object { $_.ref -Match "refs/tags/go$goVersion[./d]*" } | Select-Object -Last 1
|
||||
$latestVersionObject = $refsJson | Where-Object { $_.ref -Match "refs/tags/go$goVersion[./d]*" } | Select-Object -Last 1
|
||||
$latestVersion = $latestVersionObject.ref.replace('refs/tags/go','')
|
||||
|
||||
# Download the Go zip archive.
|
||||
@@ -30,7 +30,7 @@ function Install-GoVersion
|
||||
# Extract the zip archive. It contains a single directory named "go".
|
||||
Write-Host "Extracting Go $latestVersion..."
|
||||
$toolDirectory = Join-Path $env:AGENT_TOOLSDIRECTORY "go\$latestVersion"
|
||||
7z.exe x $goArchPath -o"$toolDirectory" -y | Out-Null
|
||||
Extract-7Zip -Path $goArchPath -DestinationPath $toolDirectory
|
||||
|
||||
# Rename the extracted "go" directory to "x64" for full path "C:\hostedtoolcache\windows\Go\1.14.2\x64\..."
|
||||
Rename-Item -path "$toolDirectory\go" -newName "x64"
|
||||
|
||||
19
images/win/scripts/Installers/Install-Haskell.ps1
Normal file
19
images/win/scripts/Installers/Install-Haskell.ps1
Normal file
@@ -0,0 +1,19 @@
|
||||
################################################################################
|
||||
## File: Install-Haskell.ps1
|
||||
## Desc: Install Haskell for Windows
|
||||
################################################################################
|
||||
|
||||
# Get 3 latest versions of GHC
|
||||
[Version[]] $ChocoVersionsOutput = & choco search ghc --allversions --limit-output | Where-Object { $_.StartsWith("ghc|") } | ForEach-Object { $_.TrimStart("ghc|") }
|
||||
$MajorMinorGroups = $ChocoVersionsOutput | Sort-Object -Descending | Group-Object { $_.ToString(2) } | Select-Object -First 3
|
||||
$VersionsList = $MajorMinorGroups | ForEach-Object { $_.Group | Select-Object -First 1 } | Sort-Object
|
||||
|
||||
# The latest version will be installed as a default
|
||||
ForEach ($version in $VersionsList)
|
||||
{
|
||||
Write-Host "Installing ghc $version..."
|
||||
Choco-Install -PackageName ghc -ArgumentList "--version", $version, "-m"
|
||||
}
|
||||
|
||||
Write-Host "Installing cabal..."
|
||||
Choco-Install -PackageName cabal
|
||||
@@ -2,21 +2,21 @@
|
||||
## File: Install-SeleniumWebDrivers.ps1
|
||||
## Desc: Install Selenium Web Drivers
|
||||
################################################################################
|
||||
$DestinationPath = "$($env:SystemDrive)\";
|
||||
$DestinationPath = "$($env:SystemDrive)\"
|
||||
$DriversZipFile = "SeleniumWebDrivers.zip"
|
||||
Write-Host "Destination path: [$DestinationPath]";
|
||||
Write-Host "Selenium drivers download and install...";
|
||||
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;
|
||||
Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/${DriversZipFile}" -OutFile $DriversZipFile
|
||||
}
|
||||
catch {
|
||||
Write-Error "[!] Failed to download $DriversZipFile";
|
||||
exit 1;
|
||||
Write-Error "[!] Failed to download $DriversZipFile"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$TempSeleniumDir = Join-Path $Env:TEMP "SeleniumWebDrivers"
|
||||
Expand-Archive -Path $DriversZipFile -DestinationPath $Env:TEMP -Force;
|
||||
Remove-Item $DriversZipFile;
|
||||
Extract-7Zip -Path $DriversZipFile -DestinationPath $Env:TEMP
|
||||
Remove-Item $DriversZipFile
|
||||
|
||||
$SeleniumWebDriverPath = Join-Path $DestinationPath "SeleniumWebDrivers"
|
||||
$IEDriverPathTemp = Join-Path $TempSeleniumDir 'IEDriver'
|
||||
@@ -29,4 +29,4 @@ Move-Item -Path "$IEDriverPathTemp" -Destination $SeleniumWebDriverPath
|
||||
|
||||
Write-Host "Setting the environment variables"
|
||||
|
||||
setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M;
|
||||
setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M
|
||||
|
||||
@@ -5,6 +5,44 @@
|
||||
|
||||
Import-Module -Name ImageHelpers -Force
|
||||
|
||||
function Set-JavaPath {
|
||||
param (
|
||||
[string] $Version,
|
||||
[switch] $Default
|
||||
)
|
||||
|
||||
$filter = "*azure-jdk_${version}.*"
|
||||
$javaPath = (Get-ChildItem -Path 'C:\Program Files\Java' -Filter $filter | Sort-Object -Property Name -Descending | Select-Object -First 1).FullName
|
||||
|
||||
Write-Host "Set JAVA_HOME_${Version}_X64 environmental variable as $javaPath"
|
||||
setx JAVA_HOME_${Version}_X64 $javaPath /M
|
||||
|
||||
if ($Default)
|
||||
{
|
||||
$currentPath = Get-MachinePath
|
||||
|
||||
$pathSegments = $currentPath.Split(';')
|
||||
$newPathSegments = @()
|
||||
|
||||
foreach ($pathSegment in $pathSegments)
|
||||
{
|
||||
if ($pathSegment -notlike '*java*')
|
||||
{
|
||||
$newPathSegments += $pathSegment
|
||||
}
|
||||
}
|
||||
|
||||
$newPath = [string]::Join(';', $newPathSegments)
|
||||
$newPath = $javaPath + '\bin;' + $newPath
|
||||
|
||||
Write-Host "Add $javaPath\bin to PATH"
|
||||
Set-MachinePath -NewPath $newPath
|
||||
|
||||
Write-Host "Set JAVA_HOME environmental variable as $javaPath"
|
||||
setx JAVA_HOME $javaPath /M
|
||||
}
|
||||
}
|
||||
|
||||
# Download the Azul Systems Zulu JDKs
|
||||
# See https://www.azul.com/downloads/azure-only/zulu/
|
||||
$azulJDKURLs = @(
|
||||
@@ -17,44 +55,14 @@ $azulJDKURLs = @(
|
||||
foreach ($azulJDKURL in $azulJDKURLs)
|
||||
{
|
||||
$archivePath = Start-DownloadWithRetry -Url $azulJDKURL -Name $([IO.Path]::GetFileName($azulJDKURL))
|
||||
Expand-Archive -Path $archivePath -DestinationPath "C:\Program Files\Java\"
|
||||
Extract-7Zip -Path $archivePath -DestinationPath "C:\Program Files\Java\"
|
||||
}
|
||||
|
||||
$currentPath = Get-MachinePath
|
||||
|
||||
$pathSegments = $currentPath.Split(';')
|
||||
$newPathSegments = @()
|
||||
|
||||
foreach ($pathSegment in $pathSegments)
|
||||
{
|
||||
if ($pathSegment -notlike '*java*')
|
||||
{
|
||||
$newPathSegments += $pathSegment
|
||||
}
|
||||
}
|
||||
|
||||
$java7Installs = Get-ChildItem -Path 'C:\Program Files\Java' -Filter '*azure-jdk*7*' | Sort-Object -Property Name -Descending | Select-Object -First 1
|
||||
$latestJava7Install = $java7Installs.FullName;
|
||||
|
||||
$java8Installs = Get-ChildItem -Path 'C:\Program Files\Java' -Filter '*azure-jdk*8*' | Sort-Object -Property Name -Descending | Select-Object -First 1
|
||||
$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
|
||||
|
||||
Set-MachinePath -NewPath $newPath
|
||||
|
||||
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
|
||||
# Set PATH and env variables
|
||||
Set-JavaPath -Version 7
|
||||
Set-JavaPath -Version 8 -Default
|
||||
Set-JavaPath -Version 11
|
||||
Set-JavaPath -Version 13
|
||||
|
||||
# Install Java tools
|
||||
# Force chocolatey to ignore dependencies on Ant and Maven or else they will download the Oracle JDK
|
||||
@@ -82,6 +90,6 @@ $uri = 'https://ayera.dl.sourceforge.net/project/cobertura/cobertura/2.1.1/cober
|
||||
$coberturaPath = "C:\cobertura-2.1.1"
|
||||
|
||||
$archivePath = Start-DownloadWithRetry -Url $uri -Name "cobertura.zip"
|
||||
Expand-Archive -Path $archivePath -DestinationPath "C:\"
|
||||
Extract-7Zip -Path $archivePath -DestinationPath "C:\"
|
||||
|
||||
setx COBERTURA_HOME $coberturaPath /M
|
||||
|
||||
76
images/win/scripts/Installers/Install-Msys2.ps1
Normal file
76
images/win/scripts/Installers/Install-Msys2.ps1
Normal file
@@ -0,0 +1,76 @@
|
||||
################################################################################
|
||||
## File: Install-Msys2.ps1
|
||||
## Desc: Install Msys2 and 64-bit gcc, cmake, & llvm (32-bit commented out)
|
||||
################################################################################
|
||||
|
||||
# References
|
||||
# https://github.com/msys2/MINGW-packages/blob/master/azure-pipelines.yml
|
||||
# https://packages.msys2.org/group/
|
||||
|
||||
$origPath = $env:PATH
|
||||
$gitPath = "$env:ProgramFiles\Git"
|
||||
|
||||
# get info from https://sourceforge.net/projects/msys2/files/Base/x86_64/
|
||||
$msys2Uri = "http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz"
|
||||
$msys2File = "$env:TEMP\msys2.tar.xz"
|
||||
|
||||
# Download the latest msys2 x86_64
|
||||
Write-Host "Starting msys2 download"
|
||||
(New-Object System.Net.WebClient).DownloadFile($msys2Uri, $msys2File)
|
||||
Write-Host "Finished download"
|
||||
|
||||
$msys2FileU = "/$msys2File".replace(':', '')
|
||||
|
||||
$tar = "$gitPath\usr\bin\tar.exe"
|
||||
|
||||
# extract tar.xz to C:\
|
||||
Write-Host "Starting msys2 extraction"
|
||||
&$tar -Jxf $msys2FileU -C /c/
|
||||
Remove-Item $msys2File
|
||||
Write-Host "Finished extraction"
|
||||
|
||||
# Add msys2 bin tools folders to PATH temporary
|
||||
$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath"
|
||||
|
||||
Write-Host "bash pacman-key --init"
|
||||
bash.exe -c "pacman-key --init 2>&1"
|
||||
|
||||
Write-Host "bash pacman-key --populate msys2"
|
||||
bash.exe -c "pacman-key --populate msys2 2>&1"
|
||||
|
||||
Write-Host "pacman --noconfirm -Syyuu"
|
||||
pacman.exe -Syyuu --noconfirm
|
||||
pacman.exe -Syuu --noconfirm
|
||||
|
||||
Write-Host "Install msys2 packages"
|
||||
pacman.exe -S --noconfirm --needed --noprogressbar base-devel compression
|
||||
|
||||
# mingw package list
|
||||
$tools = "___clang ___cmake ___llvm ___toolchain ___ragel"
|
||||
|
||||
# install mingw64 packages
|
||||
Write-Host "Install mingw64 packages"
|
||||
$pre = "mingw-w64-x86_64-"
|
||||
pacman.exe -S --noconfirm --needed --noprogressbar $tools.replace('___', $pre).split(' ')
|
||||
|
||||
# install mingw32 packages
|
||||
Write-Host "Install mingw32 packages"
|
||||
$pre = "mingw-w64-i686-"
|
||||
pacman.exe -S --noconfirm --needed --noprogressbar $tools.replace('___', $pre).split(' ')
|
||||
|
||||
# clean all packages to decrease image size
|
||||
Write-Host "Clean packages"
|
||||
pacman.exe -Scc --noconfirm
|
||||
|
||||
Write-Host "Installed mingw64 packages"
|
||||
pacman.exe -Qs --noconfirm mingw-w64-x86_64-
|
||||
|
||||
Write-Host "Installed mingw32 packages"
|
||||
pacman.exe -Qs --noconfirm mingw-w64-i686-
|
||||
|
||||
Write-Host "Installed msys2 packages"
|
||||
pacman.exe -Qs --noconfirm
|
||||
|
||||
Write-Host "MSYS2 installation completed"
|
||||
|
||||
exit 0
|
||||
@@ -22,7 +22,7 @@ Install-Binary -Url $InstallerURI -Name $InstallerName -ArgumentList $ArgumentLi
|
||||
$mysqlArchPath = Start-DownloadWithRetry -Url $MysqlVersionUrl -Name "mysql.zip"
|
||||
|
||||
# Expand the zip
|
||||
Expand-Archive -Path $mysqlArchPath -DestinationPath "C:\" -Force
|
||||
Extract-7Zip -Path $mysqlArchPath -DestinationPath "C:\"
|
||||
|
||||
# Adding mysql in system environment path
|
||||
Add-MachinePathItem $mysqlPath
|
||||
120
images/win/scripts/Installers/Install-PyPy.ps1
Normal file
120
images/win/scripts/Installers/Install-PyPy.ps1
Normal file
@@ -0,0 +1,120 @@
|
||||
################################################################################
|
||||
## File: Install-PyPy.ps1
|
||||
## Team: CI-Build
|
||||
## Desc: Install PyPy
|
||||
################################################################################
|
||||
|
||||
function Get-PyPyVersions
|
||||
{
|
||||
$uri = "https://api.bitbucket.org/2.0/repositories/pypy/pypy/downloads?pagelen=100"
|
||||
try
|
||||
{
|
||||
(Invoke-RestMethod -Uri $uri).Values
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host "Enable to send request to the '$uri'. Error: '$_'"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
function Install-PyPy
|
||||
{
|
||||
param(
|
||||
[String]$PackagePath,
|
||||
[String]$Architecture
|
||||
)
|
||||
|
||||
# Expand archive with binaries
|
||||
$packageName = [IO.Path]::GetFileNameWithoutExtension((Split-Path -Path $packagePath -Leaf))
|
||||
$tempFolder = Join-Path -Path $env:Temp -ChildPath $packageName
|
||||
Extract-7Zip -Path $packagePath -DestinationPath $env:Temp
|
||||
|
||||
# Get Python version from binaries
|
||||
$pypyApp = Get-ChildItem -Path "$tempFolder\pypy*.exe" | Where-Object Name -match "pypy(\d+)?.exe"
|
||||
$pypyName = $pypyApp.Name
|
||||
$pypyVersion = & $pypyApp -c "import sys;print('{}.{}.{}'.format(sys.version_info[0],sys.version_info[1],sys.version_info[2]))"
|
||||
|
||||
if ($pypyVersion)
|
||||
{
|
||||
Write-Host "Installing PyPy $pypyVersion"
|
||||
$pypyToolcachePath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "PyPy"
|
||||
$pypyVersionPath = Join-Path -Path $pypyToolcachePath -ChildPath $pypyVersion
|
||||
$pypyArchPath = Join-Path -Path $pypyVersionPath -ChildPath $architecture
|
||||
|
||||
if (-not (Test-Path $pypyToolcachePath)) {
|
||||
Write-Host "Create PyPy toolcache folder"
|
||||
New-Item -ItemType Directory -Path $pypyToolcachePath | Out-Null
|
||||
}
|
||||
|
||||
Write-Host "Create PyPy '${pypyVersion}' folder in '${pypyVersionPath}'"
|
||||
New-Item -ItemType Directory -Path $pypyVersionPath -Force | Out-Null
|
||||
|
||||
Write-Host "Move PyPy '${pypyVersion}' files to '${pypyArchPath}'"
|
||||
Move-Item -Path $tempFolder -Destination $pypyArchPath | Out-Null
|
||||
|
||||
Write-Host "Install PyPy '${pypyVersion}' in '${pypyArchPath}'"
|
||||
cmd.exe /c "cd /d $pypyArchPath && mklink python.exe $pypyName && python.exe -m ensurepip && python.exe -m pip install --upgrade pip"
|
||||
|
||||
if ($LASTEXITCODE -ne 0)
|
||||
{
|
||||
Throw "Error happened during PyPy installation"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# https://github.com/actions/setup-python/blob/master/src/find-python.ts
|
||||
# https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/UsePythonVersionV0/usepythonversion.ts
|
||||
# // For PyPy, Windows uses 'bin', not 'Scripts'.
|
||||
# const _binDir = path.join(installDir, 'bin');
|
||||
# PyPy v7.3.1 or higher creates only Scripts folder therefore to preserve back compatibility with UsePythonVersionV0 task
|
||||
# We should create a Scripts -> bin symlink
|
||||
Write-Host "Symbolic link created for '$pypyArchPath\Scripts' <<===>> '$pypyArchPath\bin'"
|
||||
New-Item -Path "$pypyArchPath\bin" -ItemType SymbolicLink -Value "$pypyArchPath\Scripts" | Out-Null
|
||||
|
||||
Write-Host "Create complete file"
|
||||
New-Item -ItemType File -Path $pypyVersionPath -Name "$architecture.complete" | Out-Null
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "PyPy application is not found. Failed to expand '$packagePath' archive"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
Import-Module -Name ImageHelpers -Force -DisableNameChecking
|
||||
|
||||
# Get PyPy content from toolset
|
||||
$pypyTools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache | Where-Object Name -eq "PyPy"
|
||||
|
||||
# Get PyPy versions from the repo
|
||||
$pypyVersions = Get-PyPyVersions
|
||||
|
||||
Write-Host "Starting installation PyPy..."
|
||||
foreach($pypyTool in $pypyTools)
|
||||
{
|
||||
foreach($pypyVersion in $pypyTool.versions)
|
||||
{
|
||||
# Query latest PyPy version
|
||||
$filter = '{0}{1}-*-{2}.zip' -f $pypyTool.name, $pypyVersion, $pypyTool.platform
|
||||
$latestMajorPyPyVersion = $pypyVersions | Where-Object {
|
||||
$_.name -like $filter -and $_.name.Split('-')[1].Substring(1) -as [System.Version]
|
||||
} | Sort-Object {[System.Version]$_.name.Split('-')[1].Substring(1)} | Select-Object -Last 1
|
||||
|
||||
if ($latestMajorPyPyVersion)
|
||||
{
|
||||
$packageName = $latestMajorPyPyVersion.name
|
||||
$packageDate = $latestMajorPyPyVersion.created_on
|
||||
|
||||
Write-Host "Found PyPy '$packageName' package created on '$packageDate'"
|
||||
$url = $latestMajorPyPyVersion.links.self.href
|
||||
$tempPyPyPackagePath = Start-DownloadWithRetry -Url $url -Name $packageName
|
||||
Install-PyPy -PackagePath $tempPyPyPackagePath -Architecture $pypyTool.arch
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "Failed to query PyPy version '$pypyVersion' by '$filter' filter"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
}
|
||||
20
images/win/scripts/Installers/Install-Stack.ps1
Normal file
20
images/win/scripts/Installers/Install-Stack.ps1
Normal file
@@ -0,0 +1,20 @@
|
||||
################################################################################
|
||||
## File: Install-Stack.ps1
|
||||
## Desc: Install Stack for Windows
|
||||
################################################################################
|
||||
|
||||
Write-Host "Get the latest Stack version..."
|
||||
$StackReleasesJson = Invoke-RestMethod "https://api.github.com/repos/commercialhaskell/stack/releases/latest"
|
||||
$DownloadFilePattern = "windows-x86_64.zip"
|
||||
$DownloadUrl = $StackReleasesJson.assets | Where-Object { $_.name.EndsWith($DownloadFilePattern) } | Select-Object -ExpandProperty "browser_download_url" -First 1
|
||||
|
||||
Write-Host "Download stack archive"
|
||||
$DestinationPath = Join-Path $Env:AGENT_TOOLSDIRECTORY "stack\x64"
|
||||
$StackArchivePath = Start-DownloadWithRetry -Url $DownloadUrl
|
||||
|
||||
Write-Host "Expand stack archive"
|
||||
Extract-7Zip -Path $StackArchivePath -DestinationPath $DestinationPath
|
||||
|
||||
New-Item -Name "x64.complete" -Path $DestinationPath
|
||||
|
||||
Add-MachinePathItem -PathItem $DestinationPath
|
||||
@@ -48,7 +48,8 @@ $ErrorActionPreference = "Stop"
|
||||
Import-Module -Name ImageHelpers -Force
|
||||
|
||||
# Get toolcache content from toolset
|
||||
$tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache
|
||||
$ToolsToInstall = @("Python", "Node")
|
||||
$tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache | Where {$ToolsToInstall -contains $_.Name}
|
||||
|
||||
foreach ($tool in $tools) {
|
||||
# Get versions manifest for current tool
|
||||
|
||||
@@ -55,6 +55,10 @@ foreach ($BoostTool in $BoostTools)
|
||||
$CMakeFindBoostInfo = @"
|
||||
|
||||
#### _Notes:_
|
||||
|
||||
> ``BOOST_ROOT`` is not set on images but it is required by CMake. Please make sure you set this variable
|
||||
> value to either ``BOOST_ROOT_1_69_0`` or ``BOOST_ROOT_1_72_0`` depending on the Boost version you are using.
|
||||
|
||||
Link: https://cmake.org/cmake/help/latest/module/FindBoost.html
|
||||
|
||||
If Boost was built using the ``boost-cmake`` project or from ``Boost 1.70.0`` on it provides a package
|
||||
|
||||
78
images/win/scripts/Installers/Validate-Haskell.ps1
Normal file
78
images/win/scripts/Installers/Validate-Haskell.ps1
Normal file
@@ -0,0 +1,78 @@
|
||||
################################################################################
|
||||
## File: Validate-Haskell.ps1
|
||||
## Desc: Validate Haskell for Windows
|
||||
################################################################################
|
||||
|
||||
# GHC validation
|
||||
if (Get-Command -Name 'ghc')
|
||||
{
|
||||
Write-Host "ghc is on the path"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "ghc is not on path."
|
||||
exit 1
|
||||
}
|
||||
|
||||
$SoftwareName = "ghc"
|
||||
[String] $DefaultGhcVersion = & ghc --version
|
||||
$ChocoPackagesPath = Join-Path $env:ChocolateyInstall "lib"
|
||||
[Array] $GhcVersionList = Get-ChildItem -Path $ChocoPackagesPath -Filter "ghc.*" | ForEach-Object { $_.Name.TrimStart("ghc.") }
|
||||
|
||||
# Validation that accurate 3 versions of GHC are installed
|
||||
if ($GhcVersionList.Count -eq 3)
|
||||
{
|
||||
Write-Host "Versions of GHC are accurate"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "Versions of GHC not accurate"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Validation each of GHC version
|
||||
ForEach ($version in $GhcVersionList) {
|
||||
$BinGhcPath = Join-Path $env:ChocolateyInstall "lib\ghc.$version\tools\ghc-$version\bin\ghc.exe"
|
||||
if ((& $BinGhcPath --version) -match $version)
|
||||
{
|
||||
Write-Host "ghc $version is valid"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "ghc $version is not valid"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$GhcVersionsDescription = $GhcVersionList | ForEach-Object {
|
||||
$DefaultPostfix = if ($DefaultGhcVersion -match $_) { " (default)" } else { "" }
|
||||
"ghc $_ $DefaultPostfix `n"
|
||||
}
|
||||
|
||||
$Description = @"
|
||||
_Version:_
|
||||
$GhcVersionsDescription<br/>
|
||||
"@
|
||||
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
|
||||
|
||||
|
||||
# Cabal validation
|
||||
if (Get-Command -Name 'cabal')
|
||||
{
|
||||
Write-Host "cabal is on the path"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "cabal is not on path."
|
||||
exit 1
|
||||
}
|
||||
|
||||
$SoftwareName = "cabal"
|
||||
|
||||
$Description = @"
|
||||
_Version:_ $(cabal --version)<br/>
|
||||
"@
|
||||
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
|
||||
@@ -3,6 +3,52 @@
|
||||
## Desc: Validate various JDKs and java tools
|
||||
################################################################################
|
||||
|
||||
Function Validate-JavaVersion {
|
||||
param (
|
||||
[Parameter(Mandatory)] [string] $Version,
|
||||
[switch] $Default
|
||||
)
|
||||
|
||||
Write-Host "Checking Java $version"
|
||||
|
||||
# Set Path to get Java
|
||||
if (-not $Default)
|
||||
{
|
||||
# Take 7 & 8 for versions 1.7 and 1.8
|
||||
$versionNumber = $version.Split(".") | Select-Object -Last 1
|
||||
|
||||
$javaBin = [System.Environment]::GetEnvironmentVariable("JAVA_HOME_${versionNumber}_X64") + "\bin;"
|
||||
$env:Path = $javaBin + $env:Path
|
||||
}
|
||||
|
||||
$isJavaExists = $($(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*'
|
||||
|
||||
if ($isJavaExists)
|
||||
{
|
||||
$javaVersion = $matches.version
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "Java $version was not found"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$isJavaCorrect = $javaVersion.StartsWith($version)
|
||||
|
||||
if($isJavaCorrect)
|
||||
{
|
||||
Write-Host "Java $javaVersion found"
|
||||
# Reset Path to the default one in case we need to check the default Java later
|
||||
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
|
||||
return $javaVersion
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "Expected Java $version, but found $javaVersion"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
if((Get-Command -Name 'java') -and (Get-Command -Name 'mvn') -and (Get-Command -Name 'ant') -and (Get-Command -Name 'gradle'))
|
||||
{
|
||||
Write-Host "Java $(java -version) on path"
|
||||
@@ -16,32 +62,12 @@ else
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host "Checking installed Java versions"
|
||||
|
||||
if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*' )
|
||||
{
|
||||
$javaVersion = $Matches.version
|
||||
}
|
||||
|
||||
$env:Path = $env:JAVA_HOME_7_X64 + "\bin;" + $env:Path
|
||||
|
||||
if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*' )
|
||||
{
|
||||
$java7Version = $Matches.version
|
||||
}
|
||||
|
||||
$env:Path = $env:JAVA_HOME_11_X64 + "\bin;" + $env:Path
|
||||
|
||||
if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*' )
|
||||
{
|
||||
$java11Version = $Matches.version
|
||||
}
|
||||
|
||||
$env:Path = $env:JAVA_HOME_13_X64 + "\bin;" + $env:Path
|
||||
|
||||
if( $( $(& $env:comspec "/s /c java -version 2>&1") | Out-String) -match '^(?<vendor>.+) version "(?<version>.+)".*' )
|
||||
{
|
||||
$java13Version = $Matches.version
|
||||
}
|
||||
$java7Version = Validate-JavaVersion -Version "1.7"
|
||||
$java8Version = Validate-JavaVersion -Version "1.8" -Default
|
||||
$java11Version = Validate-JavaVersion -Version "11"
|
||||
$java13Version = Validate-JavaVersion -Version "13"
|
||||
|
||||
if( $(ant -version) -match 'Apache Ant\(TM\) version (?<version>.*) compiled.*' )
|
||||
{
|
||||
@@ -62,7 +88,7 @@ if( $( $(gradle -version) | Out-String) -match 'Gradle (?<version>.*)' )
|
||||
$SoftwareName = "Java Development Kit"
|
||||
|
||||
$Description = @"
|
||||
#### $javaVersion (default)
|
||||
#### $java8Version (default)
|
||||
|
||||
_Environment:_
|
||||
* JAVA_HOME: location of JDK
|
||||
|
||||
73
images/win/scripts/Installers/Validate-Msys2.ps1
Normal file
73
images/win/scripts/Installers/Validate-Msys2.ps1
Normal file
@@ -0,0 +1,73 @@
|
||||
################################################################################
|
||||
## File: Validate-Msys2.ps1
|
||||
## Desc: Validate Msys2
|
||||
################################################################################
|
||||
|
||||
$msys2BinDir = "C:\msys64\usr\bin"
|
||||
$msys2mingwDir = "C:\msys64\mingw64\bin"
|
||||
|
||||
$installedTools = @(
|
||||
"bash",
|
||||
"tar",
|
||||
"make"
|
||||
)
|
||||
|
||||
$installedMinGWTools = @(
|
||||
"gcc",
|
||||
"cmake"
|
||||
)
|
||||
|
||||
Write-Host "Check installed tools in msys2/usr/bin directory"
|
||||
$installedTools | ForEach-Object {
|
||||
$toolName = $_
|
||||
try {
|
||||
Invoke-Expression "$msys2BinDir\$_ --version"
|
||||
} catch {
|
||||
Write-Host "$toolName was not installed in MSYS2 bin directory"
|
||||
Write-Error $_
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "Check installed tools in msys2/mingw/bin directory"
|
||||
$installedMinGWTools | ForEach-Object {
|
||||
$toolName = $_
|
||||
try {
|
||||
Invoke-Expression "$msys2mingwDir\$_ --version"
|
||||
} catch {
|
||||
Write-Error "$toolName was not installed in MSYS2 mingw bin directory"
|
||||
Write-Error $_
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
# Adding description of the software to Markdown
|
||||
|
||||
function Get-ToolVersion {
|
||||
param(
|
||||
[string] $ToolPath,
|
||||
[int] $VersionLineNumber
|
||||
)
|
||||
|
||||
$toolRawVersion = Invoke-Expression "$ToolPath --version"
|
||||
$toolRawVersion.Split([System.Environment]::NewLine)[$VersionLineNumber] -match "\d+\.\d+(\.\d+)?" | Out-Null
|
||||
$toolVersion = $matches[0]
|
||||
return $toolVersion
|
||||
}
|
||||
|
||||
$SoftwareName = "MSYS2"
|
||||
$pacmanVersion = Get-ToolVersion -ToolPath "$msys2BinDir/pacman" -VersionLineNumber 1
|
||||
$bashVersion = Get-ToolVersion -ToolPath "$msys2BinDir/bash" -VersionLineNumber 0
|
||||
$gccVersion = Get-ToolVersion -ToolPath "$msys2mingwDir/gcc" -VersionLineNumber 0
|
||||
$tarVersion = Get-ToolVersion -ToolPath "$msys2BinDir/tar" -VersionLineNumber 0
|
||||
|
||||
$Description = @"
|
||||
_Tool versions_
|
||||
_pacman:_ $pacmanVersion<br/>
|
||||
_bash:_ $bashVersion<br/>
|
||||
_gcc:_ $gccVersion<br/>
|
||||
_tar:_ $tarVersion<br/>
|
||||
MSYS2 location: C:\msys64
|
||||
"@
|
||||
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
|
||||
27
images/win/scripts/Installers/Validate-Stack.ps1
Normal file
27
images/win/scripts/Installers/Validate-Stack.ps1
Normal file
@@ -0,0 +1,27 @@
|
||||
################################################################################
|
||||
## File: Validate-Stack.ps1
|
||||
## Desc: Validate Stack for Windows
|
||||
################################################################################
|
||||
|
||||
if (Get-Command -Name 'stack')
|
||||
{
|
||||
Write-Host "stack is on the path"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "stack is not on path."
|
||||
exit 1
|
||||
}
|
||||
|
||||
$StackVersion = stack --version --quiet
|
||||
|
||||
# Adding description of the software to Markdown
|
||||
$SoftwareName = "Stack"
|
||||
|
||||
$Description = @"
|
||||
_Version:_ $StackVersion<br/>
|
||||
_Environment:_
|
||||
* PATH: contains location of stack.exe
|
||||
"@
|
||||
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
|
||||
@@ -177,10 +177,6 @@ function ToolcacheTest {
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $markdownDescription
|
||||
}
|
||||
|
||||
# PyPy test
|
||||
$PyPyTests = @("python.exe", "bin\pip.exe")
|
||||
ToolcacheTest -SoftwareName "PyPy" -ExecTests $PyPyTests
|
||||
|
||||
# Ruby test
|
||||
$RubyTests = @("bin\ruby.exe")
|
||||
ToolcacheTest -SoftwareName "Ruby" -ExecTests $RubyTests
|
||||
|
||||
@@ -63,8 +63,9 @@ Import-Module -Name ImageHelpers -Force
|
||||
|
||||
# Define executables for cached tools
|
||||
$toolsExecutables = @{
|
||||
Python = @("python.exe", "Scripts\pip.exe");
|
||||
Python = @("python.exe", "Scripts\pip.exe")
|
||||
node = @("node.exe", "npm")
|
||||
PyPy = @("python.exe", "Scripts\pip.exe")
|
||||
}
|
||||
|
||||
# Get toolcache content from toolset
|
||||
@@ -78,6 +79,11 @@ foreach($tool in $tools) {
|
||||
$toolExecs = $toolsExecutables[$tool.name]
|
||||
|
||||
foreach ($version in $tool.versions) {
|
||||
# Add wildcard if missing
|
||||
if (-not $version.Contains('*')) {
|
||||
$version += '.*'
|
||||
}
|
||||
|
||||
# Check if version folder exists
|
||||
$expectedVersionPath = Join-Path $toolPath $version
|
||||
if (-not (Test-Path $expectedVersionPath)) {
|
||||
@@ -100,8 +106,14 @@ foreach($tool in $tools) {
|
||||
Write-Host "Run validation test for $($tool.name)($($tool.arch)) $($foundVersion.name) executables..."
|
||||
Run-ExecutableTests -Executables $toolExecs -ToolPath $foundVersionArchPath
|
||||
|
||||
$foundVersionName = $foundVersion.name
|
||||
if ($tool.name -eq 'PyPy')
|
||||
{
|
||||
$pypyVersion = & "$foundVersionArchPath\python.exe" -c "import sys;print(sys.version.split('\n')[1])"
|
||||
$foundVersionName = "{0} {1}" -f $foundVersionName, $pypyVersion
|
||||
}
|
||||
# Add to tool version to markdown
|
||||
$markdownDescription += "_Version:_ $($foundVersion.name)<br/>"
|
||||
$markdownDescription += "_Version:_ $foundVersionName<br/>"
|
||||
}
|
||||
|
||||
# Create markdown description for system default tool
|
||||
|
||||
@@ -68,7 +68,6 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + `
|
||||
'--add Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre ' + `
|
||||
'--add Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre ' + `
|
||||
'--add Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre ' + `
|
||||
'--add Microsoft.VisualStudio.Component.Windows10SDK.14393 ' + `
|
||||
'--add Microsoft.VisualStudio.Component.Windows10SDK.16299 ' + `
|
||||
'--add Microsoft.VisualStudio.Component.Windows10SDK.17134 ' + `
|
||||
'--add Microsoft.VisualStudio.Component.Windows10SDK.17763 ' + `
|
||||
@@ -127,6 +126,12 @@ Write-Host "Visual Studio version ${version} installed"
|
||||
$newContent = '{"Extensions":[{"Key":"1e906ff5-9da8-4091-a299-5c253c55fdc9","Value":{"ShouldAutoUpdate":false}},{"Key":"Microsoft.VisualStudio.Web.AzureFunctions","Value":{"ShouldAutoUpdate":false}}],"ShouldAutoUpdate":false,"ShouldCheckForUpdates":false}'
|
||||
Set-Content -Path "$VSInstallRoot\Common7\IDE\Extensions\MachineState.json" -Value $newContent
|
||||
|
||||
# Install Windows 10 SDK version 10.0.14393.795
|
||||
$sdkUrl = "https://go.microsoft.com/fwlink/p/?LinkId=838916"
|
||||
$sdkFileName = "sdksetup14393.exe"
|
||||
$argumentList = ("/q", "/norestart", "/ceip off", "/features OptionId.WindowsSoftwareDevelopmentKit")
|
||||
|
||||
Install-Binary -Url $sdkUrl -Name $sdkFileName -ArgumentList $argumentList
|
||||
|
||||
# Adding description of the software to Markdown
|
||||
|
||||
@@ -142,4 +147,13 @@ The following workloads and components are installed with Visual Studio 2019:
|
||||
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
|
||||
|
||||
# Adding explicitly added Workloads details to markdown by parsing $Workloads
|
||||
Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } )
|
||||
Add-ContentToMarkdown -Content $($WorkLoads.Split('--') | % { if( ($_.Split(" "))[0] -like "add") { "* " +($_.Split(" "))[1] } } )
|
||||
|
||||
# Adding additional SDKs to markdown
|
||||
$SDKDescription = @"
|
||||
|
||||
Additional Windows 10 SDKs:
|
||||
* Windows 10 SDK version 10.0.14393.795
|
||||
"@
|
||||
|
||||
Add-ContentToMarkdown -Content $SDKDescription
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
"@actions/toolcache-ruby-windows-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"@actions/toolcache-pypy-windows-x86": [
|
||||
"2", "3"
|
||||
],
|
||||
"@actions/toolcache-boost-windows-msvc-14.1-x32-x64": [
|
||||
"1.69", "1.72"
|
||||
]
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
"@actions/toolcache-ruby-windows-x64": [
|
||||
"2.4", "2.5", "2.6", "2.7"
|
||||
],
|
||||
"@actions/toolcache-pypy-windows-x86": [
|
||||
"2", "3"
|
||||
],
|
||||
"@actions/toolcache-boost-windows-msvc-14.1-x32-x64": [
|
||||
"1.69"
|
||||
],
|
||||
|
||||
@@ -27,6 +27,15 @@
|
||||
"3.8.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "PyPy",
|
||||
"arch": "x86",
|
||||
"platform" : "win32",
|
||||
"versions": [
|
||||
"2.7",
|
||||
"3.6"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "node",
|
||||
"url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json",
|
||||
|
||||
@@ -27,6 +27,15 @@
|
||||
"3.8.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "PyPy",
|
||||
"arch": "x86",
|
||||
"platform" : "win32",
|
||||
"versions": [
|
||||
"2.7",
|
||||
"3.6"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "node",
|
||||
"url" : "https://raw.githubusercontent.com/actions/node-versions/master/versions-manifest.json",
|
||||
|
||||
Reference in New Issue
Block a user