Merge pull request #1 from actions/master

PR
This commit is contained in:
nikita-bykov
2020-03-11 12:02:24 +03:00
committed by GitHub
69 changed files with 1558 additions and 977 deletions

View File

@@ -0,0 +1,69 @@
# Ideally we would use GitHub Actions for this, but since we use self-hosted machines to run image builds
# we need the following features to use GitHub Actions for Images CI:
# - https://github.community/t5/GitHub-Actions/Make-secrets-available-to-builds-of-forks/m-p/30678#M508
# - https://github.community/t5/GitHub-Actions/GitHub-Actions-Manual-Trigger-Approvals/td-p/31504
# - https://github.community/t5/GitHub-Actions/Protecting-github-workflows/td-p/30290
jobs:
- job:
pool: ci-agent-pool
timeoutInMinutes: 600
variables:
- group: Image Generation Variables
steps:
- task: PowerShell@2
displayName: 'Download custom repository'
condition: and(ne(variables['CUSTOM_REPOSITORY_URL'], ''), ne(variables['CUSTOM_REPOSITORY_BRANCH'], ''))
inputs:
targetType: 'inline'
script: |
Write-Host "Clean up default repository"
Remove-Item -path './*' -Recurse -Force
Write-Host "Download $(CUSTOM_REPOSITORY_BRANCH) branch from $(CUSTOM_REPOSITORY_URL)"
$env:GIT_REDIRECT_STDERR = '2>&1'
git clone $(CUSTOM_REPOSITORY_URL) . -b $(CUSTOM_REPOSITORY_BRANCH) --single-branch --depth 1
- task: PowerShell@2
displayName: 'Build VM'
inputs:
targetType: filePath
filePath: ./images.CI/build-image.ps1
arguments: -ResourcesNamePrefix $(Build.BuildId) `
-ClientId $(CLIENT_ID) `
-ClientSecret $(CLIENT_SECRET) `
-Image ${{ parameters.image_type }} `
-ResourceGroup $(AZURE_RESOURCE_GROUP) `
-StorageAccount $(AZURE_STORAGE_ACCOUNT) `
-SubscriptionId $(AZURE_SUBSCRIPTION) `
-TenantId $(AZURE_TENANT) `
-Location $(AZURE_LOCATION) `
-VirtualNetworkName $(BUILD_AGENT_VNET_NAME) `
-VirtualNetworkRG $(BUILD_AGENT_VNET_RESOURCE_GROUP) `
-VirtualNetworkSubnet $(BUILD_AGENT_SUBNET_NAME) `
-GitHubFeedToken $(GITHUB_TOKEN)
- task: PowerShell@2
displayName: 'Create release for VM deployment'
inputs:
targetType: filePath
filePath: ./images.CI/create-release.ps1
arguments: -BuildId $(Build.BuildId) `
-Organization $(RELEASE_TARGET_ORGANIZATION) `
-DefinitionId $(RELEASE_TARGET_DEFINITION_ID) `
-Project $(RELEASE_TARGET_PROJECT) `
-ImageName ${{ parameters.image_type }} `
-AccessToken $(RELEASE_TARGET_TOKEN)
- task: PowerShell@2
displayName: 'Clean up resources'
condition: always()
inputs:
targetType: filePath
filePath: ./images.CI/cleanup.ps1
arguments: -ResourcesNamePrefix $(Build.BuildId) `
-ClientId $(CLIENT_ID) `
-ClientSecret $(CLIENT_SECRET) `
-Image ${{ parameters.image_type }} `
-SubscriptionId $(AZURE_SUBSCRIPTION) `
-TenantId $(AZURE_TENANT)

View File

@@ -0,0 +1,19 @@
schedules:
- cron: "0 0 * * *"
displayName: Daily
branches:
include:
- master
always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- master
jobs:
- template: image-generation.yml
parameters:
image_type: ubuntu1604

View File

@@ -0,0 +1,19 @@
schedules:
- cron: "0 0 * * *"
displayName: Daily
branches:
include:
- master
always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- master
jobs:
- template: image-generation.yml
parameters:
image_type: ubuntu1804

View File

@@ -0,0 +1,19 @@
schedules:
- cron: "0 0 * * *"
displayName: Daily
branches:
include:
- master
always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- master
jobs:
- template: image-generation.yml
parameters:
image_type: Windows2016-Azure

View File

@@ -0,0 +1,19 @@
schedules:
- cron: "0 0 * * *"
displayName: Daily
branches:
include:
- master
always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- master
jobs:
- template: image-generation.yml
parameters:
image_type: Windows2019-Azure

60
images.CI/build-image.ps1 Normal file
View File

@@ -0,0 +1,60 @@
param(
[String] [Parameter (Mandatory=$true)] $Image,
[String] [Parameter (Mandatory=$true)] $ClientId,
[String] [Parameter (Mandatory=$true)] $ClientSecret,
[String] [Parameter (Mandatory=$true)] $GitHubFeedToken,
[String] [Parameter (Mandatory=$true)] $ResourcesNamePrefix,
[String] [Parameter (Mandatory=$true)] $Location,
[String] [Parameter (Mandatory=$true)] $ResourceGroup,
[String] [Parameter (Mandatory=$true)] $StorageAccount,
[String] [Parameter (Mandatory=$true)] $SubscriptionId,
[String] [Parameter (Mandatory=$true)] $TenantId,
[String] [Parameter (Mandatory=$true)] $VirtualNetworkName,
[String] [Parameter (Mandatory=$true)] $VirtualNetworkRG,
[String] [Parameter (Mandatory=$true)] $VirtualNetworkSubnet
)
$TemplatePath = (Get-ChildItem -Path "images" -Include "$Image.json" -Recurse -Depth 2).FullName
if (-not $TemplatePath)
{
Write-Error "'-Image' parameter is not valid. You have to specify correct image type."
exit 1
}
$TempResourceGroupName = "${ResourcesNamePrefix}_${Image}"
$InstallPassword = [System.GUID]::NewGuid().ToString().ToUpper()
packer validate -syntax-only $TemplatePath
$SensitiveData = @(
'OSType',
'StorageAccountLocation',
'OSDiskUri',
'OSDiskUriReadOnlySas',
'TemplateUri',
'TemplateUriReadOnlySas',
': ->'
)
Write-Host "Build $Image VM"
packer build -var "capture_name_prefix=$ResourcesNamePrefix" `
-var "client_id=$ClientId" `
-var "client_secret=$ClientSecret" `
-var "install_password=$InstallPassword" `
-var "github_feed_token=$GitHubFeedToken" `
-var "location=$Location" `
-var "resource_group=$ResourceGroup" `
-var "storage_account=$StorageAccount" `
-var "subscription_id=$SubscriptionId" `
-var "temp_resource_group_name=$TempResourceGroupName" `
-var "tenant_id=$TenantId" `
-var "virtual_network_name=$VirtualNetworkName" `
-var "virtual_network_resource_group_name=$VirtualNetworkRG" `
-var "virtual_network_subnet_name=$VirtualNetworkSubnet" `
$TemplatePath `
| Where-Object {
#Filter sensitive data from Packer logs
$currentString = $_
$sensitiveString = $SensitiveData | Where-Object { $currentString -match $_ }
$sensitiveString -eq $null
}

21
images.CI/cleanup.ps1 Normal file
View File

@@ -0,0 +1,21 @@
param(
[String] [Parameter (Mandatory=$true)] $Image,
[String] [Parameter (Mandatory=$true)] $ResourcesNamePrefix,
[String] [Parameter (Mandatory=$true)] $ClientId,
[String] [Parameter (Mandatory=$true)] $ClientSecret,
[String] [Parameter (Mandatory=$true)] $SubscriptionId,
[String] [Parameter (Mandatory=$true)] $TenantId
)
az login --service-principal --username $ClientId --password $ClientSecret --tenant $TenantId | Out-Null
$TempResourceGroupName = "${ResourcesNamePrefix}_${Image}"
$groupExist = az group exists --name $TempResourceGroupName --subscription $SubscriptionId | Out-Null
if ($groupExist -eq "true") {
Write-Host "Found a match, deleting temporary files"
az group delete --name $TempResourceGroupName --subscription $SubscriptionId --yes | Out-Null
Write-Host "Temporary group was deleted succesfully" -ForegroundColor Green
} else {
Write-Host "No temporary groups found"
}

View File

@@ -0,0 +1,31 @@
param(
[UInt32] [Parameter (Mandatory)] $BuildId,
[String] [Parameter (Mandatory)] $Organization,
[String] [Parameter (Mandatory)] $Project,
[String] [Parameter (Mandatory)] $ImageName,
[String] [Parameter (Mandatory)] $DefinitionId,
[String] [Parameter (Mandatory)] $AccessToken
)
$Body = @{
definitionId = $DefinitionId
variables = @{
ImageBuildId = @{
value = $BuildId
}
ImageName = @{
value = $ImageName
}
}
isDraft = "false"
} | ConvertTo-Json -Depth 3
$URL = "https://vsrm.dev.azure.com/$Organization/$Project/_apis/release/releases?api-version=5.1"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("'':${AccessToken}"))
$headers = @{
Authorization = "Basic ${base64AuthInfo}"
}
$NewRelease = Invoke-RestMethod $URL -Body $Body -Method "POST" -Headers $headers -ContentType "application/json"
Write-Host "Created release: $($NewRelease._links.web.href)"

View File

@@ -1,11 +1,16 @@
# Ubuntu 16.04.6 LTS
The following software is installed on machines with the 20200217.1 update.
The following software is installed on machines with the 20200301.1 update.
***
- 7-Zip 9.20
- Ansible (ansible 2.9.4)
- AzCopy (azcopy 7.3.0-netcore)
- Azure CLI (azure-cli 2.0.81)
- Azure CLI (azure-cli 2.1.0)
- Azure CLI (azure-devops 0.17.0)
- Bazel (Build label: 2.1.1
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Fri Feb 21 14:56:47 2020 (1582297007)
Build timestamp: 1582297007
Build timestamp as int: 1582297007)
- Basic CLI:
- curl
- dnsutils
@@ -26,23 +31,24 @@ The following software is installed on machines with the 20200217.1 update.
- sudo
- telnet
- time
- tzdata
- unzip
- upx
- wget
- zip
- tzdata
- AWS CLI (aws-cli/1.18.0 Python/2.7.12 Linux/4.15.0-1069-azure botocore/1.15.0)
- zstd
- AWS CLI (aws-cli/1.18.11 Python/2.7.12 Linux/4.15.0-1071-azure botocore/1.15.11)
- build-essential
- Clang 6.0 (6.0.1)
- Clang 8 (8.0.1)
- Clang 9 (9.0.1)
- CMake (cmake version 3.16.2)
- Docker Compose (docker-compose version 1.22.0, build f46880fe)
- Docker (Docker version 3.0.10+azure, build 99c5edceb48d64c1aa5d09b8c9c499d431d98bb9)
- Docker (Docker version 3.0.10+azure, build 99c5edceb48d64c1aa5d09b8c9c499d431d98bb9)
- Docker-Moby (Docker version 3.0.10+azure, build 99c5edceb48d64c1aa5d09b8c9c499d431d98bb9)
- .NET Core SDK:
- 3.1.101
- 3.1.100
- 3.0.103
- 3.0.102
- 3.0.101
- 3.0.100
@@ -67,11 +73,13 @@ The following software is installed on machines with the 20200217.1 update.
- 2.2.102
- 2.2.101
- 2.2.100
- 2.1.804
- 2.1.803
- 2.1.802
- 2.1.801
- 2.1.701
- 2.1.700
- 2.1.609
- 2.1.608
- 2.1.607
- 2.1.606
@@ -79,6 +87,7 @@ The following software is installed on machines with the 20200217.1 update.
- 2.1.604
- 2.1.603
- 2.1.602
- 2.1.512
- 2.1.511
- 2.1.510
- 2.1.509
@@ -97,23 +106,23 @@ The following software is installed on machines with the 20200217.1 update.
- 2.1.301
- 2.1.300
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.4)
- Firefox (Mozilla Firefox 72.0.2)
- Firefox (Mozilla Firefox 73.0.1)
- Geckodriver (); Gecko Driver is available via GECKOWEBDRIVER environment variable
- GNU C++ 7.4.0
- GNU C++ 8.3.0
- GNU C++ 9.2.1
- GNU Fortran 8.3.0
- GNU Fortran 9.2.1
- Git (2.25.0)
- Git (2.25.1)
- Git Large File Storage (LFS) (2.10.0)
- 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 80.0.3987.106 )
- Google Chrome (Google Chrome 80.0.3987.122 )
- Chromedriver (ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882})); Chrome Driver is available via CHROMEWEBDRIVER environment variable
- Google Cloud SDK (280.0.0)
- Google Cloud SDK (282.0.0)
- Haskell Cabal (cabal-install version 2.0.0.1
compiled using version 2.0.1.1 of the Cabal library )
- Haskell Cabal (cabal-install version 2.2.0.0
@@ -121,7 +130,7 @@ 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.1.0
compiled using version 3.0.1.0 of the Cabal library )
compiled using version 3.0.2.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)
@@ -132,43 +141,43 @@ compiled using version 3.0.1.0 of the Cabal library )
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.2)
- Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2)
- Heroku (heroku/7.38.1 linux-x64 node-v12.13.0)
- HHVM (HipHop VM 4.44.0 (rel))
- Heroku (heroku/7.38.2 linux-x64 node-v12.13.0)
- HHVM (HipHop VM 4.46.0 (rel))
- ImageMagick
- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_252")
- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_242")
- Azul Zulu OpenJDK (11) (openjdk version "11.0.6" 2020-01-14 LTS)
- 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.2
- Gradle 6.2.1
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
- Kind (kind v0.7.0 go1.13.6 linux/amd64)
- kubectl (Client Version: v1.17.3)
- helm (Client: v2.16.3+g1ee0254)
- Leiningen (Leiningen 2.9.1 on Java 1.8.0_242 OpenJDK 64-Bit Server VM)
- Leiningen (Leiningen 2.9.2 on Java 1.8.0_242 OpenJDK 64-Bit Server VM)
- Mercurial (Mercurial Distributed SCM (version 4.4.1))
- Miniconda (conda 4.7.12)
- Mono (Mono JIT compiler version 6.8.0.105 (tarball Tue Feb 4 21:20:35 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
- Node.js (v12.16.0)
- Node.js (v12.16.1)
- Grunt (grunt-cli v1.2.0)
- Gulp (CLI version: 2.2.0
Local version: Unknown)
- n (6.2.0)
- n (6.3.1)
- Parcel (1.12.4)
- TypeScript (Version 3.7.5)
- TypeScript (Version 3.8.3)
- Webpack (4.41.6)
- Webpack CLI (3.3.11)
- Yarn (1.21.1)
- Yarn (1.22.0)
- PhantomJS (2.1.1)
- PHP 5.6 (PHP 5.6.40-21+ubuntu16.04.1+deb.sury.org+1 (cli) )
- PHP 7.0 (PHP 7.0.33-20+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 5 2020 16:54:09) ( NTS ))
- PHP 7.1 (PHP 7.1.33-9+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 5 2020 16:53:10) ( NTS ))
- PHP 7.2 (PHP 7.2.27-6+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 5 2020 16:52:09) ( NTS ))
- PHP 7.3 (PHP 7.3.14-6+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 5 2020 16:51:13) ( NTS ))
- PHP 7.4 (PHP 7.4.2 (cli) (built: Feb 5 2020 16:50:21) ( NTS ))
- PHP 5.6 (PHP 5.6.40-24+ubuntu16.04.1+deb.sury.org+1 (cli) )
- PHP 7.0 (PHP 7.0.33-23+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:20:42) ( NTS ))
- PHP 7.1 (PHP 7.1.33-12+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:21:57) ( NTS ))
- PHP 7.2 (PHP 7.2.28-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:23:01) ( NTS ))
- PHP 7.3 (PHP 7.3.15-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:23:10) ( NTS ))
- PHP 7.4 (PHP 7.4.3 (cli) (built: Feb 23 2020 07:24:02) ( NTS ))
- Composer (Composer version 1.9.3 2020-02-04 12:58:49)
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate
@@ -177,11 +186,11 @@ Local version: Unknown)
- ruby (2.3.1p112)
- gem (3.1.2)
- rustup (1.21.1)
- rust (1.41.0)
- rust (1.41.1)
- cargo (1.41.0)
- rustfmt (1.4.11-stable)
- clippy (0.0.212)
- rustdoc (1.41.0)
- rustdoc (1.41.1)
- bindgen (execute
the
0.53.1)
@@ -190,9 +199,9 @@ the
- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
- Sphinx Open Source Search Server
- Subversion (svn, version 1.9.3 (r1718519))
- Terraform (Terraform v0.12.20)
- Terraform (Terraform v0.12.21)
- Vcpkg 2020.02.04-unknownhash
- Zeit Now CLI (17.0.3)
- Zeit Now CLI (17.0.4)
- Google Repository 58
- Google Play services 49
- Google APIs 24
@@ -203,7 +212,7 @@ the
- Android Support Repository 47.0.0
- Android Solver for ConstraintLayout 1.0.2
- Android Solver for ConstraintLayout 1.0.1
- Android SDK Platform-Tools 29.0.5
- Android SDK Platform-Tools 29.0.6
- Android SDK Platform 29
- Android SDK Platform 28
- Android SDK Platform 27
@@ -257,14 +266,15 @@ the
- Az Module (2.6.0)
- Az Module (2.8.0)
- Az Module (3.1.0)
- Az Module (3.5.0)
- Cached container images
- node:12-alpine (Digest: sha256:0d6db03a05b5d8b417204258cfa34f36eac1c00a54946fb31891e89a642eb449)
- node:12 (Digest: sha256:454651174f54836571258a329788574cf6552bddfd1a7113e769bd9fc3776fe6)
- node:10-alpine (Digest: sha256:6e6fdca8006b268936d285a4eadd0bac011b33184b4377c6f1cfc86c222fbb8d)
- node:10 (Digest: sha256:e9d17a0920643d70677ba354398a0464e318fe5f488df8c28c0f895cda6ee2a3)
- buildpack-deps:stretch (Digest: sha256:8bcd320ec29cf67052985f28891586fb853051f69ad0646fc7a49f47d6e3ee1a)
- debian:9 (Digest: sha256:da5274336981301e2c5f2edb54eaa4dccee70c39506f96d39377b46ea75e804e)
- debian:8 (Digest: sha256:0e7a709bdf94e15391e9658271197e28a8c993f4d6bb8ee49d370886a9893351)
- node:10 (Digest: sha256:df200903ff34c07c1b9112b4fd9d1342c11eb7d99525f2b366c487f91dda8131)
- node:12 (Digest: sha256:facc1cbde6e5aa3255092b1a1417451953c80bd31ab5a4403f8bcd90b90a8407)
- buildpack-deps:stretch (Digest: sha256:dc901bbf4b34e4ca8771c0d0773e557221452f97bcf0c732de7ecda3782bdf97)
- debian:9 (Digest: sha256:ddb131307ad9c70ebf8c7962ba73c20101f68c7a511915aea3ad3b7ad47b9d20)
- debian:8 (Digest: sha256:2c9b2323299846c5298c12db373da310f8114f2941ae3f496e95270cc8ca5ebd)
- node:10-alpine (Digest: sha256:e8d05985dd93c380a83da00d676b081dad9cce148cb4ecdf26ed684fcff1449c)
- node:12-alpine (Digest: sha256:bba77d0ca8820b43af898b3c50d4e8b68dc703ebbd958319af2f21f2d3c309f5)
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- alpine:3.9 (Digest: sha256:115731bab0862031b44766733890091c17924f9b7781b79997f5f163be262178)
- alpine:3.10 (Digest: sha256:7c3773f7bcc969f03f8f653910001d99a9d324b4b9caa008846ad2c3089f5a5f)
@@ -276,7 +286,7 @@ the
- Python 3.5.9
- Python 3.6.10
- Python 3.7.6
- Python 3.8.1
- Python 3.8.2
- Ruby:
- Ruby 2.4.9
- Ruby 2.5.7

View File

@@ -1,11 +1,16 @@
# Ubuntu 18.04.4 LTS
The following software is installed on machines with the 20200217.1 update.
The following software is installed on machines with the 20200301.1 update.
***
- 7-Zip 16.02
- Ansible (ansible 2.9.4)
- AzCopy (azcopy 7.3.0-netcore)
- Azure CLI (azure-cli 2.0.81)
- Azure CLI (azure-cli 2.1.0)
- Azure CLI (azure-devops 0.17.0)
- Bazel (Build label: 2.1.1
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Fri Feb 21 14:56:47 2020 (1582297007)
Build timestamp: 1582297007
Build timestamp as int: 1582297007)
- Basic CLI:
- curl
- dnsutils
@@ -26,23 +31,24 @@ The following software is installed on machines with the 20200217.1 update.
- sudo
- telnet
- time
- tzdata
- unzip
- upx
- wget
- zip
- tzdata
- AWS CLI (aws-cli/1.18.0 Python/2.7.17 Linux/5.0.0-1031-azure botocore/1.15.0)
- zstd
- AWS CLI (aws-cli/1.18.11 Python/2.7.17 Linux/5.0.0-1032-azure botocore/1.15.11)
- build-essential
- Clang 6.0 (6.0.1)
- Clang 8 (8.0.1)
- Clang 9 (9.0.0)
- CMake (cmake version 3.16.2)
- Docker Compose (docker-compose version 1.22.0, build f46880fe)
- Docker (Docker version 3.0.10+azure, build 99c5edceb48d64c1aa5d09b8c9c499d431d98bb9)
- Docker (Docker version 3.0.10+azure, build 99c5edceb48d64c1aa5d09b8c9c499d431d98bb9)
- Docker-Moby (Docker version 3.0.10+azure, build 99c5edceb48d64c1aa5d09b8c9c499d431d98bb9)
- .NET Core SDK:
- 3.1.101
- 3.1.100
- 3.0.103
- 3.0.102
- 3.0.101
- 3.0.100
@@ -67,11 +73,13 @@ The following software is installed on machines with the 20200217.1 update.
- 2.2.102
- 2.2.101
- 2.2.100
- 2.1.804
- 2.1.803
- 2.1.802
- 2.1.801
- 2.1.701
- 2.1.700
- 2.1.609
- 2.1.608
- 2.1.607
- 2.1.606
@@ -79,6 +87,7 @@ The following software is installed on machines with the 20200217.1 update.
- 2.1.604
- 2.1.603
- 2.1.602
- 2.1.512
- 2.1.511
- 2.1.510
- 2.1.509
@@ -97,21 +106,21 @@ The following software is installed on machines with the 20200217.1 update.
- 2.1.301
- 2.1.300
- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.6.4)
- Firefox (Mozilla Firefox 73.0)
- Firefox (Mozilla Firefox 73.0.1)
- Geckodriver (); Gecko Driver is available via GECKOWEBDRIVER environment variable
- GNU C++ 7.4.0
- GNU C++ 8.3.0
- GNU C++ 9.2.1
- GNU Fortran 8.3.0
- GNU Fortran 9.2.1
- Git (2.25.0)
- Git (2.25.1)
- Git Large File Storage (LFS) (2.10.0)
- 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 80.0.3987.106 )
- Google Chrome (Google Chrome 80.0.3987.122 )
- Chromedriver (ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882})); Chrome Driver is available via CHROMEWEBDRIVER environment variable
- Google Cloud SDK (280.0.0)
- Google Cloud SDK (282.0.0)
- Haskell Cabal (cabal-install version 2.0.0.1
compiled using version 2.0.1.1 of the Cabal library )
- Haskell Cabal (cabal-install version 2.2.0.0
@@ -119,7 +128,7 @@ 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.1.0
compiled using version 3.0.1.0 of the Cabal library )
compiled using version 3.0.2.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)
@@ -130,54 +139,54 @@ compiled using version 3.0.1.0 of the Cabal library )
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.1)
- GHC (The Glorious Glasgow Haskell Compilation System, version 8.8.2)
- Haskell Stack (Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) x86_64 hpack-0.31.2)
- Heroku (heroku/7.38.1 linux-x64 node-v12.13.0)
- HHVM (HipHop VM 4.44.0 (rel))
- Heroku (heroku/7.38.2 linux-x64 node-v12.13.0)
- HHVM (HipHop VM 4.46.0 (rel))
- ImageMagick
- Azul Zulu OpenJDK (7) (openjdk version "1.7.0_252")
- Azul Zulu OpenJDK (8) (openjdk version "1.8.0_242")
- Azul Zulu OpenJDK (11) (openjdk version "11.0.6" 2020-01-14 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 6.1.1
- Gradle 6.2.1
- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
- Kind (kind v0.7.0 go1.13.6 linux/amd64)
- kubectl (Client Version: v1.17.3)
- helm (Client: v2.16.3+g1ee0254)
- Leiningen (Leiningen 2.9.1 on Java 1.8.0_242 OpenJDK 64-Bit Server VM)
- Leiningen (Leiningen 2.9.2 on Java 1.8.0_242 OpenJDK 64-Bit Server VM)
- Mercurial (Mercurial Distributed SCM (version 4.5.3))
- Miniconda (conda 4.7.12)
- 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
- Node.js (v12.16.0)
- Node.js (v12.16.1)
- Grunt (grunt-cli v1.2.0)
- Gulp (CLI version: 2.2.0
Local version: Unknown)
- n (6.2.0)
- n (6.3.1)
- Parcel (1.12.4)
- TypeScript (Version 3.7.5)
- TypeScript (Version 3.8.3)
- Webpack (4.41.6)
- Webpack CLI (3.3.11)
- Yarn (1.21.1)
- Yarn (1.22.0)
- PhantomJS (2.1.1)
- PHP 7.1 (PHP 7.1.33-9+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 5 2020 16:53:29) ( NTS ))
- PHP 7.2 (PHP 7.2.27-6+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 5 2020 16:52:29) ( NTS ))
- PHP 7.3 (PHP 7.3.14-6+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 5 2020 16:51:32) ( NTS ))
- PHP 7.4 (PHP 7.4.2 (cli) (built: Feb 5 2020 16:50:38) ( NTS ))
- PHP 7.1 (PHP 7.1.33-12+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:22:16) ( NTS ))
- PHP 7.2 (PHP 7.2.28-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:23:25) ( NTS ))
- PHP 7.3 (PHP 7.3.15-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 23 2020 07:23:33) ( NTS ))
- PHP 7.4 (PHP 7.4.3 (cli) (built: Feb 23 2020 07:24:28) ( NTS ))
- Composer (Composer version 1.9.3 2020-02-04 12:58:49)
- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
- Pollinate
- psql (PostgreSQL) 10.10
- psql (PostgreSQL) 10.12
- Powershell (PowerShell 6.2.4)
- ruby (2.5.1p57)
- gem (3.1.2)
- rustup (1.21.1)
- rust (1.41.0)
- rust (1.41.1)
- cargo (1.41.0)
- rustfmt (1.4.11-stable)
- clippy (0.0.212)
- rustdoc (1.41.0)
- rustdoc (1.41.1)
- bindgen (execute
the
0.53.1)
@@ -186,9 +195,9 @@ the
- 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.20)
- Terraform (Terraform v0.12.21)
- Vcpkg 2020.02.04-unknownhash
- Zeit Now CLI (17.0.3)
- Zeit Now CLI (17.0.4)
- Google Repository 58
- Google Play services 49
- Google APIs 24
@@ -197,7 +206,7 @@ the
- Google APIs 21
- CMake 3.6.4111459
- Android Support Repository 47.0.0
- Android SDK Platform-Tools 29.0.5
- Android SDK Platform-Tools 29.0.6
- Android SDK Platform 29
- Android SDK Platform 28
- Android SDK Platform 27
@@ -247,14 +256,15 @@ the
- Az Module (2.6.0)
- Az Module (2.8.0)
- Az Module (3.1.0)
- Az Module (3.5.0)
- Cached container images
- node:12-alpine (Digest: sha256:0d6db03a05b5d8b417204258cfa34f36eac1c00a54946fb31891e89a642eb449)
- node:12 (Digest: sha256:454651174f54836571258a329788574cf6552bddfd1a7113e769bd9fc3776fe6)
- node:10-alpine (Digest: sha256:6e6fdca8006b268936d285a4eadd0bac011b33184b4377c6f1cfc86c222fbb8d)
- node:10 (Digest: sha256:e9d17a0920643d70677ba354398a0464e318fe5f488df8c28c0f895cda6ee2a3)
- buildpack-deps:stretch (Digest: sha256:8bcd320ec29cf67052985f28891586fb853051f69ad0646fc7a49f47d6e3ee1a)
- debian:9 (Digest: sha256:da5274336981301e2c5f2edb54eaa4dccee70c39506f96d39377b46ea75e804e)
- debian:8 (Digest: sha256:0e7a709bdf94e15391e9658271197e28a8c993f4d6bb8ee49d370886a9893351)
- node:10 (Digest: sha256:df200903ff34c07c1b9112b4fd9d1342c11eb7d99525f2b366c487f91dda8131)
- node:12 (Digest: sha256:facc1cbde6e5aa3255092b1a1417451953c80bd31ab5a4403f8bcd90b90a8407)
- buildpack-deps:stretch (Digest: sha256:dc901bbf4b34e4ca8771c0d0773e557221452f97bcf0c732de7ecda3782bdf97)
- debian:9 (Digest: sha256:ddb131307ad9c70ebf8c7962ba73c20101f68c7a511915aea3ad3b7ad47b9d20)
- debian:8 (Digest: sha256:2c9b2323299846c5298c12db373da310f8114f2941ae3f496e95270cc8ca5ebd)
- node:10-alpine (Digest: sha256:e8d05985dd93c380a83da00d676b081dad9cce148cb4ecdf26ed684fcff1449c)
- node:12-alpine (Digest: sha256:bba77d0ca8820b43af898b3c50d4e8b68dc703ebbd958319af2f21f2d3c309f5)
- alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- alpine:3.9 (Digest: sha256:115731bab0862031b44766733890091c17924f9b7781b79997f5f163be262178)
- alpine:3.10 (Digest: sha256:7c3773f7bcc969f03f8f653910001d99a9d324b4b9caa008846ad2c3089f5a5f)
@@ -266,7 +276,7 @@ the
- Python 3.5.9
- Python 3.6.10
- Python 3.7.6
- Python 3.8.1
- Python 3.8.2
- Ruby:
- Ruby 2.4.9
- Ruby 2.5.7

View File

@@ -9,7 +9,11 @@ LSB_RELEASE=$(lsb_release -rs)
# Install Microsoft repository
wget https://packages.microsoft.com/config/ubuntu/$LSB_RELEASE/packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
apt-get update
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
# Install Microsoft GPG public key
curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
apt-get update

View File

@@ -39,6 +39,7 @@ echo "y" | ${ANDROID_ROOT}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} \
"platforms;android-17" \
"platforms;android-15" \
"platforms;android-10" \
"build-tools;29.0.3" \
"build-tools;29.0.2" \
"build-tools;29.0.0" \
"build-tools;28.0.3" \
@@ -110,6 +111,7 @@ DocumentInstalledItem "Android SDK Platform 17"
DocumentInstalledItem "Android SDK Platform 15"
DocumentInstalledItem "Android SDK Platform 10"
DocumentInstalledItem "Android SDK Patch Applier v4"
DocumentInstalledItem "Android SDK Build-Tools 29.0.3"
DocumentInstalledItem "Android SDK Build-Tools 29.0.2"
DocumentInstalledItem "Android SDK Build-Tools 29.0.0"
DocumentInstalledItem "Android SDK Build-Tools 28.0.3"

View File

@@ -19,6 +19,8 @@ apt-fast install -y --no-install-recommends \
iproute2 \
iputils-ping \
jq \
libc++-dev \
libc++abi-dev \
libcurl3 \
libicu55 \
libunwind8 \
@@ -75,6 +77,8 @@ DocumentInstalledItemIndent "ftp"
DocumentInstalledItemIndent "iproute2"
DocumentInstalledItemIndent "iputils-ping"
DocumentInstalledItemIndent "jq"
DocumentInstalledItemIndent "libc++-dev"
DocumentInstalledItemIndent "libc++abi-dev"
DocumentInstalledItemIndent "libcurl3"
DocumentInstalledItemIndent "libicu55"
DocumentInstalledItemIndent "libunwind8"

View File

@@ -1,36 +0,0 @@
#!/bin/bash
################################################################################
## File: go.sh
## Desc: Installs go, configures GOROOT, and adds go to the path
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# This function installs Go using the specified arguments:
# $1=MajorVersion (1.11)
# $2=MajorAndMinorVersion (1.11.1)
# $3=IsDefaultVersion (true or false)
function InstallGo () {
curl -sL https://dl.google.com/go/go$2.linux-amd64.tar.gz -o go$2.linux-amd64.tar.gz
mkdir -p /usr/local/go$1
tar -C /usr/local/go$1 -xzf go$2.linux-amd64.tar.gz --strip-components=1 go
rm go$2.linux-amd64.tar.gz
echo "GOROOT_${1//./_}_X64=/usr/local/go$1" | tee -a /etc/environment
DocumentInstalledItem "Go $1 ($(/usr/local/go$1/bin/go version))"
# If this version of Go is to be the default version,
# symlink it into the path and point GOROOT to it.
if [ $3 = true ]
then
ln -s /usr/local/go$1/bin/* /usr/bin/
echo "GOROOT=/usr/local/go$1" | tee -a /etc/environment
fi
}
# Install Go versions
InstallGo 1.9 1.9.7 false
InstallGo 1.10 1.10.8 false
InstallGo 1.11 1.11.12 false
InstallGo 1.12 1.12.7 true
InstallGo 1.13 1.13 false

View File

@@ -17,7 +17,7 @@ apt-get update
apt-get install -y kubectl
# Install Helm
curl -L https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
# Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work"

View File

@@ -37,6 +37,7 @@ echo "y" | ${ANDROID_ROOT}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} \
"platforms;android-21" \
"platforms;android-19" \
"platforms;android-17" \
"build-tools;29.0.3" \
"build-tools;29.0.2" \
"build-tools;29.0.0" \
"build-tools;28.0.3" \
@@ -100,6 +101,7 @@ DocumentInstalledItem "Android SDK Platform 21"
DocumentInstalledItem "Android SDK Platform 19"
DocumentInstalledItem "Android SDK Platform 17"
DocumentInstalledItem "Android SDK Patch Applier v4"
DocumentInstalledItem "Android SDK Build-Tools 29.0.3"
DocumentInstalledItem "Android SDK Build-Tools 29.0.2"
DocumentInstalledItem "Android SDK Build-Tools 29.0.0"
DocumentInstalledItem "Android SDK Build-Tools 28.0.3"

View File

@@ -1,60 +0,0 @@
#!/bin/bash
################################################################################
## File: azpowershell.sh
## Desc: Installed Azure PowerShell
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_1.0.0 -RequiredVersion 1.0.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_1.6.0 -RequiredVersion 1.6.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_2.3.2 -RequiredVersion 2.3.2 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_2.6.0 -RequiredVersion 2.6.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_2.8.0 -RequiredVersion 2.8.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_3.1.0 -RequiredVersion 3.1.0 -Force'
# 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 ! pwsh -Command '$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_1.0.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_1.6.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_2.3.2:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_2.6.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_2.8.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_3.1.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath'; then
exit 1
fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Az Module (1.0.0)"
DocumentInstalledItem "Az Module (1.6.0)"
DocumentInstalledItem "Az Module (2.3.2)"
DocumentInstalledItem "Az Module (2.6.0)"
DocumentInstalledItem "Az Module (2.8.0)"
DocumentInstalledItem "Az Module (3.1.0)"

View File

@@ -1,102 +0,0 @@
#!/bin/bash
################################################################################
## File: dotnetcore-sdk.sh
## Desc: Installs .NET Core SDK
################################################################################
source $HELPER_SCRIPTS/apt.sh
source $HELPER_SCRIPTS/document.sh
LATEST_DOTNET_PACKAGES=("dotnet-sdk-3.0" "dotnet-sdk-3.1")
LSB_RELEASE=$(lsb_release -rs)
mksamples()
{
sdk=$1
sample=$2
mkdir "$sdk"
cd "$sdk" || exit
set -e
dotnet help
dotnet new globaljson --sdk-version "$sdk"
dotnet new "$sample"
dotnet restore
dotnet build
set +e
cd .. || exit
rm -rf "$sdk"
}
set -e
# Disable telemetry
export DOTNET_CLI_TELEMETRY_OPTOUT=1
for latest_package in ${LATEST_DOTNET_PACKAGES[@]}; do
echo "Determing if .NET Core ($latest_package) is installed"
if ! IsInstalled $latest_package; then
echo "Could not find .NET Core ($latest_package), installing..."
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic main" > /etc/apt/sources.list.d/dotnetdev.list'
apt-get install apt-transport-https
apt-get update
apt-get install $latest_package -y
else
echo ".NET Core ($latest_package) is already installed"
fi
done
# Get list of all released SDKs from channels which are not end-of-life or preview
release_urls=("https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.2/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.0/releases.json" "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.1/releases.json")
sdks=()
for release_url in ${release_urls[@]}; do
echo "${release_url}"
releases=$(curl "${release_url}")
sdks=("${sdks[@]}" $(echo "${releases}" | jq '.releases[]' | jq '.sdk.version'))
sdks=("${sdks[@]}" $(echo "${releases}" | jq '.releases[]' | jq '.sdks[]?' | jq '.version'))
done
sortedSdks=$(echo ${sdks[@]} | tr ' ' '\n' | grep -v preview | grep -v rc | grep -v display | cut -d\" -f2 | sort -u -r)
for sdk in $sortedSdks; do
#temporary avoid 3.1.102 installation due to https://github.com/dotnet/aspnetcore/issues/19133
if [ $sdk != "3.1.102" ]; then
url="https://dotnetcli.blob.core.windows.net/dotnet/Sdk/$sdk/dotnet-sdk-$sdk-linux-x64.tar.gz"
echo "$url" >> urls
echo "Adding $url to list to download later"
fi
done
# Download additional SDKs
echo "Downloading release tarballs..."
cat urls | xargs -n 1 -P 16 wget -q
for tarball in *.tar.gz; do
dest="./tmp-$(basename -s .tar.gz $tarball)"
echo "Extracting $tarball to $dest"
mkdir "$dest" && tar -C "$dest" -xzf "$tarball"
rsync -qav "$dest/shared/" /usr/share/dotnet/shared/
rsync -qav "$dest/host/" /usr/share/dotnet/host/
rsync -qav "$dest/sdk/" /usr/share/dotnet/sdk/
rm -rf "$dest"
rm "$tarball"
done
rm urls
DocumentInstalledItem ".NET Core SDK:"
# Smoke test each SDK
for sdk in $sortedSdks; do
mksamples "$sdk" "console"
mksamples "$sdk" "mstest"
mksamples "$sdk" "xunit"
mksamples "$sdk" "web"
mksamples "$sdk" "mvc"
mksamples "$sdk" "webapi"
DocumentInstalledItemIndent "$sdk"
done
# NuGetFallbackFolder at /usr/share/dotnet/sdk/NuGetFallbackFolder is warmed up by smoke test
# Additional FTE will just copy to ~/.dotnet/NuGet which provides no benefit on a fungible machine
echo "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1" | tee -a /etc/environment
echo 'export PATH="$PATH:$HOME/.dotnet/tools"' | tee -a /etc/skel/.bashrc

View File

@@ -1,34 +0,0 @@
#!/bin/bash
################################################################################
## File: go.sh
## Desc: Installs go, configures GOROOT, and adds go to the path
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# This function installs Go using the specified arguments:
# $1=MajorVersion (1.11)
# $2=MajorAndMinorVersion (1.11.1)
# $3=IsDefaultVersion (true or false)
function InstallGo () {
curl -sL https://dl.google.com/go/go$2.linux-amd64.tar.gz -o go$2.linux-amd64.tar.gz
mkdir -p /usr/local/go$1
tar -C /usr/local/go$1 -xzf go$2.linux-amd64.tar.gz --strip-components=1 go
rm go$2.linux-amd64.tar.gz
echo "GOROOT_${1//./_}_X64=/usr/local/go$1" | tee -a /etc/environment
DocumentInstalledItem "Go $1 ($(/usr/local/go$1/bin/go version))"
# If this version of Go is to be the default version,
# symlink it into the path and point GOROOT to it.
if [ $3 = true ]
then
ln -s /usr/local/go$1/bin/* /usr/bin/
echo "GOROOT=/usr/local/go$1" | tee -a /etc/environment
fi
}
# Install Go versions
InstallGo 1.11 1.11.12 false
InstallGo 1.12 1.12.7 true
InstallGo 1.13 1.13 false

View File

@@ -19,7 +19,7 @@ apt-get update
apt-get install -y kubectl
# Install Helm
curl -L https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
# Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work"

View File

@@ -1,32 +0,0 @@
#!/bin/bash
################################################################################
## File: powershellcore.sh
## Desc: Installs powershellcore
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
LSB_RELEASE=$(lsb_release -rs)
# libicu64, which comes with php-intl module, has powershell breaking issue https://github.com/PowerShell/PowerShell/issues/9746
# Fix - install additional libicu65 where the issue is fixed
echo "install libicu65"
apt get install libicu65
# Install Powershell
apt-get install -y powershell
# 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 pwsh; then
echo "pwsh was not installed"
exit 1
fi
if ! pwsh -c 'Write-Host Hello world'; then
echo "pwsh failed to run"
exit 1
fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Powershell ($(pwsh --version))"

View File

@@ -14,6 +14,7 @@ sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_2.3.2 -Requi
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_2.6.0 -RequiredVersion 2.6.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_2.8.0 -RequiredVersion 2.8.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_3.1.0 -RequiredVersion 3.1.0 -Force'
sudo pwsh -Command 'Save-Module -Name Az -LiteralPath /usr/share/az_3.5.0 -RequiredVersion 3.5.0 -Force'
# Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work"
@@ -46,6 +47,11 @@ if ! pwsh -Command '$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath
$actualPSModulePath = $env:PSModulePath ; $env:PSModulePath = "/usr/share/az_3.5.0:" + $env:PSModulePath;
if (!(get-module -listavailable -name Az.accounts)) {
Write-Host "Az Module was not installed"; $env:PSModulePath = $actualPSModulePath; exit 1
}
$env:PSModulePath = $actualPSModulePath'; then
exit 1
fi
@@ -58,3 +64,4 @@ DocumentInstalledItem "Az Module (2.3.2)"
DocumentInstalledItem "Az Module (2.6.0)"
DocumentInstalledItem "Az Module (2.8.0)"
DocumentInstalledItem "Az Module (3.1.0)"
DocumentInstalledItem "Az Module (3.5.0)"

View File

@@ -0,0 +1,36 @@
#!/bin/bash
################################################################################
## File: bazel.sh
## Desc: Installs Bazel and Bazelisk (A user-friendly launcher for Bazel)
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
# Install bazel
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
apt-get update -y
apt-get install -y bazel
# Install bazelisk
npm install -g @bazel/bazelisk
# 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 bazel; then
echo "Bazel was not installed"
exit 1
fi
if ! command -v bazelisk; then
echo "Bazelisk was not installed"
exit 1
fi
# Document what was added to the image
bazelisk_version="$(bazelisk version 2>null | grep "Bazelisk version:" | cut -d "v" -f 3)"
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Bazel ($(bazel --version))"
DocumentInstalledItem "Bazelisk ($bazelisk_version)"

View File

@@ -18,6 +18,7 @@ function InstallClang {
apt-get install -y "clang-$version" "lldb-$version" "lld-$version"
else
./llvm.sh $version
apt-get install -y "clang-format-$version"
fi
# Run tests to determine that the software installed as expected
@@ -59,3 +60,4 @@ rm llvm.sh
# Make Clang 9 default
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-9 100
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-9 100
update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-9 100

View File

@@ -7,7 +7,7 @@
source $HELPER_SCRIPTS/apt.sh
source $HELPER_SCRIPTS/document.sh
version="1.22.0"
version="1.25.4"
# Install latest docker-compose from releases
curl -L "https://github.com/docker/compose/releases/download/$version/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

View File

@@ -1,7 +1,7 @@
#!/bin/bash
################################################################################
## File: docker-ce.sh
## Desc: Installs docker onto the image, but does not pre-pull any images
## File: docker-moby.sh
## Desc: Installs docker onto the image
################################################################################
source $HELPER_SCRIPTS/apt.sh
@@ -15,10 +15,6 @@ if ! IsInstalled $docker_package; then
echo "Docker ($docker_package) was not found. Installing..."
apt-get remove -y moby-engine moby-cli
apt-get update
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/microsoft-prod.list
apt-get update
apt-get install -y moby-engine moby-cli
else
echo "Docker ($docker_package) is already installed"
@@ -37,7 +33,19 @@ else
set +e
fi
docker pull node:10
docker pull node:12
docker pull buildpack-deps:stretch
docker pull node:10-alpine
docker pull node:12-alpine
docker pull debian:8
docker pull debian:9
docker pull alpine:3.7
docker pull alpine:3.8
docker pull alpine:3.9
docker pull alpine:3.10
## Add version information to the metadata file
echo "Documenting Docker version"
docker_version=$(docker -v)
DocumentInstalledItem "Docker ($docker_version)"
DocumentInstalledItem "Docker-Moby ($docker_version)"

View File

@@ -1,34 +0,0 @@
#!/bin/bash
################################################################################
## File: docker.sh
## Desc: Installs the correct version of docker onto the image, and pulls
## down the default docker image used for building on ubuntu
################################################################################
source $HELPER_SCRIPTS/apt.sh
source $HELPER_SCRIPTS/document.sh
DOCKER_PACKAGE=moby
apt-get remove -y moby-engine mobi-cli
apt-get update
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
apt-get update
apt-get install -y moby-engine mobi-cli
docker pull node:10
docker pull node:12
docker pull buildpack-deps:stretch
docker pull node:10-alpine
docker pull node:12-alpine
docker pull debian:8
docker pull debian:9
docker pull alpine:3.7
docker pull alpine:3.8
docker pull alpine:3.9
docker pull alpine:3.10
## Add version information to the metadata file
echo "Documenting Docker version"
DOCKER_VERSION=`docker -v`
DocumentInstalledItem "Docker ($DOCKER_VERSION)"

View File

@@ -3,7 +3,6 @@
## File: dotnetcore-sdk.sh
## Desc: Installs .NET Core SDK
################################################################################
source $HELPER_SCRIPTS/apt.sh
source $HELPER_SCRIPTS/document.sh
@@ -30,11 +29,19 @@ mksamples()
set -e
# Disable telemetry
export DOTNET_CLI_TELEMETRY_OPTOUT=1
for latest_package in ${LATEST_DOTNET_PACKAGES[@]}; do
echo "Determing if .NET Core ($latest_package) is installed"
if ! IsInstalled $latest_package; then
echo "Could not find .NET Core ($latest_package), installing..."
apt-get install $latest_package -y
#temporary avoid 3.1.102 installation due to https://github.com/dotnet/aspnetcore/issues/19133
if [ $latest_package != "dotnet-sdk-3.1" ]; then
apt-get install $latest_package -y
else
apt-get install dotnet-sdk-3.1=3.1.101-1 -y
fi
else
echo ".NET Core ($latest_package) is already installed"
fi
@@ -50,15 +57,13 @@ for release_url in ${release_urls[@]}; do
sdks=("${sdks[@]}" $(echo "${releases}" | jq '.releases[]' | jq '.sdks[]?' | jq '.version'))
done
sortedSdks=$(echo ${sdks[@]} | tr ' ' '\n' | grep -v preview | grep -v rc | grep -v display | cut -d\" -f2 | sort -u -r)
#temporary avoid 3.1.102 installation due to https://github.com/dotnet/aspnetcore/issues/19133
sortedSdks=$(echo ${sdks[@]} | tr ' ' '\n' | grep -v 3.1.102 | grep -v preview | grep -v rc | grep -v display | cut -d\" -f2 | sort -u -r)
for sdk in $sortedSdks; do
#temporary avoid 3.1.102 installation due to https://github.com/dotnet/aspnetcore/issues/19133
if [ $sdk != "3.1.102" ]; then
url="https://dotnetcli.blob.core.windows.net/dotnet/Sdk/$sdk/dotnet-sdk-$sdk-linux-x64.tar.gz"
echo "$url" >> urls
echo "Adding $url to list to download later"
fi
url="https://dotnetcli.blob.core.windows.net/dotnet/Sdk/$sdk/dotnet-sdk-$sdk-linux-x64.tar.gz"
echo "$url" >> urls
echo "Adding $url to list to download later"
done
# Download additional SDKs

View File

@@ -49,5 +49,5 @@ if ! command -v geckodriver; then
fi
echo "Lastly, documenting what we added to the metadata file"
ver=`./geckodriver --version|head -1|awk '{print $2}'`
ver=`geckodriver --version | head -1 |awk '{print $2}'`
DocumentInstalledItem "Geckodriver (${ver}); Gecko Driver is available via GECKOWEBDRIVER environment variable"

View File

@@ -0,0 +1,55 @@
#!/bin/bash
################################################################################
## File: go.sh
## Desc: Installs go, configures GOROOT, and adds go to the path
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
golangTags="/tmp/golang_tags.json"
# This function installs Go using the specified arguments:
# $1=MajorVersion (1.11)
# $2=IsDefaultVersion (true or false)
function InstallGo () {
version=$( getFullGoVersion $1 )
downloadVersion=$version.linux-amd64.tar.gz
goFolder=/usr/local/go$1
echo "Install Go $version"
curl -sL https://dl.google.com/go/${downloadVersion} -o ${downloadVersion}
mkdir -p $goFolder
tar -C $goFolder -xzf $downloadVersion --strip-components=1 go
rm $downloadVersion
echo "GOROOT_${1//./_}_X64=$goFolder" | tee -a /etc/environment
DocumentInstalledItem "Go $1 ($($goFolder/bin/go version))"
# If this version of Go is to be the default version,
# symlink it into the path and point GOROOT to it.
if [ $2 = true ]
then
ln -s $goFolder/bin/* /usr/bin/
echo "GOROOT=$goFolder" | tee -a /etc/environment
fi
}
function getFullGoVersion () {
local pattern="refs/tags/go$1([.0-9]{0,3})$"
local query='[.[] | select( .ref | test($pattern))] | .[-1] | .ref'
refValue=$(jq --arg pattern "$pattern" "$query" $golangTags)
version=$(echo "$refValue" | cut -d '/' -f 3)
version=$(echo "${version//\"}") # go1.12.17
echo $version
}
# load golang_tags.json file
curl -s 'https://api.github.com/repos/golang/go/git/refs/tags' >> $golangTags
# Install Go versions
for go in ${GO_VERSIONS}; do
echo "Installing Go ${go}"
if [[ $go == $GO_DEFAULT ]]; then
InstallGo $go true
else
InstallGo $go false
fi
done

View File

@@ -56,4 +56,4 @@ if ! command -v chromedriver; then
fi
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Chromedriver ($(chromedriver --version)); Chrome Driver is available via CHROMEWEBDRIVER environment variable"
DocumentInstalledItem "$(chromedriver --version); Chrome Driver is available via CHROMEWEBDRIVER environment variable"

View File

@@ -25,6 +25,7 @@ apt-get install -y \
ghc-8.6.5 \
ghc-8.8.1 \
ghc-8.8.2 \
ghc-8.8.3 \
cabal-install-2.0 \
cabal-install-2.2 \
cabal-install-2.4 \
@@ -36,7 +37,7 @@ curl -sSL https://raw.githubusercontent.com/commercialhaskell/stack/v2.1.3/etc/s
# Run tests to determine that the software installed as expected
echo "Testing to make sure that script performed as expected, and basic scenarios work"
# Check all ghc versions
for version in 8.0.2 8.2.2 8.4.4 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2; do
for version in 8.0.2 8.2.2 8.4.4 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3; do
if ! command -v /opt/ghc/$version/bin/ghc; then
echo "ghc $version was not installed"
exit 1
@@ -59,7 +60,7 @@ echo "Lastly, documenting what we added to the metadata file"
for version in 2.0 2.2 2.4 3.0; do
DocumentInstalledItem "Haskell Cabal ($(/opt/cabal/$version/bin/cabal --version))"
done
for version in 8.0.2 8.2.2 8.4.4 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2; do
for version in 8.0.2 8.2.2 8.4.4 8.6.2 8.6.3 8.6.4 8.6.5 8.8.1 8.8.2 8.8.3; do
DocumentInstalledItem "GHC ($(/opt/ghc/$version/bin/ghc --version))"
done
DocumentInstalledItem "Haskell Stack ($(stack --version))"

View File

@@ -23,17 +23,18 @@ function GetLatestJuliaRelease () {
function InstallJulia () {
# Extract Major and Minor version from full version string
juliaMajorAndMinorVersion="$(sed 's/\.[^.]*$//' <<< $1)"
juliaMajorAndMinorVersion="$(cut -d. -f1,2 <<< $1)"
juliaInstallationPath="/usr/local/julia$1"
curl -sL "https://julialang-s3.julialang.org/bin/linux/x64/$juliaMajorAndMinorVersion/julia-$1-linux-x86_64.tar.gz" -o "julia-$1-linux-x86_64.tar.gz"
mkdir -p "/usr/local/julia$juliaMajorAndMinorVersion"
tar -C "/usr/local/julia$juliaMajorAndMinorVersion" -xzf "julia-$1-linux-x86_64.tar.gz" --strip-components=1 julia
mkdir -p "$juliaInstallationPath"
tar -C "$juliaInstallationPath" -xzf "julia-$1-linux-x86_64.tar.gz" --strip-components=1
rm "julia-$1-linux-x86_64.tar.gz"
# If this version of Julia is to be the default version,
# symlink it into the path
if [ "$2" = true ]; then
ln -s "/usr/local/julia$juliaMajorAndMinorVersion/bin/julia" /usr/bin/julia
ln -s "$juliaInstallationPath/bin/julia" /usr/bin/julia
fi
# Run tests to determine that the software installed as expected
@@ -49,7 +50,7 @@ function InstallJulia () {
fi
# Verify output of julia --version
if [ ! "$(/usr/local/julia"$juliaMajorAndMinorVersion"/bin/julia --version)" = "julia version $1" ]; then
if [ ! "$($juliaInstallationPath/bin/julia --version)" = "julia version $1" ]; then
echo "Julia was not installed correctly"
exit 1
fi

View File

@@ -44,3 +44,7 @@ echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "MySQL ($(mysql --version))"
DocumentInstalledItem "MySQL Server (user:root password:root)"
DocumentInstalledItem "MS SQL Server Client Tools"
# Disable mysql.service
systemctl is-active --quiet mysql.service && systemctl stop mysql.service
systemctl disable mysql.service

View File

@@ -0,0 +1,25 @@
#!/bin/bash
################################################################################
## File: packer.sh
## Desc: Installs packer
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
source $HELPER_SCRIPTS/apt.sh
# Install Packer
PACKER_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | jq -r .current_version)
curl -LO "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip"
unzip "packer_${PACKER_VERSION}_linux_amd64.zip" -d /usr/local/bin
rm -f "packer_${PACKER_VERSION}_linux_amd64.zip"
# 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 packer; then
echo "Packer was not installed or found on PATH"
exit 1
fi
# Document what was added to the image
echo "Lastly, documenting what we added to the metadata file"
DocumentInstalledItem "Packer ($(packer --version))"

View File

@@ -7,8 +7,6 @@
# Source the helpers for use with the script
source $HELPER_SCRIPTS/document.sh
LSB_RELEASE=$(lsb_release -rs)
# Install Powershell
apt-get install -y powershell

View File

@@ -0,0 +1,28 @@
#!/bin/bash
imagedata_file=$IMAGEDATA_FILE
image_version=$IMAGE_VERSION
os_name=$(lsb_release -ds | sed "s/ /\\\n/g")
image_label="ubuntu-$(lsb_release -rs)"
github_url="https://github.com/actions/virtual-environments/blob"
if [[ "$image_label" =~ "ubuntu-18" ]]; then
software_url="${github_url}/ubuntu18/${image_version}/images/linux/Ubuntu1804-README.md"
fi
if [[ "$image_label" =~ "ubuntu-16" ]]; then
software_url="${github_url}/ubuntu16/${image_version}/images/linux/Ubuntu1604-README.md"
fi
cat <<EOF > $imagedata_file
[
{
"group": "Operating System",
"detail": "${os_name}"
},
{
"group": "Virtual Environment",
"detail": "Environment: ${image_label}\nVersion: ${image_version}\nIncluded Software: ${software_url}"
}
]
EOF

View File

@@ -14,8 +14,7 @@ export CARGO_HOME=/usr/share/rust/.cargo
curl https://sh.rustup.rs -sSf | sh -s -- -y
# Add Cargo and Rust binaries to the machine path
echo "PATH=${CARGO_HOME}/bin:$PATH" | tee -a /etc/environment
# Initialize environment variables
source $CARGO_HOME/env
# Install common tools

View File

@@ -0,0 +1,6 @@
#!/bin/bash
CARGO_HOME=/usr/share/rust/.cargo
DOTNET_TOOLS_HOME=/home/runner/.dotnet/tools
PHP_COMPOSER_HOME=/home/runner/.config/composer/vendor/bin
echo "PATH=${CARGO_HOME}/bin:${PATH}:${DOTNET_TOOLS_HOME}:${PHP_COMPOSER_HOME}" | tee -a /etc/environment

View File

@@ -15,6 +15,7 @@
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"image_folder": "/imagegeneration",
"commit_file": "/imagegeneration/commit.txt",
"imagedata_file": "/imagegeneration/imagedata.json",
"metadata_file": "/imagegeneration/metadatafile",
"installer_script_folder": "/imagegeneration/installers",
"helper_script_folder": "/imagegeneration/helpers",
@@ -22,7 +23,9 @@
"capture_name_prefix": "packer",
"image_version": "dev",
"image_os": "ubuntu16",
"github_feed_token": null
"github_feed_token": null,
"go_default": "1.14",
"go_versions": "1.11 1.12 1.13 1.14"
},
"sensitive-variables": ["client_secret", "github_feed_token"],
"builders": [
@@ -107,6 +110,17 @@
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/preimagedata.sh"
],
"environment_vars": [
"IMAGE_VERSION={{user `image_version`}}",
"IMAGEDATA_FILE={{user `imagedata_file`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
"inline": [
@@ -130,14 +144,12 @@
"{{template_dir}}/scripts/installers/cmake.sh",
"{{template_dir}}/scripts/installers/docker-compose.sh",
"{{template_dir}}/scripts/installers/docker-moby.sh",
"{{template_dir}}/scripts/installers/docker.sh",
"{{template_dir}}/scripts/installers/1604/dotnetcore-sdk.sh",
"{{template_dir}}/scripts/installers/dotnetcore-sdk.sh",
"{{template_dir}}/scripts/installers/erlang.sh",
"{{template_dir}}/scripts/installers/firefox.sh",
"{{template_dir}}/scripts/installers/gcc.sh",
"{{template_dir}}/scripts/installers/gfortran.sh",
"{{template_dir}}/scripts/installers/git.sh",
"{{template_dir}}/scripts/installers/1604/go.sh",
"{{template_dir}}/scripts/installers/google-chrome.sh",
"{{template_dir}}/scripts/installers/google-cloud-sdk.sh",
"{{template_dir}}/scripts/installers/haskell.sh",
@@ -153,20 +165,24 @@
"{{template_dir}}/scripts/installers/mono.sh",
"{{template_dir}}/scripts/installers/mysql.sh",
"{{template_dir}}/scripts/installers/nodejs.sh",
"{{template_dir}}/scripts/installers/bazel.sh",
"{{template_dir}}/scripts/installers/phantomjs.sh",
"{{template_dir}}/scripts/installers/1604/php.sh",
"{{template_dir}}/scripts/installers/pollinate.sh",
"{{template_dir}}/scripts/installers/postgresql.sh",
"{{template_dir}}/scripts/installers/1604/powershellcore.sh",
"{{template_dir}}/scripts/installers/powershellcore.sh",
"{{template_dir}}/scripts/installers/ruby.sh",
"{{template_dir}}/scripts/installers/rust.sh",
"{{template_dir}}/scripts/installers/julia.sh",
"{{template_dir}}/scripts/installers/sbt.sh",
"{{template_dir}}/scripts/installers/selenium.sh",
"{{template_dir}}/scripts/installers/sphinx.sh",
"{{template_dir}}/scripts/installers/subversion.sh",
"{{template_dir}}/scripts/installers/terraform.sh",
"{{template_dir}}/scripts/installers/packer.sh",
"{{template_dir}}/scripts/installers/vcpkg.sh",
"{{template_dir}}/scripts/installers/zeit-now.sh",
"{{template_dir}}/scripts/installers/updatepath.sh",
"{{template_dir}}/scripts/installers/dpkg-config.sh"
],
@@ -177,6 +193,19 @@
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
"scripts": [
"{{template_dir}}/scripts/installers/go.sh"
],
"environment_vars": [
"METADATA_FILE={{user `metadata_file`}}",
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
"GO_VERSIONS={{user `go_versions`}}",
"GO_DEFAULT={{user `go_default`}}"
],
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}"
},
{
"type": "file",
"source": "{{template_dir}}/toolcache-1604.json",
@@ -186,7 +215,7 @@
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/1604/android.sh",
"{{template_dir}}/scripts/installers/1604/azpowershell.sh",
"{{template_dir}}/scripts/installers/azpowershell.sh",
"{{template_dir}}/scripts/helpers/containercache.sh",
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
"{{template_dir}}/scripts/installers/python.sh",

View File

@@ -15,6 +15,7 @@
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"image_folder": "/imagegeneration",
"commit_file": "/imagegeneration/commit.txt",
"imagedata_file": "/imagegeneration/imagedata.json",
"metadata_file": "/imagegeneration/metadatafile",
"installer_script_folder": "/imagegeneration/installers",
"helper_script_folder": "/imagegeneration/helpers",
@@ -22,7 +23,9 @@
"capture_name_prefix": "packer",
"image_version": "dev",
"image_os": "ubuntu18",
"github_feed_token": null
"github_feed_token": null,
"go_default": "1.14",
"go_versions": "1.11 1.12 1.13 1.14"
},
"sensitive-variables": ["client_secret", "github_feed_token"],
"builders": [
@@ -110,6 +113,17 @@
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/preimagedata.sh"
],
"environment_vars": [
"IMAGE_VERSION={{user `image_version`}}",
"IMAGEDATA_FILE={{user `imagedata_file`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
"inline": [
@@ -133,14 +147,12 @@
"{{template_dir}}/scripts/installers/cmake.sh",
"{{template_dir}}/scripts/installers/docker-compose.sh",
"{{template_dir}}/scripts/installers/docker-moby.sh",
"{{template_dir}}/scripts/installers/docker.sh",
"{{template_dir}}/scripts/installers/1804/dotnetcore-sdk.sh",
"{{template_dir}}/scripts/installers/dotnetcore-sdk.sh",
"{{template_dir}}/scripts/installers/erlang.sh",
"{{template_dir}}/scripts/installers/firefox.sh",
"{{template_dir}}/scripts/installers/gcc.sh",
"{{template_dir}}/scripts/installers/gfortran.sh",
"{{template_dir}}/scripts/installers/git.sh",
"{{template_dir}}/scripts/installers/1804/go.sh",
"{{template_dir}}/scripts/installers/google-chrome.sh",
"{{template_dir}}/scripts/installers/google-cloud-sdk.sh",
"{{template_dir}}/scripts/installers/haskell.sh",
@@ -156,20 +168,24 @@
"{{template_dir}}/scripts/installers/mono.sh",
"{{template_dir}}/scripts/installers/mysql.sh",
"{{template_dir}}/scripts/installers/nodejs.sh",
"{{template_dir}}/scripts/installers/bazel.sh",
"{{template_dir}}/scripts/installers/phantomjs.sh",
"{{template_dir}}/scripts/installers/1804/php.sh",
"{{template_dir}}/scripts/installers/pollinate.sh",
"{{template_dir}}/scripts/installers/postgresql.sh",
"{{template_dir}}/scripts/installers/1804/powershellcore.sh",
"{{template_dir}}/scripts/installers/powershellcore.sh",
"{{template_dir}}/scripts/installers/ruby.sh",
"{{template_dir}}/scripts/installers/rust.sh",
"{{template_dir}}/scripts/installers/julia.sh",
"{{template_dir}}/scripts/installers/sbt.sh",
"{{template_dir}}/scripts/installers/selenium.sh",
"{{template_dir}}/scripts/installers/sphinx.sh",
"{{template_dir}}/scripts/installers/subversion.sh",
"{{template_dir}}/scripts/installers/terraform.sh",
"{{template_dir}}/scripts/installers/packer.sh",
"{{template_dir}}/scripts/installers/vcpkg.sh",
"{{template_dir}}/scripts/installers/zeit-now.sh",
"{{template_dir}}/scripts/installers/updatepath.sh",
"{{template_dir}}/scripts/installers/dpkg-config.sh"
],
"environment_vars": [
@@ -179,6 +195,19 @@
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
"scripts": [
"{{template_dir}}/scripts/installers/go.sh"
],
"environment_vars": [
"METADATA_FILE={{user `metadata_file`}}",
"HELPER_SCRIPTS={{user `helper_script_folder`}}",
"GO_VERSIONS={{user `go_versions`}}",
"GO_DEFAULT={{user `go_default`}}"
],
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}"
},
{
"type": "file",
"source": "{{template_dir}}/toolcache-1804.json",
@@ -188,7 +217,7 @@
"type": "shell",
"scripts":[
"{{template_dir}}/scripts/installers/1804/android.sh",
"{{template_dir}}/scripts/installers/1804/azpowershell.sh",
"{{template_dir}}/scripts/installers/azpowershell.sh",
"{{template_dir}}/scripts/helpers/containercache.sh",
"{{template_dir}}/scripts/installers/hosted-tool-cache.sh",
"{{template_dir}}/scripts/installers/python.sh",

View File

@@ -1,5 +1,5 @@
# macOS Catalina 10.15.3 (19D76)
The following software is installed on machines with the 20200217.2 update.
The following software is installed on machines with the 20200224.1 update.
#### Xcode 11.3.1 set by default
## Operating System
@@ -13,40 +13,41 @@ The following software is installed on machines with the 20200217.2 update.
- Java 11: Zulu11.37+17-CA (build 11.0.6+10-LTS)
- Java 12: Zulu12.3+11-CA (build 12.0.2+3)
- Java 13: Zulu13.29+9-CA (build 13.0.2+6-MTS)
- Rust 1.41.0
- Rust 1.41.1
- Clang/LLVM 9.0.1
- gcc-8 (Homebrew GCC 8.3.0_2) 8.3.0
- gcc-9 (Homebrew GCC 9.2.0_3) 9.2.0
- GNU Fortran (Homebrew GCC 8.3.0_2) 8.3.0
- GNU Fortran (Homebrew GCC 9.2.0_3) 9.2.0
- Node.js v12.16.0
- Node.js v12.16.1
- NVM 0.33.11
- NVM - Cached node versions: v6.17.1 v8.17.0 v10.19.0 v12.16.0 v13.8.0
- NVM - Cached node versions: v6.17.1 v8.17.0 v10.19.0 v12.16.1 v13.9.0
- PowerShell 6.2.4
- Python 2.7.17
- Python 3.7.6
- Ruby 2.7.0p0
- .NET SDK 2.0.0 3.0.100 3.0.101 3.0.102 3.1.100 3.1.101
- Go 1.13.8
- PHP 7.4.2
- Ruby 2.6.5p114
- .NET SDK 2.0.0 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101
- Go 1.14
- PHP 7.4.3
### Package Management
- Rustup 1.21.1
- Bundler version 2.1.4
- Carthage 0.34.0
- CocoaPods 1.8.4
- CocoaPods 1.9.0
- Homebrew 2.2.6
- NPM 6.13.4
- Yarn 1.22.0
- NuGet 5.3.1.6268
- NuGet 5.4.0.6315
- Pip 19.3.1 (python 2.7)
- Pip 19.3.1 (python 3.7)
- Miniconda 4.7.12
- RubyGems 3.1.2
- Vcpkg 2020.02.04
### Project Management
- Apache Maven 3.6.3
- Gradle 6.2
- Gradle 6.2.1
### Utilities
- Curl 7.68.0
@@ -54,26 +55,27 @@ The following software is installed on machines with the 20200217.2 update.
- Git LFS: 2.10.0
- GNU Wget 1.20.3
- Subversion (SVN) 1.13.0
- GNU parallel 20200122
- GNU parallel 20200222
- OpenSSL 1.0.2t 10 Sep 2019
- jq 1.6
- gpg (GnuPG) 2.2.19
- psql (PostgreSQL) 12.1
- psql (PostgreSQL) 12.2
- aria2 1.35.0
- azcopy 10.3.4
- zstd 1.4.4
### Tools
- Fastlane 2.141.0
- Fastlane 2.142.0
- Cmake 3.16.4
- App Center CLI 2.3.3
- Azure CLI 2.0.81
- Azure CLI 2.1.0
### Browsers
- Google Chrome 80.0.3987.106
- Google Chrome 80.0.3987.122
- ChromeDriver 80.0.3987.106
- Microsoft Edge 80.0.361.54
- MSEdgeDriver 80.0.361.54
- Mozilla Firefox 73.0
- Microsoft Edge 80.0.361.62
- MSEdgeDriver 80.0.361.62
- Mozilla Firefox 73.0.1
- geckodriver 0.26.0
### Toolcache
@@ -88,7 +90,7 @@ The following software is installed on machines with the 20200217.2 update.
- 3.5.9
- 3.6.10
- 3.7.6
- 3.8.1
- 3.8.2
#### PyPy
- 2.7.17
@@ -96,20 +98,20 @@ The following software is installed on machines with the 20200217.2 update.
### Xamarin
#### Visual Studio for Mac
- 8.4.5.19
- 8.4.7.17
#### Mono
- 6.6.0.155
- 6.6.0.166
- 6.4.0.208
#### Xamarin.iOS
- 13.10.0.17
- 13.10.0.21
- 13.8.3.0
- 13.6.0.12
- 13.4.0.2
#### Xamarin.Mac
- 6.10.0.17
- 6.10.0.21
- 6.8.3.0
- 6.6.0.12
- 6.4.0.2
@@ -122,15 +124,15 @@ The following software is installed on machines with the 20200217.2 update.
- NUnit 3.6.1
### Xcode
| Version | Build | Path |
| --------------------------------- | --------------------------------- | --------------------------------- |
| 11.4 (beta) | 11N111s | /Applications/Xcode_11.4_beta.app |
| 11.3.1 (default) | 11C505 | /Applications/Xcode_11.3.1.app |
| 11.3 | 11C29 | /Applications/Xcode_11.3.app |
| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app |
| 11.2 | 11B52 | /Applications/Xcode_11.2.app |
| 11.1 | 11A1027 | /Applications/Xcode_11.1.app |
| 11.0 | 11A420a | /Applications/Xcode_11.app |
| Version | Build | Path |
| ---------------- | ------- | --------------------------------- |
| 11.4 (beta) | 11N123k | /Applications/Xcode_11.4_beta.app |
| 11.3.1 (default) | 11C505 | /Applications/Xcode_11.3.1.app |
| 11.3 | 11C29 | /Applications/Xcode_11.3.app |
| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app |
| 11.2 | 11B52 | /Applications/Xcode_11.2.app |
| 11.1 | 11A1027 | /Applications/Xcode_11.1.app |
| 11.0 | 11A420a | /Applications/Xcode_11.app |
#### Xcode Support Tools
- Nomad CLI 3.1.2
@@ -140,46 +142,46 @@ The following software is installed on machines with the 20200217.2 update.
- 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, 11.3, 11.3.1, 11.4 |
| iOS 13.0 | iphoneos13.0 | 11.0 |
| iOS 13.1 | iphoneos13.1 | 11.1 |
| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| iOS 13.4 | iphoneos13.4 | 11.4 |
| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 |
| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 |
| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4 |
| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| tvOS 13.4 | appletvos13.4 | 11.4 |
| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4 |
| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
| watchOS 6.2 | watchos6.2 | 11.4 |
| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 |
| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4 |
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4 |
| SDK | SDK Name | Xcode Version |
| ----------------------- | -------------------- | -------------------------------------------- |
| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4 |
| iOS 13.0 | iphoneos13.0 | 11.0 |
| iOS 13.1 | iphoneos13.1 | 11.1 |
| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| iOS 13.4 | iphoneos13.4 | 11.4 |
| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 |
| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 |
| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4 |
| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| tvOS 13.4 | appletvos13.4 | 11.4 |
| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4 |
| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
| watchOS 6.2 | watchos6.2 | 11.4 |
| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 |
| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4 |
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1, 11.4 |
#### Installed Simulators
| OS | Xcode Version | Simulators |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| iOS 13.0 | 11.0 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.1 | 11.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.2 | 11.2<br>11.2.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.3 | 11.3<br>11.3.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.4 | 11.4 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| tvOS 13.0 | 11.0<br>11.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.2 | 11.2<br>11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.3 | 11.3<br>11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.4 | 11.4 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| watchOS 6.0 | 11.0<br>11.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| watchOS 6.1 | 11.2<br>11.2.1<br>11.3<br>11.3.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| watchOS 6.2 | 11.4 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| OS | Xcode Version | Simulators |
| ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| iOS 13.0 | 11.0 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.1 | 11.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.2 | 11.2<br>11.2.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.3 | 11.3<br>11.3.1 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| iOS 13.4 | 11.4 | iPhone 8<br>iPhone 8 Plus<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPad Pro (9.7-inch)<br>iPad (7th generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Air (3rd generation) |
| tvOS 13.0 | 11.0<br>11.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.2 | 11.2<br>11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.3 | 11.3<br>11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 13.4 | 11.4 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| watchOS 6.0 | 11.0<br>11.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| watchOS 6.1 | 11.2<br>11.2.1<br>11.3<br>11.3.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| watchOS 6.2 | 11.4 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
### Android
#### Android SDK Tools
@@ -188,70 +190,71 @@ The following software is installed on machines with the 20200217.2 update.
| tools | Android SDK Tools, Revision 26.1.1 |
#### Android SDK Platform-Tools
| Package Name | Description |
| ------------------------------------------- | ------------------------------------------- |
| platform-tools | Android SDK Platform-Tools, Revision 29.0.5 |
| Package Name | Description |
| -------------- | ------------------------------------------- |
| platform-tools | Android SDK Platform-Tools, Revision 29.0.6 |
#### Android SDK Platforms
| Package Name | Description |
| ----------------------------------- | ----------------------------------- |
| android-24 | Android SDK Platform 24, Revision 2 |
| android-25 | Android SDK Platform 25, Revision 3 |
| android-26 | Android SDK Platform 26, Revision 2 |
| android-27 | Android SDK Platform 27, Revision 3 |
| android-28 | Android SDK Platform 28, Revision 6 |
| android-29 | Android SDK Platform 29, Revision 4 |
| Package Name | Description |
| ------------ | ----------------------------------- |
| android-24 | Android SDK Platform 24, Revision 2 |
| android-25 | Android SDK Platform 25, Revision 3 |
| android-26 | Android SDK Platform 26, Revision 2 |
| android-27 | Android SDK Platform 27, Revision 3 |
| android-28 | Android SDK Platform 28, Revision 6 |
| android-29 | Android SDK Platform 29, Revision 4 |
#### Android SDK Build-Tools
| Package Name | Description |
| ---------------------------------------- | ---------------------------------------- |
| build-tools-24.0.0 | Android SDK Build-Tools, Revision 24.0.0 |
| build-tools-24.0.1 | Android SDK Build-Tools, Revision 24.0.1 |
| build-tools-24.0.2 | Android SDK Build-Tools, Revision 24.0.2 |
| build-tools-24.0.3 | Android SDK Build-Tools, Revision 24.0.3 |
| build-tools-25.0.0 | Android SDK Build-Tools, Revision 25.0.0 |
| build-tools-25.0.1 | Android SDK Build-Tools, Revision 25.0.1 |
| build-tools-25.0.2 | Android SDK Build-Tools, Revision 25.0.2 |
| build-tools-25.0.3 | Android SDK Build-Tools, Revision 25.0.3 |
| build-tools-26.0.0 | Android SDK Build-Tools, Revision 26.0.0 |
| build-tools-26.0.1 | Android SDK Build-Tools, Revision 26.0.1 |
| build-tools-26.0.2 | Android SDK Build-Tools, Revision 26.0.2 |
| build-tools-26.0.3 | Android SDK Build-Tools, Revision 26.0.3 |
| build-tools-27.0.0 | Android SDK Build-Tools, Revision 27.0.0 |
| build-tools-27.0.1 | Android SDK Build-Tools, Revision 27.0.1 |
| build-tools-27.0.2 | Android SDK Build-Tools, Revision 27.0.2 |
| build-tools-27.0.3 | Android SDK Build-Tools, Revision 27.0.3 |
| build-tools-28.0.0 | Android SDK Build-Tools, Revision 28.0.0 |
| build-tools-28.0.1 | Android SDK Build-Tools, Revision 28.0.1 |
| build-tools-28.0.2 | Android SDK Build-Tools, Revision 28.0.2 |
| build-tools-28.0.3 | Android SDK Build-Tools, Revision 28.0.3 |
| build-tools-29.0.0 | Android SDK Build-Tools, Revision 29.0.0 |
| 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 |
| Package Name | Description |
| ---------------------- | -------------------------------------------- |
| build-tools-24.0.0 | Android SDK Build-Tools, Revision 24.0.0 |
| build-tools-24.0.1 | Android SDK Build-Tools, Revision 24.0.1 |
| build-tools-24.0.2 | Android SDK Build-Tools, Revision 24.0.2 |
| build-tools-24.0.3 | Android SDK Build-Tools, Revision 24.0.3 |
| build-tools-25.0.0 | Android SDK Build-Tools, Revision 25.0.0 |
| build-tools-25.0.1 | Android SDK Build-Tools, Revision 25.0.1 |
| build-tools-25.0.2 | Android SDK Build-Tools, Revision 25.0.2 |
| build-tools-25.0.3 | Android SDK Build-Tools, Revision 25.0.3 |
| build-tools-26.0.0 | Android SDK Build-Tools, Revision 26.0.0 |
| build-tools-26.0.1 | Android SDK Build-Tools, Revision 26.0.1 |
| build-tools-26.0.2 | Android SDK Build-Tools, Revision 26.0.2 |
| build-tools-26.0.3 | Android SDK Build-Tools, Revision 26.0.3 |
| build-tools-27.0.0 | Android SDK Build-Tools, Revision 27.0.0 |
| build-tools-27.0.1 | Android SDK Build-Tools, Revision 27.0.1 |
| build-tools-27.0.2 | Android SDK Build-Tools, Revision 27.0.2 |
| build-tools-27.0.3 | Android SDK Build-Tools, Revision 27.0.3 |
| build-tools-28.0.0 | Android SDK Build-Tools, Revision 28.0.0 |
| build-tools-28.0.1 | Android SDK Build-Tools, Revision 28.0.1 |
| build-tools-28.0.2 | Android SDK Build-Tools, Revision 28.0.2 |
| build-tools-28.0.3 | Android SDK Build-Tools, Revision 28.0.3 |
| build-tools-29.0.0 | Android SDK Build-Tools, Revision 29.0.0 |
| 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 |
#### Android Utils
| Package Name | Version |
| ---------------- | ---------------- |
| cmake | 3.6.4111459 |
| lldb | 3.1.4508709 |
| ndk-bundle | 18.1.5063045 |
| Android Emulator | 29.3.4 |
| Package Name | Version |
| ---------------- | ------------ |
| cmake | 3.6.4111459 |
| lldb | 3.1.4508709 |
| ndk-bundle | 18.1.5063045 |
| Android Emulator | 30.0.0 |
#### Android Google APIs
| Package Name | Description |
| --------------------------- | --------------------------- |
| addon-google_apis-google-21 | Google APIs, Revision 1 |
| addon-google_apis-google-22 | Google APIs, Revision 1 |
| addon-google_apis-google-23 | Google APIs, Revision 1 |
| addon-google_apis-google-24 | Google APIs, Revision 1 |
| Package Name | Description |
| --------------------------- | ----------------------- |
| addon-google_apis-google-21 | Google APIs, Revision 1 |
| addon-google_apis-google-22 | Google APIs, Revision 1 |
| addon-google_apis-google-23 | Google APIs, Revision 1 |
| addon-google_apis-google-24 | Google APIs, Revision 1 |
#### Extra Packages
| Package Name | Version |
| ----------------------------------------------- | ----------------------------------------------- |
| Android Support Repository | 47.0.0 |
| Google Play services | 49 |
| Google Repository | 58 |
| Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 |
| Package Name | Version |
| ----------------------------------------------- | ------- |
| Android Support Repository | 47.0.0 |
| Google Play services | 49 |
| Google Repository | 58 |
| Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 |

View File

@@ -19,6 +19,7 @@
"root_folder": "C:",
"image_folder": "C:\\image",
"commit_file": "C:\\image\\commit.txt",
"imagedata_file": "C:\\imagedata.json",
"metadata_file": "C:\\image\\metadata.txt",
"helper_script_folder": "C:\\Program Files\\WindowsPowerShell\\Modules\\",
"commit_url": "LATEST",
@@ -120,6 +121,16 @@
"setx ImageOS {{user `image_os` }} /m"
]
},
{
"type": "powershell",
"environment_vars": [
"IMAGE_VERSION={{user `image_version`}}",
"IMAGEDATA_FILE={{user `imagedata_file`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Update-ImageData.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -277,11 +288,23 @@
"{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Bazel.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Packer.ps1"
]
},
{
"type": "file",
@@ -304,6 +327,12 @@
"{{ template_dir }}/scripts/Installers/Windows2016/Install-Python.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Perl.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -338,6 +367,12 @@
"{{ template_dir }}/scripts/Installers/Install-Rust.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Julia.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -377,7 +412,7 @@
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-SeleniumWebDrivers.ps1"
"{{ template_dir }}/scripts/Installers/Install-IEWebDriver.ps1"
]
},
{
@@ -516,12 +551,6 @@
"{{ template_dir }}/scripts/Installers/Install-InnoSetup.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Perl.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -607,6 +636,12 @@
"{{ template_dir }}/scripts/Installers/Validate-Python.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Perl.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -651,6 +686,12 @@
"{{ template_dir }}/scripts/Installers/Validate-Rust.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Julia.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -693,6 +734,12 @@
"{{ template_dir }}/scripts/Installers/Validate-NodeLts.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Bazel.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -759,6 +806,12 @@
"{{ template_dir }}/scripts/Installers/Validate-7zip.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Packer.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -783,12 +836,6 @@
"{{ template_dir }}/scripts/Installers/Validate-InnoSetup.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Perl.ps1"
]
},
{
"type": "powershell",
"scripts":[

View File

@@ -1,6 +1,6 @@
# Windows Server 2016
The following software is installed on machines with the 20200217.1 update.
The following software is installed on machines with the 20200301.1 update.
Components marked with **\*** have been upgraded since the previous version of the image.
@@ -30,9 +30,9 @@ _Version:_ 6.2.4 <br/>
## Docker images
The following container images have been cached:
* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016 (Digest: sha256:a1bd1a6dc00f2734b5071b9295f715f36a653e4b2d259c1a4a4d9e8cd6f3ade8)
* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016 (Digest: sha256:7e81f462be36ba1362062306426c65547e6d63b2eab0b5583808581081393a79)
The following container images have been cached:
* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016 (Digest: sha256:2053602020c89ff2d6c0d4005372ebc6cebcf866fb5785e562d91389aa467943)
* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016 (Digest: sha256:ca895ab76f1d3ab95f022cbca076e06b62daebafe61af34212bb3ed1fe982d78)
* mcr.microsoft.com/windows/servercore:ltsc2016 (Digest: sha256:10e43e24be6eb5f3e19e705a88adb9794b569028f0e0d715d40f25e53e04c3fc)
* microsoft/aspnetcore-build:1.0-2.0 (Digest: sha256:9ecc7c5a8a7a11dca5f08c860165646cb30d084606360a3a72b9cbe447241c0c)
* mcr.microsoft.com/windows/nanoserver:10.0.14393.953 (Digest: sha256:fc60bd5ae0e61b334ce1cf1bcbf20c10c36b4c5482a01da319c9c989f9e6e268)
@@ -73,6 +73,8 @@ In addition the following optional components are installed:
* Microsoft.Net.ComponentGroup.4.7.DeveloperTools
* Microsoft.Net.Component.4.7.1.SDK
* Microsoft.Net.Component.4.7.1.TargetingPack
* Microsoft.Net.ComponentGroup.4.7.1.DeveloperTools
* Microsoft.Net.Component.4.7.2.SDK
* Microsoft.Net.Component.4.7.2.TargetingPack
* Microsoft.Net.ComponentGroup.4.7.2.DeveloperTools
* Microsoft.Net.Core.Component.SDK.1x
@@ -326,7 +328,7 @@ _Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-21
_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-19
## AzureRM PowerShell module
#### 2.1.0
@@ -334,23 +336,73 @@ This version is installed and is available via `Get-Module -ListAvailable`
This version is installed and is available via `Get-Module -ListAvailable`
#### 3.8.0
This version is saved but not installed
_Location:_ C:\Modules\azurerm_3.8.0\AzureRM\3.8.0\AzureRM.psd1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_3.8.0\AzureRM\3.8.0\AzureRM.psd1
#### 4.2.1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_4.2.1\AzureRM\4.2.1\AzureRM.psd1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_4.2.1\AzureRM\4.2.1\AzureRM.psd1
#### 5.1.1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_5.1.1\AzureRM\5.1.1\AzureRM.psd1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_5.1.1\AzureRM\5.1.1\AzureRM.psd1
#### 6.7.0
This version is saved but not installed
This version is saved but not installed
_Location:_ C:\Modules\azurerm_6.7.0\AzureRM\6.7.0\AzureRM.psd1
#### 6.13.1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_6.13.1\AzureRM\6.13.1\AzureRM.psd1
## Azure PowerShell module
#### 2.1.0
This version is installed and is available via `Get-Module -ListAvailable`
#### 3.8.0
This version is saved but not installed
_Location:_ C:\Modules\azure_3.8.0\Azure\3.8.0\Azure.psd1
#### 4.2.1
This version is saved but not installed
_Location:_ C:\Modules\azure_4.2.1\Azure\4.2.1\Azure.psd1
#### 5.1.1
This version is saved but not installed
_Location:_ C:\Modules\azure_5.1.1\Azure\5.1.1\Azure.psd1
#### 5.3.0
This version is saved but not installed
_Location:_ C:\Modules\azure_5.3.0\Azure\5.3.0\Azure.psd1
## Az PowerShell module
#### 1.0.0
This version is saved but not installed
_Location:_ C:\Modules\az_1.0.0\Az\1.0.0\Az.psd1
#### 1.6.0
This version is saved but not installed
_Location:_ C:\Modules\az_1.6.0\Az\1.6.0\Az.psd1
#### 2.3.2
This version is saved but not installed
_Location:_ C:\Modules\az_2.3.2\Az\2.3.2\Az.psd1
#### 2.6.0
This version is saved but not installed
_Location:_ C:\Modules\az_2.6.0\Az\2.6.0\Az.psd1
#### 3.1.0
This version is saved but not installed
_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
## TLS12
@@ -359,7 +411,7 @@ _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.1.0
_Environment:_
* PATH: contains location of az.cmd
@@ -369,7 +421,7 @@ _Version:_ azure-devops 0.17.0
_Version:_ azure-devops 0.17.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/>
## PyPy
@@ -391,13 +443,13 @@ _Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64
_Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64
## Git
_Version:_ 2.25.1<br/>
_Environment:_
* PATH: contains location of git.exe
## Git Large File Storage (LFS)
_Version:_ 2.10.0<br/>
_Environment:_
* PATH: contains location of git-lfs.exe
@@ -448,11 +500,11 @@ _Environment:_
## PHP (x64)
#### 7.4.3
_Environment:_
* PATH: contains the location of php.exe version 7.4.2
_Environment:_
* PATH: contains the location of php.exe version 7.4.3
* PHPROOT: root directory of the PHP 7.4.3 installation
## Ruby (x64)
@@ -464,7 +516,7 @@ _Environment:_
* Gem Version: 3.1.2
## Rust (64-bit)
#### 1.41.1
_Location:_ C:\Rust\.cargo\bin
_Environment:_
@@ -482,17 +534,17 @@ _Environment:_
## Google Chrome
_version:_
_version:_
80.0.3987.122
## Microsoft Edge
_version:_
_version:_
80.0.361.62
## Mozilla Firefox
_version:_
_version:_
73.0.1
## Selenium Web Drivers
@@ -508,7 +560,7 @@ _Environment:_
#### Gecko Driver
_version:_
_version:_
_Environment:_
@@ -532,7 +584,7 @@ _Environment:_
## Node.js
_Version:_ 12.16.1<br/>
_Architecture:_ x64<br/>
_Environment:_
@@ -573,26 +625,27 @@ _Environment:_
* COBERTURA_HOME: location of cobertura-2.1.1.jar
## Maven
_Version:_ 3.6.3<br/>
_Environment:_
* PATH: contains location of mvn.bat
* M2_HOME: Maven installation root
## Gradle
_Version:_ 6.2.1<br/>
_Environment:_
* PATH: contains location of gradle
## Cmake
_Version:_ 3.16.4<br/>
_Environment:_
* PATH: contains location of cmake.exe
## SQL Server Data Tier Application Framework (x64)
_Version:_ 15.0.4538.1<br/>
* SQL Server Express LocalDB is available at C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe
## .NET Core
@@ -604,6 +657,7 @@ _Environment:_
_SDK:_
* 3.1.101 C:\Program Files\dotnet\sdk\3.1.101
* 3.1.100 C:\Program Files\dotnet\sdk\3.1.100
* 3.0.103 C:\Program Files\dotnet\sdk\3.0.103
* 3.0.102 C:\Program Files\dotnet\sdk\3.0.102
* 3.0.101 C:\Program Files\dotnet\sdk\3.0.101
@@ -628,11 +682,13 @@ _SDK:_
* 2.2.103 C:\Program Files\dotnet\sdk\2.2.103
* 2.2.102 C:\Program Files\dotnet\sdk\2.2.102
* 2.2.101 C:\Program Files\dotnet\sdk\2.2.101
* 2.2.100 C:\Program Files\dotnet\sdk\2.2.100
* 2.1.804 C:\Program Files\dotnet\sdk\2.1.804
* 2.1.803 C:\Program Files\dotnet\sdk\2.1.803
* 2.1.802 C:\Program Files\dotnet\sdk\2.1.802
* 2.1.801 C:\Program Files\dotnet\sdk\2.1.801
* 2.1.701 C:\Program Files\dotnet\sdk\2.1.701
* 2.1.700 C:\Program Files\dotnet\sdk\2.1.700
* 2.1.609 C:\Program Files\dotnet\sdk\2.1.609
* 2.1.608 C:\Program Files\dotnet\sdk\2.1.608
* 2.1.607 C:\Program Files\dotnet\sdk\2.1.607
@@ -640,6 +696,7 @@ _SDK:_
* 2.1.605 C:\Program Files\dotnet\sdk\2.1.605
* 2.1.604 C:\Program Files\dotnet\sdk\2.1.604
* 2.1.603 C:\Program Files\dotnet\sdk\2.1.603
* 2.1.602 C:\Program Files\dotnet\sdk\2.1.602
* 2.1.512 C:\Program Files\dotnet\sdk\2.1.512
* 2.1.511 C:\Program Files\dotnet\sdk\2.1.511
* 2.1.510 C:\Program Files\dotnet\sdk\2.1.510
@@ -663,6 +720,7 @@ _SDK:_
_Runtime:_
* 3.1.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.1
* 3.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.0
* 3.0.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.3
* 3.0.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.2
* 3.0.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.1
@@ -683,6 +741,7 @@ _Runtime:_
* 2.1.5 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.5
* 2.1.4 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.4
* 2.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.3
* 2.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.2
* 2.1.16 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.16
* 2.1.15 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.15
* 2.1.14 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.14
@@ -717,7 +776,7 @@ _Environment:_
* PATH: contains location of the MinGW 'bin' directory
## TypeScript
_Version:_ Version 3.8.3<br/>
## Miniconda
@@ -727,7 +786,7 @@ _Environment:_
* CONDA: contains location of the root of the Miniconda installation
## Azure CosmosDb Emulator
_Version:_ 2.9.2.0<br/>
_Location:_ C:\Program Files\Azure Cosmos DB Emulator\
@@ -742,6 +801,10 @@ _Version:_ <br/>
## jq
_Version:_ jq-1.6<br/>
## zstd
_Version:_ v1.4.0<br/>
## Inno Setup
@@ -780,3 +843,7 @@ _Environment:_
_Version:_ kind v0.7.0 go1.13.6 windows/amd64<br/>
_Environment:_
* PATH: contains location of kind.exe
## bazel

View File

@@ -19,6 +19,7 @@
"root_folder": "C:",
"image_folder": "C:\\image",
"commit_file": "C:\\image\\commit.txt",
"imagedata_file": "C:\\imagedata.json",
"metadata_file": "C:\\image\\metadata.txt",
"helper_script_folder": "C:\\Program Files\\WindowsPowerShell\\Modules\\",
"commit_id": "LATEST",
@@ -120,6 +121,16 @@
"setx ImageOS {{user `image_os` }} /m"
]
},
{
"type": "powershell",
"environment_vars": [
"IMAGE_VERSION={{user `image_version`}}",
"IMAGEDATA_FILE={{user `imagedata_file`}}"
],
"scripts":[
"{{ template_dir }}/scripts/Installers/Update-ImageData.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -172,6 +183,12 @@
"{{ template_dir }}/scripts/Installers/Windows2019/Install-Wix.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1"
]
},
{
"type": "powershell",
"valid_exit_codes": [
@@ -204,6 +221,12 @@
"{{ template_dir }}/scripts/Installers/Windows2019/Validate-Wix.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -252,6 +275,12 @@
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Packer.ps1"
]
},
{
"type": "file",
"source": "{{template_dir}}/toolcache-2019.json",
@@ -273,6 +302,12 @@
"{{ template_dir }}/scripts/Installers/Windows2019/Install-Python.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Perl.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -307,6 +342,12 @@
"{{ template_dir }}/scripts/Installers/Install-Rust.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Julia.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -346,7 +387,7 @@
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-SeleniumWebDrivers.ps1"
"{{ template_dir }}/scripts/Installers/Install-IEWebDriver.ps1"
]
},
{
@@ -482,13 +523,13 @@
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-InnoSetup.ps1"
"{{ template_dir }}/scripts/Installers/Install-Zstd.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Perl.ps1"
"{{ template_dir }}/scripts/Installers/Install-InnoSetup.ps1"
]
},
{
@@ -533,6 +574,12 @@
"{{ template_dir }}/scripts/Installers/Install-Kind.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Install-Bazel.ps1"
]
},
{
"type": "windows-restart",
"restart_timeout": "10m"
@@ -576,6 +623,12 @@
"{{ template_dir }}/scripts/Installers/Validate-Python.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Perl.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -620,6 +673,12 @@
"{{ template_dir }}/scripts/Installers/Validate-Rust.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Julia.ps1"
]
},
{
"type": "powershell",
"scripts":[
@@ -727,6 +786,12 @@
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-7zip.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Packer.ps1"
]
},
{
"type": "powershell",
@@ -743,13 +808,13 @@
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-InnoSetup.ps1"
"{{ template_dir }}/scripts/Installers/Validate-Zstd.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Perl.ps1"
"{{ template_dir }}/scripts/Installers/Validate-InnoSetup.ps1"
]
},
{
@@ -800,6 +865,12 @@
"{{ template_dir }}/scripts/Installers/Validate-Kind.ps1"
]
},
{
"type": "powershell",
"scripts":[
"{{ template_dir }}/scripts/Installers/Validate-Bazel.ps1"
]
},
{
"type": "file",
"source": "C:\\InstalledSoftware.md",

View File

@@ -1,6 +1,6 @@
# Windows Server 2019
The following software is installed on machines with the 20200212.1 update.
The following software is installed on machines with the 20200301.1 update.
Components marked with **\*** have been upgraded since the previous version of the image.
@@ -19,7 +19,7 @@ _Environment:_
## Docker-compose
_Version:_ 1.25.3<br/>
_Version:_ 1.25.4<br/>
_Environment:_
* PATH: contains location of docker-compose.exe
@@ -30,10 +30,10 @@ _Version:_ 6.2.4 <br/>
## Docker images
The following container images have been cached:
* mcr.microsoft.com/windows/servercore:ltsc2019 (Digest: sha256:7437a0cac8abeb7b540ef249e6c9b5da6e3e218579b187e8a5d4528919497eba)
* mcr.microsoft.com/windows/nanoserver:1809 (Digest: sha256:05c753fb084d83f9742727a301f19bcbb2912b9a58f3ca659ba4c9d3e9b9fec2)
* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 (Digest: sha256:fb04ac71d809a06bd695d7647cff47a1c5ceb2e2b11c1ed7dd32283158522e36)
The following container images have been cached:
* mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 (Digest: sha256:746e54a4398bff0ad516d02fdb9eec5cba1a3b5ba0c15a82c051fc3dc753fe85)
* mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 (Digest: sha256:708a9492c51140a07a0bd160c508dd6d17f3b061af0a3f53de607d671ee7176a)
* mcr.microsoft.com/windows/servercore:ltsc2019 (Digest: sha256:39ba615d7a739fcdd9fc95b97882672d5af7d0861dd16b51b238c822765d2b8d)
* mcr.microsoft.com/windows/nanoserver:1809 (Digest: sha256:4201fb07c1ece2ef0bad7b518fd487d030cd49de98b81b3ed8b98e71432df463)
* microsoft/aspnetcore-build:1.0-2.0 (Digest: sha256:9ecc7c5a8a7a11dca5f08c860165646cb30d084606360a3a72b9cbe447241c0c)
@@ -54,6 +54,9 @@ The following workloads and components are installed with Visual Studio 2019:
* Microsoft.Component.PythonTools.Web
* Microsoft.Component.VC.Runtime.UCRTSDK
* Microsoft.Net.ComponentGroup.4.6.2.DeveloperTools
* Microsoft.Net.ComponentGroup.4.7.1.DeveloperTools
* Microsoft.Net.Component.4.7.2.SDK
* Microsoft.Net.Component.4.7.2.TargetingPack
* Microsoft.Net.ComponentGroup.4.7.2.DeveloperTools
* Microsoft.Net.ComponentGroup.4.7.DeveloperTools
* Microsoft.VisualStudio.Component.AspNet45
@@ -131,7 +134,8 @@ _Path:_ C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools
_Path:_ C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools
## Windows Driver Kit
_WDK Version:_ 10.1.18362.1<br/>
_WDK Visual Studio Extension Version:_ 10.0.18346.0<br/>
## Azure Service Fabric
@@ -304,7 +308,7 @@ _Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-21
_Location:_ C:\Program Files (x86)\Android\android-sdk\platforms\android-19
## AzureRM PowerShell module
#### 2.1.0
@@ -312,23 +316,73 @@ This version is installed and is available via `Get-Module -ListAvailable`
This version is installed and is available via `Get-Module -ListAvailable`
#### 3.8.0
This version is saved but not installed
_Location:_ C:\Modules\azurerm_3.8.0\AzureRM\3.8.0\AzureRM.psd1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_3.8.0\AzureRM\3.8.0\AzureRM.psd1
#### 4.2.1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_4.2.1\AzureRM\4.2.1\AzureRM.psd1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_4.2.1\AzureRM\4.2.1\AzureRM.psd1
#### 5.1.1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_5.1.1\AzureRM\5.1.1\AzureRM.psd1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_5.1.1\AzureRM\5.1.1\AzureRM.psd1
#### 6.7.0
This version is saved but not installed
This version is saved but not installed
_Location:_ C:\Modules\azurerm_6.7.0\AzureRM\6.7.0\AzureRM.psd1
#### 6.13.1
This version is saved but not installed
_Location:_ C:\Modules\azurerm_6.13.1\AzureRM\6.13.1\AzureRM.psd1
## Azure PowerShell module
#### 2.1.0
This version is installed and is available via `Get-Module -ListAvailable`
#### 3.8.0
This version is saved but not installed
_Location:_ C:\Modules\azure_3.8.0\Azure\3.8.0\Azure.psd1
#### 4.2.1
This version is saved but not installed
_Location:_ C:\Modules\azure_4.2.1\Azure\4.2.1\Azure.psd1
#### 5.1.1
This version is saved but not installed
_Location:_ C:\Modules\azure_5.1.1\Azure\5.1.1\Azure.psd1
#### 5.3.0
This version is saved but not installed
_Location:_ C:\Modules\azure_5.3.0\Azure\5.3.0\Azure.psd1
## Az PowerShell module
#### 1.0.0
This version is saved but not installed
_Location:_ C:\Modules\az_1.0.0\Az\1.0.0\Az.psd1
#### 1.6.0
This version is saved but not installed
_Location:_ C:\Modules\az_1.6.0\Az\1.6.0\Az.psd1
#### 2.3.2
This version is saved but not installed
_Location:_ C:\Modules\az_2.3.2\Az\2.3.2\Az.psd1
#### 2.6.0
This version is saved but not installed
_Location:_ C:\Modules\az_2.6.0\Az\2.6.0\Az.psd1
#### 3.1.0
This version is saved but not installed
_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
## TLS12
@@ -337,7 +391,7 @@ _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.1.0
_Environment:_
* PATH: contains location of az.cmd
@@ -347,7 +401,7 @@ _Version:_ azure-devops 0.17.0
_Version:_ azure-devops 0.17.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/>
## PyPy
@@ -369,13 +423,13 @@ _Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64
_Location:_ C:/hostedtoolcache/windows/Python/2.7*/x64
## Git
_Version:_ 2.25.1<br/>
_Environment:_
* PATH: contains location of git.exe
## Git Large File Storage (LFS)
_Version:_ 2.10.0<br/>
_Environment:_
* PATH: contains location of git-lfs.exe
@@ -421,11 +475,11 @@ _Environment:_
## PHP (x64)
#### 7.4.3
_Environment:_
* PATH: contains the location of php.exe version 7.4.2
_Environment:_
* PATH: contains the location of php.exe version 7.4.3
* PHPROOT: root directory of the PHP 7.4.3 installation
## Ruby (x64)
@@ -437,7 +491,7 @@ _Environment:_
* Gem Version: 3.1.2
## Rust (64-bit)
#### 1.41.1
_Location:_ C:\Rust\.cargo\bin
_Environment:_
@@ -455,17 +509,17 @@ _Environment:_
## Google Chrome
_version:_
_version:_
80.0.3987.122
## Microsoft Edge
_version:_
_version:_
80.0.361.62
## Mozilla Firefox
_version:_
_version:_
73.0.1
## Selenium Web Drivers
@@ -481,7 +535,7 @@ _Environment:_
#### Gecko Driver
_version:_
_version:_
_Environment:_
@@ -489,7 +543,7 @@ _Environment:_
#### IE Driver
_version:_
_version:_
80.0.3987.106
_Environment:_
@@ -505,7 +559,7 @@ _Environment:_
## Node.js
_Version:_ 12.16.1<br/>
_Architecture:_ x64<br/>
_Environment:_
@@ -546,26 +600,27 @@ _Environment:_
* COBERTURA_HOME: location of cobertura-2.1.1.jar
## Maven
_Version:_ 3.6.3<br/>
_Environment:_
* PATH: contains location of mvn.bat
* M2_HOME: Maven installation root
## Gradle
_Version:_ 6.2.1<br/>
_Environment:_
* PATH: contains location of gradle
## Cmake
_Version:_ 3.16.4<br/>
_Environment:_
* PATH: contains location of cmake.exe
## SQL Server Data Tier Application Framework (x64)
_Version:_ 15.0.4538.1<br/>
* SQL Server Express LocalDB is available at C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe
## .NET Core
@@ -577,6 +632,7 @@ _Environment:_
_SDK:_
* 3.1.101 C:\Program Files\dotnet\sdk\3.1.101
* 3.1.100 C:\Program Files\dotnet\sdk\3.1.100
* 3.0.103 C:\Program Files\dotnet\sdk\3.0.103
* 3.0.102 C:\Program Files\dotnet\sdk\3.0.102
* 3.0.101 C:\Program Files\dotnet\sdk\3.0.101
@@ -601,11 +657,13 @@ _SDK:_
* 2.2.103 C:\Program Files\dotnet\sdk\2.2.103
* 2.2.102 C:\Program Files\dotnet\sdk\2.2.102
* 2.2.101 C:\Program Files\dotnet\sdk\2.2.101
* 2.2.100 C:\Program Files\dotnet\sdk\2.2.100
* 2.1.804 C:\Program Files\dotnet\sdk\2.1.804
* 2.1.803 C:\Program Files\dotnet\sdk\2.1.803
* 2.1.802 C:\Program Files\dotnet\sdk\2.1.802
* 2.1.801 C:\Program Files\dotnet\sdk\2.1.801
* 2.1.701 C:\Program Files\dotnet\sdk\2.1.701
* 2.1.700 C:\Program Files\dotnet\sdk\2.1.700
* 2.1.609 C:\Program Files\dotnet\sdk\2.1.609
* 2.1.608 C:\Program Files\dotnet\sdk\2.1.608
* 2.1.607 C:\Program Files\dotnet\sdk\2.1.607
@@ -613,6 +671,7 @@ _SDK:_
* 2.1.605 C:\Program Files\dotnet\sdk\2.1.605
* 2.1.604 C:\Program Files\dotnet\sdk\2.1.604
* 2.1.603 C:\Program Files\dotnet\sdk\2.1.603
* 2.1.602 C:\Program Files\dotnet\sdk\2.1.602
* 2.1.512 C:\Program Files\dotnet\sdk\2.1.512
* 2.1.511 C:\Program Files\dotnet\sdk\2.1.511
* 2.1.510 C:\Program Files\dotnet\sdk\2.1.510
@@ -634,6 +693,7 @@ _SDK:_
_Runtime:_
* 3.1.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.1
* 3.1.0 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.0
* 3.0.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.3
* 3.0.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.2
* 3.0.1 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.0.1
@@ -654,6 +714,7 @@ _Runtime:_
* 2.1.5 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.5
* 2.1.4 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.4
* 2.1.3 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.3
* 2.1.2 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.2
* 2.1.16 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.16
* 2.1.15 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.15
* 2.1.14 C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.14
@@ -685,7 +746,7 @@ _Environment:_
* PATH: contains location of the MinGW 'bin' directory
## TypeScript
_Version:_ Version 3.8.3<br/>
## Miniconda
@@ -695,7 +756,7 @@ _Environment:_
* CONDA: contains location of the root of the Miniconda installation
## Azure CosmosDb Emulator
_Version:_ 2.9.2.0<br/>
_Location:_ C:\Program Files\Azure Cosmos DB Emulator\
@@ -739,7 +800,7 @@ _Environment:_
* VCPKG_INSTALLATION_ROOT: root directory of the vcpkg installation
## VSWhere
_Version_: Visual Studio Locator version 2.8.4+ff0de50053 [query version 2.3.2200.14893] Copyright (C) Microsoft Corporation. All rights reserved. instanceId: 34bc4745 installDate: 3/1/2020 6:49:00 AM installationName: VisualStudio/16.4.5+29806.167 installationPath: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise installationVersion: 16.4.29806.167 productId: Microsoft.VisualStudio.Product.Enterprise productPath: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv.exe state: 4294967295 isComplete: 1 isLaunchable: 1 isPrerelease: 0 isRebootRequired: 0 displayName: Visual Studio Enterprise 2019 description: Scalable, end-to-end solution for teams of any size channelId: VisualStudio.16.Release channelUri: https://aka.ms/vs/16/release/channel enginePath: C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service releaseNotes: https://go.microsoft.com/fwlink/?LinkId=660893#16.4.5 thirdPartyNotices: https://go.microsoft.com/fwlink/?LinkId=660909 updateDate: 2020-03-01T06:49:00.926083Z catalog_buildBranch: d16.4 catalog_buildVersion: 16.4.29806.167 catalog_id: VisualStudio/16.4.5+29806.167 catalog_localBuild: build-lab catalog_manifestName: VisualStudio catalog_manifestType: installer catalog_productDisplayVersion: 16.4.5 catalog_productLine: Dev16 catalog_productLineVersion: 2019 catalog_productMilestone: RTW catalog_productMilestoneIsPreRelease: False catalog_productName: Visual Studio catalog_productPatchVersion: 5 catalog_productPreReleaseMilestoneSuffix: 1.0 catalog_productSemanticVersion: 16.4.5+29806.167 catalog_requiredEngineVersion: 2.4.1111.43337 properties_campaignId: properties_channelManifestId: VisualStudio.16.Release/16.4.5+29806.167 properties_nickname: properties_setupEngineFilePath: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installershell.exe<br/>
* PATH: contains location of vswhere.exe
@@ -753,3 +814,7 @@ _Environment:_
_Version:_ kind v0.7.0 go1.13.6 windows/amd64<br/>
_Environment:_
* PATH: contains location of kind.exe
## bazel

View File

@@ -3,195 +3,66 @@
## Desc: Install Azure PowerShell modules
################################################################################
Add-Type -AssemblyName System.IO.Compression.FileSystem
function Download-Zip
{
[CmdletBinding()]
Param(
[Parameter(
Mandatory = $true
)]
[string]
$BlobUri
)
Write-Host "Downloading the zip from blob: '$BlobUri'"
$fileName = "azureps_" + "$(Get-Random)" + ".zip"
$targetLocation = Join-Path $ENV:Temp -ChildPath $fileName
Write-Host "Download target location: '$targetLocation'"
$webClient = New-Object Net.WebClient
$null = $webClient.DownloadFileAsync($BlobUri, $targetLocation)
while ($webClient.IsBusy) { }
Write-Host "Download complete. Target Location: '$targetLocation'"
return $targetLocation
}
function Extract-Zip
{
[CmdletBinding()]
Param(
[Parameter(
Mandatory = $true
)]
[string]
$ZipFilePath,
[Parameter(
Mandatory = $true
)]
[string]
$TargetLocation
)
Write-Host "Expanding the Zip File: '$ZipFilePath'. Target: '$TargetLocation'"
$null = [System.IO.Compression.ZipFile]::ExtractToDirectory($ZipFilePath, $TargetLocation)
Write-Host "Extraction completed successfully."
}
Set-PSRepository -InstallationPolicy Trusted -Name PSGallery
# We try to detect the whether Azure PowerShell is installed using .msi file. If it is installed, we find it's version, then it needs to be uninstalled manually (because the uninstallation requires the PowerShell session to be closed)
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
$SdkVersion = ($installedApplications | Where-Object { $_.DisplayName -and $_.DisplayName.toLower().Contains("microsoft azure powershell") } | Select-Object -First 1).DisplayVersion
if($SdkVersion -eq $null)
{
Write-Host "No .msi Installation Present"
}
else
{
Write-Host "An Azure PowerShell Installation through installer has been detected. Please close this powershell session and manually uninstall the Azure PowerShell from the Add or Remove Programs in the Control Panel. Then, rerun this script from an Admin PowerShell"
throw "An Azure PowerShell Installation through installer has been detected. Please close this powershell session and manually uninstall the Azure PowerShell from the Add or Remove Programs in the Control Panel. Then, rerun this script from an Admin PowerShell"
}
# We will try to uninstall any installation of Azure PowerShell
$modules = Get-Module -Name Azure -ListAvailable
Write-Host "The Azure Modules initially present are:"
$modules | Select-Object Name,Version,Path | Format-Table
foreach($module in $modules)
{
# add logging for telling what module we are working on now
if(Test-Path -LiteralPath $module.Path)
{
try
{
Uninstall-Module -Name Azure -RequiredVersion $module.Version.tostring() -Force
}
catch
{
Write-Host "The Uninstallation of Azure Module version: $($module.Version.tostring()) failed with the error: $($_.Exception.Message) . Please Check if there isn't any other PowerShell session open."
throw $_.Exception.Message
}
}
}
$modules = Get-Module -Name AzureRM -ListAvailable
Write-Host "The AzureRM Modules initially present are:"
$modules | Select-Object Name,Version,Path | Format-Table
foreach($module in $modules)
{
# add logging for telling what module we are working on now
if(Test-Path -LiteralPath $module.Path)
{
try
{
Uninstall-Module -Name AzureRM -RequiredVersion $module.Version.tostring() -Force
}
catch
{
Write-Host "The Uninstallation of AzureRM Module version: $($module.Version.tostring()) failed with the error: $($_.Exception.Message) . Please Check if there isn't any other PowerShell session open."
throw $_.Exception.Message
}
}
}
#after this, the only installations available through a Get-Module cmdlet should be nothing
$modules = Get-Module -Name Azure -ListAvailable
foreach($module in $modules)
{
Write-Host "Module found: $($module.Name) Module Version: $($module.Version)"
if($module.Version.ToString() -ne " ")
{
Write-Host "Another installation of Azure module is detected with version $($module.Version.ToString()) at path: $($module.Path)"
throw "Azure module uninstallation unsuccessful"
}
}
$modules = Get-Module -Name AzureRM -ListAvailable
foreach($module in $modules)
{
write-host "Module found: $($module.Name) Module Version: $($module.Version)"
if($module.Version.ToString() -ne " ")
{
Write-Host "Another installation of AzureRM module is detected with version $($module.Version.ToString()) at path: $($module.Path)"
throw "AzureRM module uninstallation unsuccessful"
}
}
#### NOW The correct Modules need to be saved in C:\Modules
if($(Test-Path -LiteralPath "C:\Modules") -eq $true)
$installPSModulePath = 'C:\Modules'
if(-not (Test-Path -LiteralPath $installPSModulePath))
{
Write-Host "C:\Modules directory is already present. Beginning to clear it up completely"
Remove-Item -Path "C:\Modules" -Recurse -Force
Write-Host "Creating '$installPSModulePath' folder to store PowerShell Azure modules"
$null = New-Item -Path $installPSModulePath -ItemType Directory
}
mkdir "C:\Modules"
# Powershell Azure modules to install
$psAzureModulesToInstall = @{
"azurerm" = @(
"2.1.0"
"3.8.0"
"4.2.1"
"5.1.1"
"6.7.0"
"6.13.1"
)
$directoryListing = Get-ChildItem -Path "C:\Modules"
"azure" = @(
"2.1.0"
"3.8.0"
"4.2.1"
"5.1.1"
"5.3.0"
)
if($directoryListing.Length -gt 0)
"az" = @(
"1.0.0"
"1.6.0"
"2.3.2"
"2.6.0"
"3.1.0"
"3.5.0"
)
}
# Download Azure PowerShell modules
foreach($psmoduleName in $psAzureModulesToInstall.Keys)
{
Write-Host "C:\Modules was not deleted properly. It still has the following contents:"
$directoryListing
}
else {
Write-Host "The Directory is clean. There are no contents present in it"
}
# Download and unzip the stored AzurePSModules from the vstsagentools public blob
$extractLocation = "C:\Modules"
$azurePsUri = @(
"https://vstsagenttools.blob.core.windows.net/tools/azurepowershellmodules/AzurePSModules.M157.20190808.27979.zip",
"https://vstsagenttools.blob.core.windows.net/tools/azurepowershellmodules/AzureRmPSModules.M157.20190808.27379.zip",
"https://vstsagenttools.blob.core.windows.net/tools/azurepowershellmodules/AzPSModules.M163.20191211.17769.zip"
)
$azureRMModulePath = "C:\Modules\azurerm_2.1.0"
$azureModulePath = "C:\Modules\azure_2.1.0"
$finalPath = ""
$environmentPSModulePath = [Environment]::GetEnvironmentVariable("PSModulePath", "Machine")
$existingPaths = $environmentPSModulePath -split ';' -replace '\\$',''
if ($existingPaths -notcontains $azureRMModulePath) {
$finalPath = $azureRMModulePath
}
if ($existingPaths -notcontains $azureModulePath) {
if($finalPath -ne "") {
$finalPath = $finalPath + ";" + $azureModulePath
}
else {
$finalPath = $azureModulePath
Write-Host "Installing '$psmoduleName' to the '$installPSModulePath' path:"
$psmoduleVersions = $psAzureModulesToInstall[$psmoduleName]
foreach($psmoduleVersion in $psmoduleVersions)
{
$psmodulePath = Join-Path $installPSModulePath "${psmoduleName}_${psmoduleVersion}"
Write-Host " - $psmoduleVersion [$psmodulePath]"
try
{
Save-Module -Path $psmodulePath -Name $psmoduleName -RequiredVersion $psmoduleVersion -Force -ErrorAction Stop
}
catch
{
Write-Host "Error: $_"
exit 1
}
}
}
if($finalPath -ne "") {
[Environment]::SetEnvironmentVariable("PSModulePath", $finalPath + ";" + $env:PSModulePath, "Machine")
}
$env:PSModulePath = $env:PSModulePath.TrimStart(';')
foreach ($uri in $azurePsUri)
{
$targetFile = Download-Zip -BlobUri $uri
Extract-Zip -ZipFilePath $targetFile -TargetLocation $extractLocation
}
# Add AzureRM and Azure modules to the PSModulePath
$finalModulePath = '{0};{1};{2}' -f "${installPSModulePath}\azurerm_2.1.0", "${installPSModulePath}\azure_2.1.0", $env:PSModulePath
[Environment]::SetEnvironmentVariable("PSModulePath", $finalModulePath, "Machine")

View File

@@ -0,0 +1,8 @@
################################################################################
## File: Install-Bazel.ps1
## Desc: Install Bazel and Bazelisk (A user-friendly launcher for Bazel)
################################################################################
choco install bazel -y
npm install -g @bazel/bazelisk

View File

@@ -18,7 +18,7 @@ $GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"};
$regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update";
$regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome";
($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object {
($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object {
New-Item -Path $_ -Force;
}
@@ -39,4 +39,44 @@ $regGoogleParameters | ForEach-Object {
New-ItemProperty @Arguments;
}
# Reinstall Chrome Web Driver
Write-Host "Install Chrome WebDriver"
$DestinationPath = "$($env:SystemDrive)\";
$ChromeDriverPath = "${DestinationPath}SeleniumWebDrivers\ChromeDriver";
if (-not (Test-Path -Path $ChromeDriverPath)) {
New-Item -Path $ChromeDriverPath -ItemType "directory"
}
$RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
$ChromePath = (Get-ItemProperty "$RegistryPath\chrome.exe").'(default)';
[version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion;
Write-Host "Chrome version: [$ChromeVersion]";
$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]";
$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 ChromeWebDriver "$ChromeDriverPath" /M;
$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\';
$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path';
$PathValue += ";$ChromeDriverPath\";
Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue;

View File

@@ -66,7 +66,8 @@ function InstallAllValidSdks()
Invoke-WebRequest -Uri $dotnetChannel.'releases.json' -UseBasicParsing -OutFile "releases-$channelVersion.json"
$currentReleases = Get-Content -Path "releases-$channelVersion.json" | ConvertFrom-Json
# filtering out the preview/rc releases
$currentReleases = $currentReleases.'releases' | Where-Object { !$_.'release-version'.Contains('-') } | Sort-Object { [Version] $_.'release-version' }
# Remove version 3.1.102 from install list, .NET gave a heads-up that this might cause issues and they are working on a fix. https://github.com/dotnet/aspnetcore/issues/19133
$currentReleases = $currentReleases.'releases' | Where-Object { !$_.'release-version'.Contains('-') -and !$_.'release-version'.Contains('3.1.2') } | Sort-Object { [Version] $_.'release-version' }
ForEach ($release in $currentReleases)
{
if ($release.'sdks'.Count -gt 0)
@@ -78,8 +79,7 @@ function InstallAllValidSdks()
# Sort the sdks on version
$sdks = @($release.'sdk');
# Remove version 3.1.102 from install list, .NET gave a heads-up that this might cause issues and they are working on a fix.
$sdks += $release.'sdks' | Where-Object { !$_.'version'.Equals('3.1.102') -and !$_.'version'.Contains('-') -and !$_.'version'.Equals($release.'sdk'.'version') }
$sdks += $release.'sdks' | Where-Object { !$_.'version'.Contains('-') -and !$_.'version'.Equals($release.'sdk'.'version') }
$sdks = $sdks | Sort-Object { [Version] $_.'version' }
ForEach ($sdk in $sdks)

View File

@@ -4,3 +4,38 @@
################################################################################
choco install microsoft-edge -y
# Install Microsoft Edge Web Driver
Write-Host "Install Edge WebDriver"
$DestinationPath = "$($env:SystemDrive)\";
$EdgeDriverPath = "${DestinationPath}SeleniumWebDrivers\EdgeDriver"
if (-not (Test-Path -Path $EdgeDriverPath)) {
New-Item -Path $EdgeDriverPath -ItemType "directory"
}
$RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
$EdgePath = (Get-ItemProperty "$RegistryPath\msedge.exe").'(default)'
[version]$EdgeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($EdgePath).ProductVersion
$EdgeDriverVersionUrl = "https://msedgedriver.azureedge.net/LATEST_RELEASE_$($EdgeVersion.Major)"
$EdgeDriverVersionFile = "$EdgeDriverPath\versioninfo.txt"
Invoke-WebRequest -Uri $EdgeDriverVersionUrl -OutFile $EdgeDriverVersionFile
Write-Host "Microsoft Edge driver download started"
$EdgeDriverLatestVersion = Get-Content -Path $EdgeDriverVersionFile
$EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/edgedriver_win64.zip"
$DestFile = "$EdgeDriverPath\edgedriver_win64.zip"
Invoke-WebRequest -Uri $EdgeDriverDownloadUrl -OutFile $DestFile
Write-Host "Microsoft Edge driver installation started"
Expand-Archive -Path $DestFile -DestinationPath $EdgeDriverPath -Force
Remove-Item -Path $DestFile -Force
Write-Host "Setting the environment variables"
setx EdgeWebDriver "$EdgeDriverPath" /M;
$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\';
$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path';
$PathValue += ";$EdgeDriverPath\";
Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue;

View File

@@ -26,18 +26,27 @@ $firefoxPreferencesFolder = Join-Path $firefoxDirectoryPath "defaults\pref"
New-Item -path $firefoxPreferencesFolder -Name 'local-settings.js' -Value 'pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");' -ItemType file -force
# Install Firefox gecko Web Driver
Write-Host "Install Firefox WebDriver"
$DestinationPath = "$($env:SystemDrive)\";
$SeleniumWebDriverPath = Join-Path $DestinationPath "SeleniumWebDrivers"
$geckodriverJson = Invoke-RestMethod "https://api.github.com/repos/mozilla/geckodriver/releases/latest"
$geckodriverWindowsAsset = $geckodriverJson.assets | Where-Object { $_.name -Match "win64" } | Select-Object -First 1
Write-Host "Geckodriver version: $($geckodriverJson.tag_name)"
$geckodriverVersion = $geckodriverJson.tag_name
Write-Host "Geckodriver version: $geckodriverVersion"
$DriversZipFile = $geckodriverWindowsAsset.name
Write-Host "Selenium drivers download and install..."
$FirefoxDriverPath = Join-Path $env:SystemDrive "SeleniumWebDrivers\GeckoDriver"
$FirefoxDriverPath = Join-Path $SeleniumWebDriverPath "GeckoDriver"
if (-not (Test-Path -Path $FirefoxDriverPath)) {
New-Item -Path $FirefoxDriverPath -ItemType "directory"
}
$geckodriverVersion.Substring(1) | Out-File -FilePath "$FirefoxDriverPath\versioninfo.txt" -Force;
# Install Firefox Web Driver
Write-Host "FireFox driver download...."
@@ -63,4 +72,4 @@ Write-Host "Setting the environment variables"
Add-MachinePathItem -PathItem $FireFoxDriverPath
setx GeckoWebDriver "$FirefoxDriverPath" /M;
exit 0
exit 0

View File

@@ -12,7 +12,6 @@ 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\usr\bin"
Add-MachinePathItem "C:\Program Files\Git\bin"
exit 0

View File

@@ -0,0 +1,32 @@
################################################################################
## 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 $DriversZipFile";
exit 1;
}
$TempSeleniumDir = Join-Path $Env:TEMP "SeleniumWebDrivers"
Expand-Archive -Path $DriversZipFile -DestinationPath $Env:TEMP -Force;
Remove-Item $DriversZipFile;
$SeleniumWebDriverPath = Join-Path $DestinationPath "SeleniumWebDrivers"
$IEDriverPathTemp = Join-Path $TempSeleniumDir 'IEDriver'
if (-not (Test-Path -Path $SeleniumWebDriverPath)) {
New-Item -Path $SeleniumWebDriverPath -ItemType "directory"
}
Move-Item -Path "$IEDriverPathTemp" -Destination $SeleniumWebDriverPath
Write-Host "Setting the environment variables"
setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M;

View File

@@ -0,0 +1,6 @@
################################################################################
## File: Install-Packer.ps1
## Desc: Install Packer
################################################################################
choco install packer -y

View File

@@ -1,96 +0,0 @@
################################################################################
## 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 $DriversZipFile";
exit 1;
}
$TempSeleniumDir = Join-Path $Env:TEMP "SeleniumWebDrivers"
Expand-Archive -Path $DriversZipFile -DestinationPath $Env:TEMP -Force;
Remove-Item $DriversZipFile;
$SeleniumWebDriverPath = Join-Path $DestinationPath "SeleniumWebDrivers"
$IEDriverPathTemp = Join-Path $TempSeleniumDir 'IEDriver'
if (-not (Test-Path -Path $SeleniumWebDriverPath)) {
New-Item -Path $SeleniumWebDriverPath -ItemType "directory"
}
Move-Item -Path "$IEDriverPathTemp" -Destination $SeleniumWebDriverPath
# Reinstall Chrome Web Driver
$ChromeDriverPath = "${DestinationPath}SeleniumWebDrivers\ChromeDriver";
if (-not (Test-Path -Path $ChromeDriverPath)) {
New-Item -Path $ChromeDriverPath -ItemType "directory"
}
$RegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
$ChromePath = (Get-ItemProperty "$RegistryPath\chrome.exe").'(default)';
[version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion;
Write-Host "Chrome version: [$ChromeVersion]";
$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]";
$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;
# Install Microsoft Edge Web Driver
Write-Host "Microsoft Edge driver download...."
$EdgeDriverPath = "${DestinationPath}SeleniumWebDrivers\EdgeDriver"
if (-not (Test-Path -Path $EdgeDriverPath)) {
New-Item -Path $EdgeDriverPath -ItemType "directory"
}
$EdgePath = (Get-ItemProperty "$RegistryPath\msedge.exe").'(default)'
[version]$EdgeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($EdgePath).ProductVersion
$EdgeDriverVersionUrl = "https://msedgedriver.azureedge.net/LATEST_RELEASE_$($EdgeVersion.Major)"
$EdgeDriverVersionFile = "$EdgeDriverPath\versioninfo.txt"
Invoke-WebRequest -Uri $EdgeDriverVersionUrl -OutFile $EdgeDriverVersionFile
$EdgeDriverLatestVersion = Get-Content -Path $EdgeDriverVersionFile
$EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/edgedriver_win64.zip"
$DestFile = "$EdgeDriverPath\edgedriver_win64.zip"
Invoke-WebRequest -Uri $EdgeDriverDownloadUrl -OutFile $DestFile
Write-Host "Microsoft Edge driver install...."
Expand-Archive -Path $DestFile -DestinationPath $EdgeDriverPath -Force
Remove-Item -Path $DestFile -Force
Write-Host "Setting the environment variables"
setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M;
setx ChromeWebDriver "$ChromeDriverPath" /M;
setx EdgeWebDriver "$EdgeDriverPath" /M;
$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\';
$PathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path';
$PathValue += ";$ChromeDriverPath\";
$PathValue += ";$EdgeDriverPath\";
Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $PathValue;
exit 0;

View File

@@ -68,6 +68,7 @@ Push-Location -Path $sdk.FullName
"platforms;android-22" `
"platforms;android-21" `
"platforms;android-19" `
"build-tools;29.0.3" `
"build-tools;29.0.2" `
"build-tools;29.0.0" `
"build-tools;28.0.3" `

View File

@@ -0,0 +1,35 @@
$os = Get-CimInstance -ClassName Win32_OperatingSystem
$caption = $os.Caption
$osName = $caption.Substring(0, $caption.LastIndexOf(" "))
$osEdition = $caption.Substring($caption.LastIndexOf(" ")+1)
$osVersion = $os.Version
$imageVersion = $env:IMAGE_VERSION
$imageDataFile = $env:IMAGEDATA_FILE
$githubUrl="https://github.com/actions/virtual-environments/blob"
if ($caption -match "2019")
{
$imageLabel = "windows-2019"
$softwareUrl = "${githubUrl}/win19/${imageVersion}/images/win/Windows2019-Readme.md"
}
if ($caption -match "2016")
{
$imageLabel = "windows-2016"
$softwareUrl = "${githubUrl}/win16/${imageVersion}/images/win/Windows2016-Readme.md"
}
$json = @"
[
{
"group": "Operating System",
"detail": "${osName}\n${osVersion}\n${osEdition}"
},
{
"group": "Virtual Environment",
"detail": "Environment: ${imageLabel}\nVersion: ${imageVersion}\nIncluded Software: ${softwareUrl}"
}
]
"@
$json | Out-File -FilePath $imageDataFile

View File

@@ -5,67 +5,92 @@
Import-Module -Name ImageHelpers -Force
$DefaultModule = Get-Module -Name AzureRM -ListAvailable | Select-Object -First 1
$env:PSModulePath = $env:PSModulePath + ";C:\Modules"
$azureModules = Get-Module -Name Azure -ListAvailable | Select-Object Name,Version,Path | Format-Table | Out-String
Write-Host "The Azure Modules finally present are:"
$azureModules
if( ($azureModules -match "2.1.0") -and ($azureModules -match "3.8.0") -and ($azureModules -match "4.2.1") -and ($azureModules -match "5.1.1"))
{
Write-Host "Required Azure modules are present"
}
else {
Write-Host "One or more required Azure modules are not present"
throw "One or more required Azure modules are not present."
}
$azureRMModules = Get-Module -Name AzureRM -ListAvailable | Select-Object Name,Version,Path | Format-Table | Out-String
Write-Host "The AzureRM Modules finally present are:"
$azureRMModules
if( ($azureRMModules -match "2.1.0") -and ($azureRMModules -match "3.8.0") -and ($azureRMModules -match "4.2.1") -and ($azureRMModules -match "5.1.1"))
{
Write-Host "Required AzureRM modules are present"
}
else {
Write-Host "One or more required AzureRM modules are not present"
throw "One or more required AzureRM modules are not present."
}
$azureModules = Get-Module -Name AzureRM -ListAvailable
# Adding description of the software to Markdown
$SoftwareName = "Azure/AzureRM Powershell modules"
$Description = @"
#### $($DefaultModule.Version)
This version is installed and is available via ``Get-Module -ListAvailable``
"@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
foreach( $module in $azureModules)
function Add-ModuleDescription
{
if($module.Version -ne $DefaultModule.Version)
param($DefaultModule, [String]$ModuleName)
# Adding description of the software to Markdown
$softwareName = "$moduleName PowerShell module"
if ($defaultModule)
{
$description = "#### $($defaultModule.Version)`n`nThis version is installed and is available via ``Get-Module -ListAvailable``"
}
else
{
$Description = ""
}
$CurrentModule = @"
#### $($module.Version)
Add-SoftwareDetailsToMarkdown -SoftwareName $softwareName -DescriptionMarkdown $description
if($moduleName -eq 'Az')
{
$prop = @{n="Version";e={[Version]$_.Directory.Name}},@{n="Path";e={$_.FullName}}
$azureModules = Get-ChildItem C:\Modules\az_*\Az\*\Az.psd1 | Select-Object $prop
}
else
{
$azureModules = Get-Module -Name $moduleName -ListAvailable | Sort-Object Version -Unique
}
This version is saved but not installed
_Location:_ $($module.Path)
foreach($module in $azureModules)
{
if($module.Version -ne $defaultModule.Version)
{
"@
Add-ContentToMarkdown -Content $CurrentModule
$currentModule = "#### $($module.Version)`n`nThis version is saved but not installed`n_Location:_ $($module.Path)"
Add-ContentToMarkdown -Content $currentModule
}
}
}
function Validate-AzureModule
{
param([String]$ModuleName, [String[]]$ModuleVersions)
foreach($moduleVersion in $moduleVersions)
{
$modulePath = "${installPSModulePath}\${moduleName}_${moduleVersion}"
# Import each module in PowerShell session
$job = Start-Job -ScriptBlock {
param($modulePath, $moduleName)
$env:PsModulePath = "$modulePath;$env:PsModulePath"
Import-Module -Name $moduleName
Get-Module -Name $moduleName
} -ArgumentList $modulePath, $moduleName
$isError = $job | Wait-Job | Foreach-Object ChildJobs | Where-Object {$_.Error}
if($isError)
{
Write-Host "Required '$moduleName' module '$moduleVersion' version is not present"
exit 1
}
$job | Receive-Job | Select-Object Name,Version,Path
Remove-Job $job
}
}
# Modules path
$installPSModulePath = 'C:\Modules'
# Validate Azure modules and versions
$azurermVersions = "2.1.0", "3.8.0", "4.2.1", "5.1.1", "6.7.0", "6.13.1"
Validate-AzureModule -ModuleName AzureRM -ModuleVersions $azurermVersions
$azureVersions = "2.1.0", "3.8.0", "4.2.1", "5.1.1", "5.3.0"
Validate-AzureModule -ModuleName Azure -ModuleVersions $azureVersions
$azVersions = "1.0.0", "1.6.0", "2.3.2", "2.6.0", "3.1.0", "3.5.0"
Validate-AzureModule -ModuleName Az -ModuleVersions $azVersions
# Get default modules version
$defaultAzureRMModule = Get-Module -Name AzureRM -ListAvailable
$defaultAzureModule = Get-Module -Name Azure -ListAvailable
# Add modules to the PSModulePath
$env:PSModulePath = $env:PSModulePath + ";C:\Modules"
# Adding description of the software to Markdown
Add-ModuleDescription -DefaultModule $defaultAzureRMModule -ModuleName AzureRM
Add-ModuleDescription -DefaultModule $defaultAzureModule -ModuleName Azure
Add-ModuleDescription -ModuleName Az

View File

@@ -0,0 +1,44 @@
################################################################################
## File: Validate-Bazel.ps1
## Desc: Validate Bazel and Bazelisk (A user-friendly launcher for Bazel)
################################################################################
if (Get-Command -Name 'bazel')
{
Write-Host "bazel on path"
}
else
{
Write-Host 'bazel is not on path'
exit 1
}
if (Get-Command -Name 'bazelisk')
{
Write-Host "bazelisk on path"
}
else
{
Write-Host 'bazelisk is not on path'
exit 1
}
# Adding description of Bazel to Markdown
$SoftwareName = "bazel"
$Description = @"
_Version:_ $(bazel --version)<br/>
"@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
# Adding description of Bazelisk to Markdown
$bazelisk_version = ((bazelisk version | Select-String "Bazelisk version:") -Split(" v"))[2]
$SoftwareName = "bazelisk"
$Description = @"
_Version:_ $bazelisk_version<br/>
"@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description

View File

@@ -15,7 +15,7 @@ else
# Adding description of the software to Markdown
$SoftwareName = "Mercurial"
$(hg --version).Split([System.Environment]::NewLine)[0] -match "\d+\.\d+\.\d+"
$(hg --version).Split([System.Environment]::NewLine)[0] -match "\d+\.\d+"
$MercurialVersion = $matches[0]
$Description = @"

View File

@@ -0,0 +1,24 @@
################################################################################
## File: Validate-Packer.ps1
## Desc: Validate Packer
################################################################################
if (Get-Command -Name 'packer')
{
Write-Host "Packer is on path"
}
else
{
Write-Host 'Packer is not on path'
exit 1
}
# Adding description of the software to Markdown
$SoftwareName = "Packer"
$PackerVersion = packer --version
$Description = @"
_Version:_ $PackerVersion<br/>
"@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description

View File

@@ -36,9 +36,9 @@ if (
(Get-Item "$EdgeDriverPath\msedgedriver.exe").VersionInfo
$versionFileName = "versioninfo.txt";
$chromedriverversion = Get-Content -Path "$IEDriverPath\$versionFileName"
$chromedriverversion = Get-Content -Path "$ChromeDriverPath\$versionFileName"
$geckodriverversion = Get-Content -Path "$GeckoDriverPath\$versionFileName"
$iedriverversion = Get-Content -Path "$ChromeDriverPath\$versionFileName"
$iedriverversion = Get-Content -Path "$IEDriverPath\$versionFileName"
$edgedriverversion = Get-Content -Path "$EdgeDriverPath\$versionFileName"
# Adding description of the software to Markdown

View File

@@ -15,7 +15,7 @@ else
# Adding description of the software to Markdown
$SoftwareName = "VSWhere"
$VswhereVersion = $(vswhere)
$VswhereVersion = (Get-Command -Name vswhere).FileVersionInfo.ProductVersion
$Description = @"
_Version_: $VswhereVersion<br/>

View File

@@ -15,7 +15,7 @@ else
# Adding description of the software to Markdown
$SoftwareName = "zstd"
$zstdVersion = $(zstd --version).Split(' ')[6].Split(',')[0]
$zstdVersion = $(zstd --version).Split(' ')[6].Split(',')[0].Substring(1)
$Description = @"
_Version:_ $zstdVersion<br/>

View File

@@ -5,8 +5,8 @@
Import-Module -Name ImageHelpers -Force
#SSDT for Visual Studio 2017 (15.8.2)
$InstallerURI = 'https://download.microsoft.com/download/D/F/8/DF8B51B9-8E9F-47F3-A27B-33EEDADD8966/SSDT-Setup-ENU.exe'
#SSDT for Visual Studio 2017 (15.9.3)
$InstallerURI = 'https://download.microsoft.com/download/5/2/D/52DEF429-5B17-470C-82D9-654116080B15/SSDT-Setup-ENU.exe'
$InstallerName = 'SSDT-Setup-ENU.exe'
$logFilePath = "$env:TEMP\ssdtlog.txt"
$ArgumentList = ('/install', 'INSTALLALL', '/passive', '/norestart', "/log `"$logFilePath`"")

View File

@@ -0,0 +1,44 @@
###################################################################################
## File: Install-AnalysisExtenstion.ps1
## Desc: Install the Microsoft Analysis Services Projects Visual Studio extension
###################################################################################
$extensionUrl = "https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ProBITools/vsextensions/MicrosoftAnalysisServicesModelingProjects/2.9.5/vspackage"
$extensionDownloadPath = Join-Path $Env:TEMP "Microsoft.DataTools.AnalysisServices.vsix"
Write-Host "Downloading Microsoft.DataTools.AnalysisServices.vsix extension"
(New-Object System.Net.WebClient).DownloadFile($extensionUrl, $extensionDownloadPath)
Write-Host "Installing Microsoft.DataTools.AnalysisServices.vsix extension"
try
{
$process = Start-Process `
-FilePath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VSIXInstaller.exe" `
-ArgumentList ("/quiet", "$extensionDownloadPath") `
-Wait `
-PassThru
}
catch
{
Write-Host "There is an error during Microsoft.DataTools.AnalysisServices.vsix installation"
$_
exit 1
}
$exitCode = $process.ExitCode
if ($exitCode -eq 0 -or $exitCode -eq 1001) # 1001 means the extension is already installed
{
Write-Host "Microsoft.DataTools.AnalysisServices.vsix installed successfully"
}
else
{
Write-Host "Unsuccessful exit code returned by the installation process: $exitCode."
exit 1
}
#Cleanup installation files
Remove-Item -Force -Confirm:$false $extensionDownloadPath
exit $exitCode

View File

@@ -112,6 +112,15 @@ $WorkLoads = '--allWorkloads --includeRecommended ' + `
'--add Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest ' + `
'--add Microsoft.VisualStudio.Component.VC.v141 ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.x86.x64 ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.ARM64.Spectre ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.ATL.ARM.Spectre ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.ATL.ARM64.Spectre ' + `
'--add Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre ' + `
'--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.16299 ' + `
'--add Microsoft.VisualStudio.Component.Windows10SDK.17134 ' + `
'--add Microsoft.VisualStudio.Component.Windows10SDK.17763 ' + `

View File

@@ -0,0 +1,18 @@
################################################################################
## File: Validate-AnalysisExtenstion.ps1
## Desc: Validate Microsoft Analysis Services Projects Visual Studio extension
################################################################################
Import-Module -Name ImageHelpers -Force
#AnalysisPackage doesn't have any proper name in the state.packages.json file, only id is available
$AnalysisPackageVersion = Get-VS19ExtensionVersion -packageName "04a86fc2-dbd5-4222-848e-911638e487fe"
# Adding description of the software to Markdown
$SoftwareName = "Microsoft Analysis Services Projects Visual Studio Extension"
$Description = @"
_Version:_ $AnalysisPackageVersion<br/>
"@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description