diff --git a/.github/workflows/issue-triager.yml b/.github/workflows/issue-triager.yml
index c7f4b9f88..c948a620a 100644
--- a/.github/workflows/issue-triager.yml
+++ b/.github/workflows/issue-triager.yml
@@ -32,7 +32,7 @@ jobs:
const isAnnouncement = issueLabels.data && issueLabels.data
.map(label => label.name)
- .includes('announcement');
+ .includes('Announcement');
if (!isAnnouncement) {
github.issues.addLabels({
diff --git a/images.CI/macos/azure-pipelines/image-generation.yml b/images.CI/macos/azure-pipelines/image-generation.yml
index b70e42158..37b17b8a0 100644
--- a/images.CI/macos/azure-pipelines/image-generation.yml
+++ b/images.CI/macos/azure-pipelines/image-generation.yml
@@ -42,6 +42,15 @@ jobs:
SourceFolder: 'images/macos/provision/log/'
RemoveSourceFolder: true
+ - task: PowerShell@2
+ displayName: 'Select datastore'
+ inputs:
+ targetType: 'filePath'
+ filePath: ./images.CI/macos/select-datastore.ps1
+ arguments: -VIServer "$(vcenter-server-v2)" `
+ -VIUserName "$(vcenter-username-v2)" `
+ -VIPassword "$(vcenter-password-v2)"
+
- pwsh: |
$SensitiveData = @(
'IP address:',
@@ -54,7 +63,7 @@ jobs:
-var="vcenter_password=$(vcenter-password-v2)" `
-var="vcenter_datacenter=$(vcenter-datacenter-v2)" `
-var="cluster_or_esxi_host=$(esxi-cluster-v2)" `
- -var="esxi_datastore=${{ parameters.target_datastore }}" `
+ -var="esxi_datastore=$(buildDatastore)" `
-var="output_folder=$(output-folder)" `
-var="vm_username=$(vm-username)" `
-var="vm_password=$(vm-password)" `
@@ -106,6 +115,18 @@ jobs:
displayName: Publish test results
condition: always()
+ - task: PowerShell@2
+ displayName: 'Move vm to cold storage'
+ condition: succeededOrFailed()
+ inputs:
+ targetType: 'filePath'
+ filePath: ./images.CI/macos/move-vm.ps1
+ arguments: -VMName "${{ variables.VirtualMachineName }}" `
+ -TargetDataStore "${{ parameters.target_datastore }}" `
+ -VIServer "$(vcenter-server-v2)" `
+ -VIUserName "$(vcenter-username-v2)" `
+ -VIPassword "$(vcenter-password-v2)"
+
- task: PowerShell@2
displayName: 'Destroy VM (if build canceled only)'
condition: eq(variables['Agent.JobStatus'], 'Canceled')
diff --git a/images.CI/macos/destroy-vm.ps1 b/images.CI/macos/destroy-vm.ps1
index 0b8083703..f6ed1b1a8 100644
--- a/images.CI/macos/destroy-vm.ps1
+++ b/images.CI/macos/destroy-vm.ps1
@@ -1,3 +1,21 @@
+<#
+.SYNOPSIS
+
+This script deletes vm from vCenter
+
+.PARAMETER VMName
+VM name to delete (Example "macOS-10.15_20201012.4")
+
+.PARAMETER VIServer
+vCenter address (Example "10.0.1.16")
+
+.PARAMETER VIUserName
+vCenter username (Example "Administrator")
+
+.PARAMETER VIPassword
+vCenter password (Example "12345678")
+#>
+
[CmdletBinding()]
param(
[Parameter(Mandatory)]
@@ -17,25 +35,13 @@ param(
[string]$VIPassword
)
-$ProgressPreference = "SilentlyContinue"
-$WarningPreference = "SilentlyContinue"
+# Import helpers module
+Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
-# connection to a vCenter Server system
-try
-{
- $null = Set-PowerCLIConfiguration -Scope Session -InvalidCertificateAction Ignore -ParticipateInCEIP $false -Confirm:$false -WebOperationTimeoutSeconds 600
- $securePassword = ConvertTo-SecureString -String $VIPassword -AsPlainText -Force
- $cred = New-Object System.Management.Automation.PSCredential($VIUserName, $securePassword)
- $null = Connect-VIServer -Server $VIServer -Credential $cred -ErrorAction Stop
- Write-Host "Connection to the vSphere server has been established"
-}
-catch
-{
- Write-Host "##vso[task.LogIssue type=error;]Failed to connect to the vSphere server"
- exit 1
-}
+# Connection to a vCenter Server system
+Connect-VCServer
-# check vm clone status
+# Check vm clone status
$chainId = (Get-VIEvent -Entity $VMName).ChainId
if ($chainId)
{
@@ -45,7 +51,7 @@ if ($chainId)
try
{
Stop-Task -Task $task -Confirm:$false -ErrorAction Stop
- Write-Host "The vm '$VMName' clone task has been cancelled"
+ Write-Host "The vm '$VMName' clone task has been canceled"
}
catch
{
@@ -54,7 +60,7 @@ if ($chainId)
}
}
-# remove a vm
+# Remove a vm
$vm = Get-VM -Name $VMName -ErrorAction SilentlyContinue
if ($vm)
diff --git a/images.CI/macos/helpers.psm1 b/images.CI/macos/helpers.psm1
new file mode 100644
index 000000000..a5be3fee1
--- /dev/null
+++ b/images.CI/macos/helpers.psm1
@@ -0,0 +1,26 @@
+<#
+.SYNOPSIS
+
+Helper functions to use in images.CI scripts
+#>
+
+Function Connect-VCServer
+{
+ try
+ {
+ # Preference
+ $global:ProgressPreference = 'SilentlyContinue'
+ $global:WarningPreference = 'SilentlyContinue'
+ # Ignore SSL
+ $null = Set-PowerCLIConfiguration -Scope Session -InvalidCertificateAction Ignore -ParticipateInCEIP $false -Confirm:$false -WebOperationTimeoutSeconds 600
+ $securePassword = ConvertTo-SecureString -String $VIPassword -AsPlainText -Force
+ $cred = New-Object System.Management.Automation.PSCredential($VIUserName, $securePassword)
+ $null = Connect-VIServer -Server $VIServer -Credential $cred -ErrorAction Stop
+ Write-Host "Connection to the vSphere server has been established"
+ }
+ catch
+ {
+ Write-Host "##vso[task.LogIssue type=error;]Failed to connect to the vSphere server"
+ exit 1
+ }
+}
\ No newline at end of file
diff --git a/images.CI/macos/move-vm.ps1 b/images.CI/macos/move-vm.ps1
new file mode 100644
index 000000000..17e6faea3
--- /dev/null
+++ b/images.CI/macos/move-vm.ps1
@@ -0,0 +1,59 @@
+<#
+.SYNOPSIS
+
+This script migrates given VM to another datastore
+
+.PARAMETER VMName
+VM name to migrate (Example "macOS-10.15_20201012.4")
+
+.PARAMETER TargetDataStore
+Target datastore (Example "ds-image")
+
+.PARAMETER VIServer
+vCenter address (Example "10.0.1.16")
+
+.PARAMETER VIUserName
+vCenter username (Example "Administrator")
+
+.PARAMETER VIPassword
+vCenter password (Example "12345678")
+#>
+
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VMName,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$TargetDataStore,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIServer,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIUserName,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIPassword
+)
+
+# Import helpers module
+Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
+
+# Connection to a vCenter Server system
+Connect-VCServer
+
+try
+{
+ Get-VM $VMName | Move-VM -Datastore $TargetDataStore -ErrorAction Stop
+ Write-Host "VM has been moved successfully to target datastore '$TargetDataStore'"
+}
+catch
+{
+ Write-Host "##vso[task.LogIssue type=error;]Failed to move VM '$VMName' to target datastore '$TargetDataStore'"
+}
\ No newline at end of file
diff --git a/images.CI/macos/select-datastore.ps1 b/images.CI/macos/select-datastore.ps1
new file mode 100644
index 000000000..d6477700c
--- /dev/null
+++ b/images.CI/macos/select-datastore.ps1
@@ -0,0 +1,64 @@
+<#
+.SYNOPSIS
+
+This script selects local datastore based on the following rules:
+
+- Name starts with ds-local-Datastore
+- Datastore FreespaceGB > 400 Gb
+- VM count on the datastore < 2
+
+.PARAMETER VIServer
+vCenter address (Example "10.0.1.16")
+
+.PARAMETER VIUserName
+vCenter username (Example "Administrator")
+
+.PARAMETER VIPassword
+vCenter password (Example "12345678")
+#>
+
+
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIServer,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIUserName,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIPassword
+)
+
+# Import helpers module
+Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
+
+# Connection to a vCenter Server system
+Connect-VCServer
+
+# Get a target datastore for current deployment
+# 1. Name starts with ds-local-Datastore
+# 2. FreespaceGB > 400 Gb
+# 3. VM count on a datastore < 2
+$templateDatastore = "ds-local-Datastore-*"
+$thresholdInGb = 400
+$vmCount = 2
+$allDatastores = Get-Datastore -Name $templateDatastore | Where-Object { $_.State -eq "Available" }
+$buildDatastore = $allDatastores | Where-Object { $_.FreeSpaceGB -ge $thresholdInGb } | Where-Object {
+ $vmOnDatastore = @((Get-ChildItem -Path $_.DatastoreBrowserPath).Name -notmatch "^\.").Count
+ $vmOnDatastore -lt $vmCount
+ } | Select-Object -ExpandProperty Name -First 1
+
+if ($buildDatastore)
+{
+ Write-Host "Datastore selected successfully"
+ Write-Host "##vso[task.setvariable variable=buildDatastore;issecret=true]$buildDatastore"
+}
+else
+{
+ Write-Host "##vso[task.LogIssue type=error;]No datastores found for the condition"
+ exit 1
+}
\ No newline at end of file
diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md
index 5e3c8ef26..e5cbce80f 100644
--- a/images/linux/Ubuntu1604-README.md
+++ b/images/linux/Ubuntu1604-README.md
@@ -1,10 +1,10 @@
| Announcements |
|-|
-| [Default Python will be switched to 3.8 on Ubuntu 20.04 on October, 6](https://github.com/actions/virtual-environments/issues/1591) |
+| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) |
| [Clang/LLVM 10 will be set as a default one and Clang/LLVM 6 will be deprecated for Ubuntu 20.04 on September, 23](https://github.com/actions/virtual-environments/issues/1536) |
***
# Ubuntu 16.04.7 LTS
-- Image Version: 20201004.1
+- Image Version: 20201012.1
## Installed Software
### Language and Runtime
@@ -13,7 +13,7 @@
- Clang 6.0.0, 8.0.0, 9.0.1
- Erlang 11.1
- Mono 6.12.0.90
-- Node 12.18.4
+- Node 12.19.0
- Python 2.7.12
- Python3 3.5.2
- PowerShell 7.0.3
@@ -22,29 +22,29 @@
- Julia 1.5.2
### Package Management
-- Homebrew 2.5.2
- Gem 3.1.4
+- Helm 3.3.4
+- Homebrew 2.5.5
- Miniconda 4.8.3
-- Helm
- Npm 6.14.8
-- Yarn
- Pip 8.1.1
- Pip3 8.1.1
- Vcpkg 2020.06.15
+- Yarn 1.22.5
### Project Management
- Ant 1.9.6
- Gradle 6.6.1
- Maven 3.6.3
-- Sbt 1.3.13
+- Sbt 1.4.0
### Tools
- 7-Zip 9.20
-- Ansible 2.9.13
+- Ansible 2.9.14
- AzCopy10 10.6.0 (available by `azcopy10` alias)
- AzCopy7 7.3.0 (available by `azcopy` alias)
-- Bazel 3.5.1
-- Bazelisk 1.6.1
+- Bazel 3.6.0
+- Bazelisk 1.7.1
- CMake 3.17.0
- CodeQL Action Bundle 2.2.5
- curl 7.47.0
@@ -54,46 +54,47 @@
- Git 2.28.0
- Git LFS 2.12.0
- Git-ftp 1.0.2
-- Google Cloud SDK 312.0.0
+- Google Cloud SDK 313.0.1
- Haveged 1.9.1
-- Heroku 7.44.0
+- Heroku 7.45.0
- HHVM (HipHop VM) 4.56.1
- jq 1.5
- Kind 0.9.0
- Kubectl 1.19.2
-- Kustomize 3.8.4
+- Kustomize 3.8.5
- Leiningen 2.9.4
- m4 1.4.17
- Mercurial 4.4.1
- Minikube 1.13.1
- Newman 5.2.0
-- nvm 0.35.3
+- nvm 0.36.0
- Packer 1.6.4
- PhantomJS 2.1.1
- Pulumi 2.11.2
-- R 4.0.2
+- R 4.0.3
- Sphinx Open Source Search Server 2.2.9
- SVN 1.9.3
- Swig 3.0.8
- Terraform 0.13.4
- unzip 6.00
- wget 1.17.1
+- yamllint 1.2.1
- zip 3.0
- zstd 1.3.1
### CLI Tools
-- Alibaba Cloud CLI 3.0.59
-- AWS CLI 1.18.152
+- Alibaba Cloud CLI 3.0.60
+- AWS CLI 1.18.157
- AWS CLI Session manager plugin 1.1.61.0
-- AWS SAM CLI 1.4.0
+- AWS SAM CLI 1.6.2
- Azure CLI (azure-cli) 2.12.1
- Azure CLI (azure-devops) 0.18.0
-- GitHub CLI
+- GitHub CLI 1.1.0
- Hub CLI 2.14.2
-- Netlify CLI 2.64.1
+- Netlify CLI 2.65.5
- oc CLI 4.5.0
- ORAS CLI 0.8.1
-- Vercel CLI 20.1.1
+- Vercel CLI 20.1.2
### Java
| Version | Vendor | Environment Variable |
@@ -106,7 +107,7 @@
### PHP
| Tool | Version |
| -------- | ----------------------------------------- |
-| PHP | 5.6.40 7.0.33 7.1.33 7.2.33 7.3.22 7.4.10 |
+| PHP | 5.6.40 7.0.33 7.1.33 7.2.34 7.3.23 7.4.11 |
| Composer | 1.10.13 |
| PHPUnit | 7.5.20 |
@@ -116,22 +117,22 @@
- Stack 2.3.3
### Rust Tools
-- Rust 1.46.0
+- Rust 1.47.0
- Rustup 1.22.1
-- Rustdoc 1.46.0
-- Cargo 1.46.0
+- Rustdoc 1.47.0
+- Cargo 1.47.0
#### Packages
- Bindgen 0.55.1
- Cargo audit 0.12.1
- Cargo outdated 0.9.11
- Cargo clippy 0.0.212
-- Cbindgen 0.14.6
-- Rustfmt 1.4.18
+- Cbindgen 0.15.0
+- Rustfmt 1.4.20
### Browsers and Drivers
-- Google Chrome 85.0.4183.121
-- ChromeDriver 85.0.4183.87
+- Google Chrome 86.0.4240.75
+- ChromeDriver 86.0.4240.22
- Mozilla Firefox 81.0
- Geckodriver 0.27.0
@@ -167,6 +168,7 @@
- 3.6.12
- 3.7.9
- 3.8.6
+- 3.9.0
#### PyPy
- 2.7.13 [PyPy 7.3.2]
@@ -175,8 +177,8 @@
#### Node.js
- 8.17.0
- 10.22.1
-- 12.18.4
-- 14.13.0
+- 12.19.0
+- 14.13.1
#### Go
- 1.11.13
@@ -190,19 +192,19 @@
- 1.72.0
### Android
-| Package Name | Version |
-| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Android SDK Platform-Tools | 30.0.4 |
-| Android SDK Tools | 26.1.1 |
-| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-19 (rev 4)
android-17 (rev 3)
android-15 (rev 5)
android-10 (rev 2) |
-| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3
22.0.1
21.1.2
20.0.0
19.1.0
17.0.0 |
-| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 |
-| NDK | 21.3.6528147 |
-| Android Support Repository | 47.0.0 |
-| Google Play services | 49 |
-| Google Repository | 58 |
-| SDK Patch Applier v4 | 1 |
-| CMake | 3.10.2
3.6.4111459 |
+| Package Name | Version |
+| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-20 (rev 2)
android-19 (rev 4)
android-18 (rev 3)
android-17 (rev 3)
android-16 (rev 5)
android-15 (rev 5)
android-14 (rev 4)
android-13 (rev 1)
android-12 (rev 3)
android-11 (rev 2)
android-10 (rev 2) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3 23.0.0
22.0.1 22.0.0
21.1.2 21.0.0 21.0.1 21.0.2 21.1.0 21.1.1
20.0.0
19.1.0 19.0.0 19.0.1 19.0.2 19.0.3
18.0.1 18.1.0 18.1.1
17.0.0 |
+| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 |
+| NDK | 21.3.6528147 |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.10.2
3.6.4111459 |
### Cached Docker images
- alpine:3.7
diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md
index da48be720..86137c039 100644
--- a/images/linux/Ubuntu1804-README.md
+++ b/images/linux/Ubuntu1804-README.md
@@ -1,10 +1,10 @@
| Announcements |
|-|
-| [Default Python will be switched to 3.8 on Ubuntu 20.04 on October, 6](https://github.com/actions/virtual-environments/issues/1591) |
+| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) |
| [Clang/LLVM 10 will be set as a default one and Clang/LLVM 6 will be deprecated for Ubuntu 20.04 on September, 23](https://github.com/actions/virtual-environments/issues/1536) |
***
# Ubuntu 18.04.5 LTS
-- Image Version: 20201004.1
+- Image Version: 20201012.1
## Installed Software
### Language and Runtime
@@ -13,7 +13,7 @@
- Clang 6.0.0, 8.0.0, 9.0.0
- Erlang 11.1
- Mono 6.12.0.90
-- Node 12.18.4
+- Node 12.19.0
- Python 2.7.17
- Python3 3.6.9
- PowerShell 7.0.3
@@ -22,30 +22,31 @@
- Julia 1.5.2
### Package Management
-- Homebrew 2.5.2
- Gem 3.1.4
+- Helm 3.3.4
+- Homebrew 2.5.5
- Miniconda 4.8.3
-- Helm
- Npm 6.14.8
-- Yarn
- Pip 9.0.1
- Pip3 9.0.1
+- Pipx 0.15.5.1
- Vcpkg 2020.06.15
+- Yarn 1.22.5
### Project Management
- Ant 1.10.5
- Gradle 6.6.1
- Maven 3.6.3
-- Sbt 1.3.13
+- Sbt 1.4.0
### Tools
- 7-Zip 16.02
-- Ansible 2.9.13
+- Ansible 2.9.14
- AzCopy10 10.6.0 (available by `azcopy10` alias)
- AzCopy7 7.3.0 (available by `azcopy` alias)
-- Bazel 3.5.1
-- Bazelisk 1.6.1
-- Buildah
+- Bazel 3.6.0
+- Bazelisk 1.7.1
+- Buildah 1.16.4
- CMake 3.17.0
- CodeQL Action Bundle 2.2.5
- curl 7.58.0
@@ -55,25 +56,25 @@
- Git 2.28.0
- Git LFS 2.12.0
- Git-ftp 1.3.1
-- Google Cloud SDK 312.0.0
+- Google Cloud SDK 313.0.1
- Haveged 1.9.1
-- Heroku 7.44.0
-- HHVM (HipHop VM) 4.77.0
+- Heroku 7.45.0
+- HHVM (HipHop VM) 4.78.0
- jq 1.5
- Kind 0.9.0
- Kubectl 1.19.2
-- Kustomize 3.8.4
+- Kustomize 3.8.5
- Leiningen 2.9.4
- m4 1.4.18
- Mercurial 4.5.3
- Minikube 1.13.1
- Newman 5.2.0
-- nvm 0.35.3
+- nvm 0.36.0
- Packer 1.6.4
- PhantomJS 2.1.1
-- Podman
+- Podman 2.1.1
- Pulumi 2.11.2
-- R 4.0.2
+- R 4.0.3
- Skopeo 1.2.0
- Sphinx Open Source Search Server 2.2.11
- SVN 1.9.7
@@ -81,22 +82,23 @@
- Terraform 0.13.4
- unzip 6.00
- wget 1.19.4
+- yamllint 1.25.0
- zip 3.0
- zstd 1.3.3
### CLI Tools
-- Alibaba Cloud CLI 3.0.59
-- AWS CLI 1.18.152
+- Alibaba Cloud CLI 3.0.60
+- AWS CLI 1.18.157
- AWS CLI Session manager plugin 1.1.61.0
-- AWS SAM CLI 1.4.0
+- AWS SAM CLI 1.6.2
- Azure CLI (azure-cli) 2.12.1
- Azure CLI (azure-devops) 0.18.0
-- GitHub CLI
+- GitHub CLI 1.1.0
- Hub CLI 2.14.2
-- Netlify CLI 2.64.1
+- Netlify CLI 2.65.5
- oc CLI 4.5.0
- ORAS CLI 0.8.1
-- Vercel CLI 20.1.1
+- Vercel CLI 20.1.2
### Java
| Version | Vendor | Environment Variable |
@@ -109,7 +111,7 @@
### PHP
| Tool | Version |
| -------- | --------------------------- |
-| PHP | 7.1.33 7.2.33 7.3.22 7.4.10 |
+| PHP | 7.1.33 7.2.34 7.3.23 7.4.11 |
| Composer | 1.10.13 |
| PHPUnit | 7.5.20 |
@@ -119,22 +121,22 @@
- Stack 2.3.3
### Rust Tools
-- Rust 1.46.0
+- Rust 1.47.0
- Rustup 1.22.1
-- Rustdoc 1.46.0
-- Cargo 1.46.0
+- Rustdoc 1.47.0
+- Cargo 1.47.0
#### Packages
- Bindgen 0.55.1
- Cargo audit 0.12.1
- Cargo outdated 0.9.11
- Cargo clippy 0.0.212
-- Cbindgen 0.14.6
-- Rustfmt 1.4.18
+- Cbindgen 0.15.0
+- Rustfmt 1.4.20
### Browsers and Drivers
-- Google Chrome 85.0.4183.121
-- ChromeDriver 85.0.4183.87
+- Google Chrome 86.0.4240.75
+- ChromeDriver 86.0.4240.22
- Mozilla Firefox 81.0
- Geckodriver 0.27.0
@@ -170,6 +172,7 @@
- 3.6.12
- 3.7.9
- 3.8.6
+- 3.9.0
#### PyPy
- 2.7.13 [PyPy 7.3.2]
@@ -178,8 +181,8 @@
#### Node.js
- 8.17.0
- 10.22.1
-- 12.18.4
-- 14.13.0
+- 12.19.0
+- 14.13.1
#### Go
- 1.11.13
@@ -193,19 +196,19 @@
- 1.72.0
### Android
-| Package Name | Version |
-| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Android SDK Platform-Tools | 30.0.4 |
-| Android SDK Tools | 26.1.1 |
-| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-19 (rev 4)
android-17 (rev 3) |
-| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3
22.0.1
21.1.2
20.0.0
19.1.0
17.0.0 |
-| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 |
-| NDK | 21.3.6528147 |
-| Android Support Repository | 47.0.0 |
-| Google Play services | 49 |
-| Google Repository | 58 |
-| SDK Patch Applier v4 | 1 |
-| CMake | 3.10.2
3.6.4111459 |
+| Package Name | Version |
+| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-20 (rev 2)
android-19 (rev 4)
android-18 (rev 3)
android-17 (rev 3) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3 23.0.0
22.0.1 22.0.0
21.1.2 21.0.0 21.0.1 21.0.2 21.1.0 21.1.1
20.0.0
19.1.0 19.0.0 19.0.1 19.0.2 19.0.3
18.0.1 18.1.0 18.1.1
17.0.0 |
+| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 |
+| NDK | 21.3.6528147 |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.10.2
3.6.4111459 |
### Cached Docker images
- alpine:3.7
@@ -225,6 +228,6 @@
- ubuntu:14.04
### Installed apt packages
-- bison, brotli, bzip2, curl, dbus, dnsutils, dpkg, fakeroot, file, flex, ftp, gnupg2, iproute2, iputils-ping, jq, lib32z1, libc++-dev, libc++abi-dev, libcurl3, libgbm-dev, libgconf-2-4, libgtk-3-0, libsecret-1-dev, libsqlite3-dev, libunwind8, libxkbfile-dev, libxss1, locales, m4, netcat, openssh-client, parallel, patchelf, pkg-config, rpm, rsync, shellcheck, sqlite3, ssh, sudo, telnet, texinfo, time, tk, tzdata, unzip, upx, wget, xorriso, xvfb, xz-utils, yamllint, zip, zstd, zsync
+- bison, brotli, bzip2, curl, dbus, dnsutils, dpkg, fakeroot, file, flex, ftp, gnupg2, iproute2, iputils-ping, jq, lib32z1, libc++-dev, libc++abi-dev, libcurl3, libgbm-dev, libgconf-2-4, libgtk-3-0, libsecret-1-dev, libsqlite3-dev, libunwind8, libxkbfile-dev, libxss1, locales, m4, netcat, openssh-client, parallel, patchelf, pkg-config, rpm, rsync, shellcheck, sqlite3, ssh, sudo, telnet, texinfo, time, tk, tzdata, unzip, upx, wget, xorriso, xvfb, xz-utils, zip, zstd, zsync
diff --git a/images/linux/Ubuntu2004-README.md b/images/linux/Ubuntu2004-README.md
index 4a59e7ca9..02045aceb 100644
--- a/images/linux/Ubuntu2004-README.md
+++ b/images/linux/Ubuntu2004-README.md
@@ -1,50 +1,51 @@
| Announcements |
|-|
-| [Default Python will be switched to 3.8 on Ubuntu 20.04 on October, 6](https://github.com/actions/virtual-environments/issues/1591) |
+| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) |
| [Clang/LLVM 10 will be set as a default one and Clang/LLVM 6 will be deprecated for Ubuntu 20.04 on September, 23](https://github.com/actions/virtual-environments/issues/1536) |
***
# Ubuntu 20.04.1 LTS
-- Image Version: 20201004.1
+- Image Version: 20201012.1
## Installed Software
### Language and Runtime
-- GNU C++ 7.5.0, 8.4.0, 9.3.0, 10.0.1
+- GNU C++ 7.5.0, 8.4.0, 9.3.0, 10.2.0
- GNU Fortran 8.4.0, 9.3.0
- Clang 8.0.1, 9.0.1, 10.0.0
- Erlang 11.1
- Mono 6.12.0.90
-- Node 12.18.4
-- Python 3.8.2
-- Python3 3.8.2
+- Node 12.19.0
+- Python 3.8.5
+- Python3 3.8.5
- PowerShell 7.0.3
- Ruby 2.7.0p0
- Swift 5.3
- Julia 1.5.2
### Package Management
-- Homebrew 2.5.2
- Gem 3.1.2
-- Miniconda 4.8.3
- Helm 3.3.4
+- Homebrew 2.5.5
+- Miniconda 4.8.3
- Npm 6.14.8
-- Yarn 1.22.5
- Pip 20.0.2
- Pip3 20.0.2
+- Pipx 0.15.5.1
- Vcpkg 2020.06.15
+- Yarn 1.22.5
### Project Management
- Ant 1.10.7
- Gradle 6.6.1
- Maven 3.6.3
-- Sbt 1.3.13
+- Sbt 1.4.0
### Tools
- 7-Zip 16.02
- Ansible 2.9.6
- AzCopy10 10.6.0 (available by `azcopy10` alias)
- AzCopy7 7.3.0 (available by `azcopy` alias)
-- Bazel 3.5.1
-- Bazelisk 1.6.1
+- Bazel 3.6.0
+- Bazelisk 1.7.1
- Buildah 1.16.4
- CMake 3.17.0
- CodeQL Action Bundle 2.2.5
@@ -55,25 +56,25 @@
- Git 2.28.0
- Git LFS 2.12.0
- Git-ftp 1.6.0
-- Google Cloud SDK 312.0.0
+- Google Cloud SDK 313.0.1
- Haveged 1.9.1
-- Heroku 7.44.0
-- HHVM (HipHop VM) 4.77.0
+- Heroku 7.45.0
+- HHVM (HipHop VM) 4.78.0
- jq 1.6
- Kind 0.9.0
- Kubectl 1.19.2
-- Kustomize 3.8.4
+- Kustomize 3.8.5
- Leiningen 2.9.4
- m4 1.4.18
- Mercurial 5.3.1
- Minikube 1.13.1
- Newman 5.2.0
-- nvm 0.35.3
+- nvm 0.36.0
- Packer 1.6.4
- PhantomJS 2.1.1
- Podman 2.1.1
- Pulumi 2.11.2
-- R 4.0.2
+- R 4.0.3
- Skopeo 1.2.0
- Sphinx Open Source Search Server 2.2.11
- SVN 1.13.0
@@ -81,22 +82,23 @@
- Terraform 0.13.4
- unzip 6.00
- wget 1.20.3
+- yamllint 1.25.0
- zip 3.0
- zstd 1.4.4
### CLI Tools
-- Alibaba Cloud CLI 3.0.59
-- AWS CLI 2.0.54
+- Alibaba Cloud CLI 3.0.60
+- AWS CLI 2.0.56
- AWS CLI Session manager plugin 1.1.61.0
-- AWS SAM CLI 1.4.0
+- AWS SAM CLI 1.6.2
- Azure CLI (azure-cli) 2.12.1
- Azure CLI (azure-devops) 0.18.0
-- GitHub CLI 1.0.0
+- GitHub CLI 1.1.0
- Hub CLI 2.14.2
-- Netlify CLI 2.64.1
+- Netlify CLI 2.65.5
- oc CLI 4.5.0
- ORAS CLI 0.8.1
-- Vercel CLI 20.1.1
+- Vercel CLI 20.1.2
### Java
| Version | Vendor | Environment Variable |
@@ -107,7 +109,7 @@
### PHP
| Tool | Version |
| -------- | ------- |
-| PHP | 7.4.10 |
+| PHP | 7.4.11 |
| Composer | 1.10.13 |
| PHPUnit | 7.5.20 |
@@ -117,22 +119,22 @@
- Stack 2.3.3
### Rust Tools
-- Rust 1.46.0
+- Rust 1.47.0
- Rustup 1.22.1
-- Rustdoc 1.46.0
-- Cargo 1.46.0
+- Rustdoc 1.47.0
+- Cargo 1.47.0
#### Packages
- Bindgen 0.55.1
- Cargo audit 0.12.1
- Cargo outdated 0.9.11
- Cargo clippy 0.0.212
-- Cbindgen 0.14.6
-- Rustfmt 1.4.18
+- Cbindgen 0.15.0
+- Rustfmt 1.4.20
### Browsers and Drivers
-- Google Chrome 85.0.4183.121
-- ChromeDriver 85.0.4183.87
+- Google Chrome 86.0.4240.75
+- ChromeDriver 86.0.4240.22
- Mozilla Firefox 81.0
- Geckodriver 0.27.0
@@ -167,6 +169,7 @@
- 3.6.12
- 3.7.9
- 3.8.6
+- 3.9.0
#### PyPy
- 2.7.13 [PyPy 7.3.2]
@@ -175,26 +178,26 @@
#### Node.js
- 8.17.0
- 10.22.1
-- 12.18.4
-- 14.13.0
+- 12.19.0
+- 14.13.1
#### Go
- 1.14.9
- 1.15.2
### Android
-| Package Name | Version |
-| -------------------------- | ---------------------------------------------------------------------------------------------------------- |
-| Android SDK Platform-Tools | 30.0.4 |
-| Android SDK Tools | 26.1.1 |
-| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) |
-| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 |
-| NDK | 21.3.6528147 |
-| Android Support Repository | 47.0.0 |
-| Google Play services | 49 |
-| Google Repository | 58 |
-| SDK Patch Applier v4 | 1 |
-| CMake | 3.10.2 |
+| Package Name | Version |
+| -------------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 |
+| NDK | 21.3.6528147 |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.10.2 |
### Cached Docker images
- alpine:3.7
@@ -214,6 +217,6 @@
- ubuntu:14.04
### Installed apt packages
-- bison, brotli, bzip2, curl, dbus, dnsutils, dpkg, fakeroot, file, flex, ftp, gnupg2, iproute2, iputils-ping, jq, lib32z1, libc++-dev, libc++abi-dev, libcurl4, libgbm-dev, libgconf-2-4, libgtk-3-0, libsecret-1-dev, libsqlite3-dev, libunwind8, libxkbfile-dev, libxss1, locales, m4, netcat, openssh-client, parallel, patchelf, pkg-config, python-is-python3, rpm, rsync, shellcheck, sqlite3, ssh, sudo, telnet, texinfo, time, tk, tzdata, unzip, upx, wget, xorriso, xvfb, xz-utils, yamllint, zip, zstd, zsync
+- bison, brotli, bzip2, curl, dbus, dnsutils, dpkg, fakeroot, file, flex, ftp, gnupg2, iproute2, iputils-ping, jq, lib32z1, libc++-dev, libc++abi-dev, libcurl4, libgbm-dev, libgconf-2-4, libgtk-3-0, libsecret-1-dev, libsqlite3-dev, libunwind8, libxkbfile-dev, libxss1, locales, m4, netcat, openssh-client, parallel, patchelf, pkg-config, python-is-python3, rpm, rsync, shellcheck, sqlite3, ssh, sudo, telnet, texinfo, time, tk, tzdata, unzip, upx, wget, xorriso, xvfb, xz-utils, zip, zstd, zsync
diff --git a/images/linux/post-generation/homebrew-permissions.sh b/images/linux/post-generation/homebrew-permissions.sh
new file mode 100644
index 000000000..1dbd043e2
--- /dev/null
+++ b/images/linux/post-generation/homebrew-permissions.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Fix permissions for Homebrew
+# https://github.com/actions/virtual-environments/issues/1568
+brew_folder="/home/linuxbrew/"
+if [ -d "$brew_folder" ]; then
+ brew_folder_owner=$(ls -ld $brew_folder | awk '{print $3}')
+ if [ "$USER" != "$brew_folder_owner" ]; then
+ chown "$USER":docker -R $brew_folder
+ fi
+fi
diff --git a/images/linux/post-generation/rust-permissions.sh b/images/linux/post-generation/rust-permissions.sh
new file mode 100644
index 000000000..6673686bd
--- /dev/null
+++ b/images/linux/post-generation/rust-permissions.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Fix permissions for the Rust folder
+# https://github.com/actions/virtual-environments/issues/572
+rust_folder="/usr/share/rust"
+if [ -d "$rust_folder" ]; then
+ rust_folder_owner=$(ls -ld $rust_folder | awk '{print $3}')
+ if [ "$USER" != "$rust_folder_owner" ]; then
+ chown "$USER":docker -R $rust_folder
+ fi
+fi
diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1
index f45496638..14d4a18e6 100644
--- a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1
+++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1
@@ -249,5 +249,7 @@ function Get-AptPackages {
function Get-PipxVersion {
$result = (Get-CommandResult "pipx --version").Output
- return "Pipx $result"
+ $result -match "(?\d+\.\d+\.\d+\.?\d*)" | Out-Null
+ $pipxVersion = $Matches.Version
+ return "Pipx $pipxVersion"
}
\ No newline at end of file
diff --git a/images/linux/scripts/base/limits.sh b/images/linux/scripts/base/limits.sh
index e3c43e336..24041bc99 100644
--- a/images/linux/scripts/base/limits.sh
+++ b/images/linux/scripts/base/limits.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
echo '* soft nofile 65536' >> /etc/security/limits.conf
echo '* hard nofile 65536' >> /etc/security/limits.conf
diff --git a/images/linux/scripts/base/reboot.sh b/images/linux/scripts/base/reboot.sh
index 23969fe80..d1bdf7eeb 100644
--- a/images/linux/scripts/base/reboot.sh
+++ b/images/linux/scripts/base/reboot.sh
@@ -1,8 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: reboot.sh
## Desc: Reboot VM
################################################################################
echo "Reboot VM"
-sudo reboot
\ No newline at end of file
+sudo reboot
diff --git a/images/linux/scripts/installers/7-zip.sh b/images/linux/scripts/installers/7-zip.sh
index 4b753de53..0fa61bb29 100644
--- a/images/linux/scripts/installers/7-zip.sh
+++ b/images/linux/scripts/installers/7-zip.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: 7-zip.sh
## Desc: Installs 7-zip
################################################################################
-
# Install 7-Zip
apt-get update -y
apt-get install -y p7zip p7zip-full p7zip-rar
diff --git a/images/linux/scripts/installers/aliyun-cli.sh b/images/linux/scripts/installers/aliyun-cli.sh
index af45bd07c..56a29e1eb 100644
--- a/images/linux/scripts/installers/aliyun-cli.sh
+++ b/images/linux/scripts/installers/aliyun-cli.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: aliyun-cli.sh
## Desc: Installs Alibaba Cloud CLI
################################################################################
-
# Install Alibaba Cloud CLI
URL=$(curl -s https://api.github.com/repos/aliyun/aliyun-cli/releases/latest | jq -r '.assets[].browser_download_url | select(contains("aliyun-cli-linux"))')
wget -P /tmp $URL
diff --git a/images/linux/scripts/installers/android.sh b/images/linux/scripts/installers/android.sh
index 90d2013ab..2cfbdd8dd 100644
--- a/images/linux/scripts/installers/android.sh
+++ b/images/linux/scripts/installers/android.sh
@@ -1,11 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: android.sh
## Desc: Installs Android SDK
################################################################################
-set -e
-
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
source $HELPER_SCRIPTS/install.sh
@@ -69,7 +67,7 @@ additional=$(jq -r '.android.additional_tools[]' $toolset)
components=( "${extras[@]}" "${addons[@]}" "${additional[@]}" )
availablePlatforms=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android-" | cut -d"|" -f 1))
-allBuildTools=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
+allBuildTools=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
filter_components_by_version $minimumPlatformVersion "${availablePlatforms[@]}"
diff --git a/images/linux/scripts/installers/ansible.sh b/images/linux/scripts/installers/ansible.sh
index 9f41af7cb..0f123bbd9 100644
--- a/images/linux/scripts/installers/ansible.sh
+++ b/images/linux/scripts/installers/ansible.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: ansible.sh
## Desc: Installs Ansible
diff --git a/images/linux/scripts/installers/aws-sam-cli.sh b/images/linux/scripts/installers/aws-sam-cli.sh
index ac56144b3..f75c3649b 100644
--- a/images/linux/scripts/installers/aws-sam-cli.sh
+++ b/images/linux/scripts/installers/aws-sam-cli.sh
@@ -1,11 +1,10 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: aws-sam-cli.sh
## Desc: Installs AWS SAM CLI
## Requires Python >=3.6, must be run as non-root user after toolset installation
################################################################################
-
# Download latest aws sam cli sources
TarballUrl=$(curl -s https://api.github.com/repos/aws/aws-sam-cli/releases/latest | jq -r '.tarball_url')
TarballPath="/tmp/aws-sam-cli.tar.gz"
diff --git a/images/linux/scripts/installers/aws.sh b/images/linux/scripts/installers/aws.sh
index b2ab32fa1..0a34f1749 100644
--- a/images/linux/scripts/installers/aws.sh
+++ b/images/linux/scripts/installers/aws.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: aws.sh
## Desc: Installs the AWS CLI
diff --git a/images/linux/scripts/installers/azcopy.sh b/images/linux/scripts/installers/azcopy.sh
index 9b57d2680..2d46bef95 100644
--- a/images/linux/scripts/installers/azcopy.sh
+++ b/images/linux/scripts/installers/azcopy.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: azcopy.sh
## Desc: Installs AzCopy
################################################################################
-
# Install AzCopy7
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
tar -xf azcopy.tar.gz
diff --git a/images/linux/scripts/installers/azpowershell.sh b/images/linux/scripts/installers/azpowershell.sh
index a4a159865..a8488af7f 100644
--- a/images/linux/scripts/installers/azpowershell.sh
+++ b/images/linux/scripts/installers/azpowershell.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: azpowershell.sh
## Desc: Installed Azure PowerShell
diff --git a/images/linux/scripts/installers/azure-cli.sh b/images/linux/scripts/installers/azure-cli.sh
index a33ee2f64..f51e870b1 100644
--- a/images/linux/scripts/installers/azure-cli.sh
+++ b/images/linux/scripts/installers/azure-cli.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: azure-cli.sh
## Desc: Installed Azure CLI (az)
################################################################################
-
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
diff --git a/images/linux/scripts/installers/azure-devops-cli.sh b/images/linux/scripts/installers/azure-devops-cli.sh
index d39761be6..2bedb19f7 100644
--- a/images/linux/scripts/installers/azure-devops-cli.sh
+++ b/images/linux/scripts/installers/azure-devops-cli.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: azure-devops-cli.sh
## Desc: Installed Azure DevOps CLI (az devops)
################################################################################
-
# AZURE_EXTENSION_DIR shell variable defines where modules are installed
# https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-overview
export AZURE_EXTENSION_DIR=/opt/az/azcliextensions
diff --git a/images/linux/scripts/installers/basic.sh b/images/linux/scripts/installers/basic.sh
index b8f3e10f6..df9aae08f 100644
--- a/images/linux/scripts/installers/basic.sh
+++ b/images/linux/scripts/installers/basic.sh
@@ -1,11 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: basic.sh
## Desc: Installs basic command line utilities and dev packages
################################################################################
-set -e
-
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
common_packages=$(jq -r ".apt.common_packages[]" $toolset)
cmd_packages=$(jq -r ".apt.cmd_packages[]" $toolset)
diff --git a/images/linux/scripts/installers/bazel.sh b/images/linux/scripts/installers/bazel.sh
index 2735df10c..8a7c6bcb0 100644
--- a/images/linux/scripts/installers/bazel.sh
+++ b/images/linux/scripts/installers/bazel.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: bazel.sh
## Desc: Installs Bazel and Bazelisk (A user-friendly launcher for Bazel)
################################################################################
-
# 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
diff --git a/images/linux/scripts/installers/build-essential.sh b/images/linux/scripts/installers/build-essential.sh
index af711a1e9..e2c25290d 100644
--- a/images/linux/scripts/installers/build-essential.sh
+++ b/images/linux/scripts/installers/build-essential.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: build-essential.sh
## Desc: Installs build-essential package
################################################################################
-
source $HELPER_SCRIPTS/install.sh
PACKAGE=build-essential
diff --git a/images/linux/scripts/installers/clang.sh b/images/linux/scripts/installers/clang.sh
index 4a3424fd4..e7261f0a1 100644
--- a/images/linux/scripts/installers/clang.sh
+++ b/images/linux/scripts/installers/clang.sh
@@ -1,9 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: clang.sh
## Desc: Installs Clang compiler
################################################################################
-set -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
diff --git a/images/linux/scripts/installers/cleanup.sh b/images/linux/scripts/installers/cleanup.sh
index 387a22402..32a083f9f 100644
--- a/images/linux/scripts/installers/cleanup.sh
+++ b/images/linux/scripts/installers/cleanup.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
# before cleanup
before=$(df / -Pm | awk 'NR==2{print $4}')
@@ -27,4 +27,4 @@ after=$(df / -Pm | awk 'NR==2{print $4}')
# display size
echo "Before: $before MB"
echo "After : $after MB"
- echo "Delta : $(($after-$before)) MB"
\ No newline at end of file
+ echo "Delta : $(($after-$before)) MB"
diff --git a/images/linux/scripts/installers/cmake.sh b/images/linux/scripts/installers/cmake.sh
index 2dbf4cf54..3e51f02f4 100644
--- a/images/linux/scripts/installers/cmake.sh
+++ b/images/linux/scripts/installers/cmake.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: cmake.sh
## Desc: Installs CMake
################################################################################
-
# Test to see if the software in question is already installed, if not install it
echo "Checking to see if the installer script has already been run"
if command -v cmake; then
diff --git a/images/linux/scripts/installers/codeql-bundle.sh b/images/linux/scripts/installers/codeql-bundle.sh
index 9de8a5e41..8d1ed80fa 100644
--- a/images/linux/scripts/installers/codeql-bundle.sh
+++ b/images/linux/scripts/installers/codeql-bundle.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: codeql-bundle.sh
## Desc: Install the CodeQL CLI Bundle to the toolcache.
diff --git a/images/linux/scripts/installers/complete-snap-setup.sh b/images/linux/scripts/installers/complete-snap-setup.sh
index 51e631546..09cd8edd5 100644
--- a/images/linux/scripts/installers/complete-snap-setup.sh
+++ b/images/linux/scripts/installers/complete-snap-setup.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: snap-environment.sh
## Desc: Update /etc/environment to include /snap/bin in PATH
diff --git a/images/linux/scripts/installers/configure-environment.sh b/images/linux/scripts/installers/configure-environment.sh
index fbac4275e..97d3c6068 100644
--- a/images/linux/scripts/installers/configure-environment.sh
+++ b/images/linux/scripts/installers/configure-environment.sh
@@ -1,3 +1,5 @@
+#!/bin/bash -e
+
#Set ImageVersion and ImageOS env variables
echo ImageVersion=$IMAGE_VERSION | tee -a /etc/environment
echo ImageOS=$IMAGE_OS | tee -a /etc/environment
@@ -22,4 +24,4 @@ chmod -R 777 $AGENT_TOOLSDIRECTORY
# https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
# https://www.suse.com/support/kb/doc/?id=000016692
-echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf
\ No newline at end of file
+echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf
diff --git a/images/linux/scripts/installers/containers.sh b/images/linux/scripts/installers/containers.sh
index a44d73fd7..682cdd131 100644
--- a/images/linux/scripts/installers/containers.sh
+++ b/images/linux/scripts/installers/containers.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: containers.sh
## Desc: Installs container tools: podman, buildah and skopeo onto the image
################################################################################
-
source /etc/os-release
sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key
diff --git a/images/linux/scripts/installers/docker-compose.sh b/images/linux/scripts/installers/docker-compose.sh
index d2698d5c0..0fa74fc12 100644
--- a/images/linux/scripts/installers/docker-compose.sh
+++ b/images/linux/scripts/installers/docker-compose.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: docker-compose.sh
## Desc: Installs Docker Compose
################################################################################
-
URL=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r '.assets[].browser_download_url | select(contains("docker-compose-Linux-x86_64"))' | head -1)
# Install latest docker-compose from releases
diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh
index 9ae7f8c86..964fbc92c 100644
--- a/images/linux/scripts/installers/docker-moby.sh
+++ b/images/linux/scripts/installers/docker-moby.sh
@@ -1,9 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: docker-moby.sh
## Desc: Installs docker onto the image
################################################################################
-set -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/install.sh
diff --git a/images/linux/scripts/installers/dotnetcore-sdk.sh b/images/linux/scripts/installers/dotnetcore-sdk.sh
index ee0a95b89..ff966cd28 100644
--- a/images/linux/scripts/installers/dotnetcore-sdk.sh
+++ b/images/linux/scripts/installers/dotnetcore-sdk.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: dotnetcore-sdk.sh
## Desc: Installs .NET Core SDK
@@ -25,7 +25,6 @@ mksamples()
sample=$2
mkdir "$sdk"
cd "$sdk" || exit
- set -e
dotnet help
dotnet new globaljson --sdk-version "$sdk"
dotnet new "$sample"
@@ -36,8 +35,6 @@ mksamples()
rm -rf "$sdk"
}
-set -e
-
# Disable telemetry
export DOTNET_CLI_TELEMETRY_OPTOUT=1
diff --git a/images/linux/scripts/installers/dpkg-config.sh b/images/linux/scripts/installers/dpkg-config.sh
index 67b200ed8..d8523b345 100644
--- a/images/linux/scripts/installers/dpkg-config.sh
+++ b/images/linux/scripts/installers/dpkg-config.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
# This is the anti-frontend. It never interacts with you at all,
# and makes the default answers be used for all questions. It
diff --git a/images/linux/scripts/installers/erlang.sh b/images/linux/scripts/installers/erlang.sh
index aa94e3a2b..c8ec5a1bc 100644
--- a/images/linux/scripts/installers/erlang.sh
+++ b/images/linux/scripts/installers/erlang.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: erlang.sh
## Desc: Installs erlang
################################################################################
-
source_list=/etc/apt/sources.list.d/eslerlang.list
# Install Erlang
diff --git a/images/linux/scripts/installers/example.sh b/images/linux/scripts/installers/example.sh
index 895de5d35..58e71b06e 100644
--- a/images/linux/scripts/installers/example.sh
+++ b/images/linux/scripts/installers/example.sh
@@ -1,11 +1,10 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: example.sh
## Desc: This is an example script that can be copied to add a new software
## installer to the image
################################################################################
-
# Test to see if the software in question is already installed, if not install it
echo "Checking to see if the installer script has already been run"
if [ -z $EXAMPLE_VAR ]; then
diff --git a/images/linux/scripts/installers/firefox.sh b/images/linux/scripts/installers/firefox.sh
index 3287bf168..a2cd8521f 100644
--- a/images/linux/scripts/installers/firefox.sh
+++ b/images/linux/scripts/installers/firefox.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: firefox.sh
## Desc: Installs Firefox
################################################################################
-
# Install Firefox
apt-get install -y firefox
diff --git a/images/linux/scripts/installers/gcc.sh b/images/linux/scripts/installers/gcc.sh
index b59eae7f6..3b696e9ff 100644
--- a/images/linux/scripts/installers/gcc.sh
+++ b/images/linux/scripts/installers/gcc.sh
@@ -1,11 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: gcc.sh
## Desc: Installs GNU C++
################################################################################
-set -e
-
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
diff --git a/images/linux/scripts/installers/gfortran.sh b/images/linux/scripts/installers/gfortran.sh
index c37fccf27..dc49cb446 100644
--- a/images/linux/scripts/installers/gfortran.sh
+++ b/images/linux/scripts/installers/gfortran.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: gfortran.sh
## Desc: Installs GNU Fortran
################################################################################
-
function InstallFortran {
version=$1
diff --git a/images/linux/scripts/installers/git.sh b/images/linux/scripts/installers/git.sh
index 331e5f813..90b0f10ec 100644
--- a/images/linux/scripts/installers/git.sh
+++ b/images/linux/scripts/installers/git.sh
@@ -1,9 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: git.sh
## Desc: Installs Git
################################################################################
-set -e
# Source the helpers for use with the script
source "$HELPER_SCRIPTS"/install.sh
@@ -52,3 +51,7 @@ else
echo "[!] Hub CLI was not installed"
exit 1
fi
+
+# Add well-known SSH host keys to known_hosts
+ssh-keyscan -t rsa github.com >> /etc/ssh/ssh_known_hosts
+ssh-keyscan -t rsa ssh.dev.azure.com >> /etc/ssh/ssh_known_hosts
diff --git a/images/linux/scripts/installers/github-cli.sh b/images/linux/scripts/installers/github-cli.sh
index c9bec1fc6..d4eccb125 100644
--- a/images/linux/scripts/installers/github-cli.sh
+++ b/images/linux/scripts/installers/github-cli.sh
@@ -1,11 +1,10 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: github-cli.sh
## Desc: Installs GitHub CLI
## Must be run as non-root user after homebrew
################################################################################
-
# Install GitHub CLI
url=$(curl -s https://api.github.com/repos/cli/cli/releases/latest | jq -r '.assets[].browser_download_url|select(contains("linux") and contains("amd64") and contains(".deb"))')
wget $url
diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh
index a6ace2f38..44316ece5 100644
--- a/images/linux/scripts/installers/google-chrome.sh
+++ b/images/linux/scripts/installers/google-chrome.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: google-chrome.sh
## Desc: Installs google-chrome and chromedriver
################################################################################
-
LSB_RELEASE=$(lsb_release -rs)
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
diff --git a/images/linux/scripts/installers/google-cloud-sdk.sh b/images/linux/scripts/installers/google-cloud-sdk.sh
index 147d8d4fb..a6d8227c8 100644
--- a/images/linux/scripts/installers/google-cloud-sdk.sh
+++ b/images/linux/scripts/installers/google-cloud-sdk.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: google-cloud-sdk.sh
## Desc: Installs the Google Cloud SDK
################################################################################
-
# Install the Google Cloud SDK
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
diff --git a/images/linux/scripts/installers/haskell.sh b/images/linux/scripts/installers/haskell.sh
index b8bfa5efe..9b351cc31 100644
--- a/images/linux/scripts/installers/haskell.sh
+++ b/images/linux/scripts/installers/haskell.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: haskell.sh
## Desc: Installs Haskell
diff --git a/images/linux/scripts/installers/heroku.sh b/images/linux/scripts/installers/heroku.sh
index c4c0e588c..86d537869 100644
--- a/images/linux/scripts/installers/heroku.sh
+++ b/images/linux/scripts/installers/heroku.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: heroku.sh
## Desc: Installs Heroku CLI
################################################################################
-
# Install Heroku CLI
curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
diff --git a/images/linux/scripts/installers/hhvm.sh b/images/linux/scripts/installers/hhvm.sh
index 3010db873..e44f4b3a5 100644
--- a/images/linux/scripts/installers/hhvm.sh
+++ b/images/linux/scripts/installers/hhvm.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: hhvm.sh
## Desc: Installs hhvm
diff --git a/images/linux/scripts/installers/homebrew-validate.sh b/images/linux/scripts/installers/homebrew-validate.sh
index 88d61f946..0806838d7 100644
--- a/images/linux/scripts/installers/homebrew-validate.sh
+++ b/images/linux/scripts/installers/homebrew-validate.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: homebrew-validate.sh
## Desc: Validate the Homebrew can run after reboot without extra configuring
diff --git a/images/linux/scripts/installers/homebrew.sh b/images/linux/scripts/installers/homebrew.sh
index 370d9d09d..865923f25 100644
--- a/images/linux/scripts/installers/homebrew.sh
+++ b/images/linux/scripts/installers/homebrew.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: homebrew.sh
## Desc: Installs the Homebrew on Linux
diff --git a/images/linux/scripts/installers/hosted-tool-cache.sh b/images/linux/scripts/installers/hosted-tool-cache.sh
index d40a4922a..23c09be8d 100644
--- a/images/linux/scripts/installers/hosted-tool-cache.sh
+++ b/images/linux/scripts/installers/hosted-tool-cache.sh
@@ -1,13 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: hosted-tool-cache.sh
## Desc: Downloads and installs hosted tools cache
################################################################################
-
-# Fail out if any setups fail
-set -e
-
TOOLCACHE_REGISTRY="npm.pkg.github.com"
echo "Configure npm to use github package registry for '@actions' scope"
diff --git a/images/linux/scripts/installers/image-magick.sh b/images/linux/scripts/installers/image-magick.sh
index e01c933a7..daf0d62b8 100644
--- a/images/linux/scripts/installers/image-magick.sh
+++ b/images/linux/scripts/installers/image-magick.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: image-magick.sh
## Desc: Installs ImageMagick
################################################################################
-
# Install ImageMagick
apt-get install -y --no-install-recommends --fix-missing \
imagemagick \
diff --git a/images/linux/scripts/installers/java-tools.sh b/images/linux/scripts/installers/java-tools.sh
index 46aa8b285..ea95a56ba 100644
--- a/images/linux/scripts/installers/java-tools.sh
+++ b/images/linux/scripts/installers/java-tools.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: java-tools.sh
## Desc: Installs Java and related tooling (Ant, Gradle, Maven)
@@ -6,8 +6,6 @@
source $HELPER_SCRIPTS/os.sh
-set -e
-
function javaTool {
if [[ "$2" =~ ([1]{0,1}.)?$DEFAULT_JDK_VERSION.* ]]; then
echo "$1 $2 is equal to default one $DEFAULT_JDK_VERSION"
diff --git a/images/linux/scripts/installers/julia.sh b/images/linux/scripts/installers/julia.sh
index 079890a19..cd0ee0ed9 100644
--- a/images/linux/scripts/installers/julia.sh
+++ b/images/linux/scripts/installers/julia.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: julia.sh
## Desc: Installs Julia, and adds Julia to the path
################################################################################
-
# This function fetches the latest Julia release from the GitHub API
# Based on https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
function GetLatestJuliaRelease () {
diff --git a/images/linux/scripts/installers/kind.sh b/images/linux/scripts/installers/kind.sh
index 3a312a2e3..419f4e60f 100644
--- a/images/linux/scripts/installers/kind.sh
+++ b/images/linux/scripts/installers/kind.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: kind.sh
## Desc: Installs kind
################################################################################
-
# Install KIND
URL=$(curl -s https://api.github.com/repos/kubernetes-sigs/kind/releases/latest | jq -r '.assets[].browser_download_url | select(contains("kind-linux-amd64"))')
curl -L -o /usr/local/bin/kind $URL
diff --git a/images/linux/scripts/installers/kubernetes-tools.sh b/images/linux/scripts/installers/kubernetes-tools.sh
index a25cb0f26..e74515ea2 100644
--- a/images/linux/scripts/installers/kubernetes-tools.sh
+++ b/images/linux/scripts/installers/kubernetes-tools.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: kubernetes-tools.sh
## Desc: Installs kubectl, helm, kustomize
################################################################################
-
## Install kubectl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
touch /etc/apt/sources.list.d/kubernetes.list
diff --git a/images/linux/scripts/installers/leiningen.sh b/images/linux/scripts/installers/leiningen.sh
index 56079a34d..059dfdb56 100644
--- a/images/linux/scripts/installers/leiningen.sh
+++ b/images/linux/scripts/installers/leiningen.sh
@@ -1,12 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: leiningen.sh
## Desc: Installs Leiningen
################################################################################
-
-set -e
-
LEIN_BIN=/usr/local/bin/lein
curl -s https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein > $LEIN_BIN
chmod 0755 $LEIN_BIN
diff --git a/images/linux/scripts/installers/mercurial.sh b/images/linux/scripts/installers/mercurial.sh
index ad972d74f..4c3493d8c 100644
--- a/images/linux/scripts/installers/mercurial.sh
+++ b/images/linux/scripts/installers/mercurial.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: mercurial.sh
## Desc: Installs Mercurial
diff --git a/images/linux/scripts/installers/miniconda.sh b/images/linux/scripts/installers/miniconda.sh
index 29eebd0ca..3dae1e1bb 100644
--- a/images/linux/scripts/installers/miniconda.sh
+++ b/images/linux/scripts/installers/miniconda.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: miniconda.sh
## Desc: Installs miniconda
################################################################################
-
# Install Miniconda
curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \
&& chmod +x miniconda.sh \
diff --git a/images/linux/scripts/installers/mongodb.sh b/images/linux/scripts/installers/mongodb.sh
index 2d012c61f..5fd1b36a0 100644
--- a/images/linux/scripts/installers/mongodb.sh
+++ b/images/linux/scripts/installers/mongodb.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: homebrew.sh
## Desc: Installs Mongo DB
diff --git a/images/linux/scripts/installers/mono.sh b/images/linux/scripts/installers/mono.sh
index 9e4968f36..bdce62484 100644
--- a/images/linux/scripts/installers/mono.sh
+++ b/images/linux/scripts/installers/mono.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: cmake.sh
## Desc: Installs Mono
################################################################################
-
LSB_CODENAME=$(lsb_release -cs)
# Test to see if the software in question is already installed, if not install it
diff --git a/images/linux/scripts/installers/mysql.sh b/images/linux/scripts/installers/mysql.sh
index 24cb5cf26..9abb97931 100644
--- a/images/linux/scripts/installers/mysql.sh
+++ b/images/linux/scripts/installers/mysql.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: mysql.sh
## Desc: Installs MySQL Client
################################################################################
-
export ACCEPT_EULA=Y
if isUbuntu16 || isUbuntu18 ; then
@@ -44,7 +43,6 @@ if ! command -v mysql; then
exit 1
fi
-set -e
mysql -vvv -e 'CREATE DATABASE smoke_test' -uroot -proot
mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot
set +e
diff --git a/images/linux/scripts/installers/netlify.sh b/images/linux/scripts/installers/netlify.sh
index b737d4759..42121ab7e 100644
--- a/images/linux/scripts/installers/netlify.sh
+++ b/images/linux/scripts/installers/netlify.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: netlify.sh
## Desc: Installs the Netlify CLI
################################################################################
-
# Install the Netlify CLI
npm i -g netlify-cli
diff --git a/images/linux/scripts/installers/nodejs.sh b/images/linux/scripts/installers/nodejs.sh
index 378236a8b..e0bb6981c 100644
--- a/images/linux/scripts/installers/nodejs.sh
+++ b/images/linux/scripts/installers/nodejs.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: nodejs.sh
## Desc: Installs Node.js LTS and related tooling (Gulp, Grunt)
################################################################################
-
# Install LTS Node.js and related build tools
curl -sL https://raw.githubusercontent.com/mklement0/n-install/stable/bin/n-install | bash -s -- -ny -
~/n/bin/n lts
diff --git a/images/linux/scripts/installers/nvm.sh b/images/linux/scripts/installers/nvm.sh
index 619eade84..b0d995138 100644
--- a/images/linux/scripts/installers/nvm.sh
+++ b/images/linux/scripts/installers/nvm.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: nvm.sh
## Desc: Installs Nvm
################################################################################
-
export NVM_DIR="/etc/skel/.nvm"
mkdir $NVM_DIR
VERSION=$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
diff --git a/images/linux/scripts/installers/oc.sh b/images/linux/scripts/installers/oc.sh
index 88894e3f5..2310f33f0 100644
--- a/images/linux/scripts/installers/oc.sh
+++ b/images/linux/scripts/installers/oc.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: oc.sh
## Desc: Installs the OC CLI
################################################################################
-
# Install the oc CLI
curl "https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz" > oc.tar.gz
tar xvzf oc.tar.gz
diff --git a/images/linux/scripts/installers/oras-cli.sh b/images/linux/scripts/installers/oras-cli.sh
index e615d25de..3c18865b2 100644
--- a/images/linux/scripts/installers/oras-cli.sh
+++ b/images/linux/scripts/installers/oras-cli.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: oras-cli.sh
## Desc: Installs ORAS CLI
diff --git a/images/linux/scripts/installers/packer.sh b/images/linux/scripts/installers/packer.sh
index 25897a780..b45a87ac9 100644
--- a/images/linux/scripts/installers/packer.sh
+++ b/images/linux/scripts/installers/packer.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: packer.sh
## Desc: Installs packer
################################################################################
-
# 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"
diff --git a/images/linux/scripts/installers/phantomjs.sh b/images/linux/scripts/installers/phantomjs.sh
index 093056db2..a774b2d0a 100644
--- a/images/linux/scripts/installers/phantomjs.sh
+++ b/images/linux/scripts/installers/phantomjs.sh
@@ -1,11 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: phantomjs.sh
## Desc: Installs PhantomJS
################################################################################
-set -e
-
# Install PhantomJS
apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev
PHANTOM_JS=phantomjs-2.1.1-linux-x86_64
diff --git a/images/linux/scripts/installers/php.sh b/images/linux/scripts/installers/php.sh
index 35afa4a4f..b8e2b8ed1 100644
--- a/images/linux/scripts/installers/php.sh
+++ b/images/linux/scripts/installers/php.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: php.sh
## Desc: Installs php
@@ -8,8 +8,6 @@
source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/os.sh
-set -e
-
# add repository
apt-add-repository ppa:ondrej/php -y
apt-get update
diff --git a/images/linux/scripts/installers/pollinate.sh b/images/linux/scripts/installers/pollinate.sh
index bdb2ce36c..fe2350d94 100644
--- a/images/linux/scripts/installers/pollinate.sh
+++ b/images/linux/scripts/installers/pollinate.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: pollinate.sh
## Desc: Installs Pollinate
################################################################################
-
# Install Pollinate
apt-get install -y --no-install-recommends pollinate
diff --git a/images/linux/scripts/installers/post-deployment.sh b/images/linux/scripts/installers/post-deployment.sh
index 2864dae4f..95a2e2fa9 100644
--- a/images/linux/scripts/installers/post-deployment.sh
+++ b/images/linux/scripts/installers/post-deployment.sh
@@ -1,9 +1,11 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: post-deployment.sh
## Desc: Post deployment actions
################################################################################
+mv -f /imagegeneration/post-generation /opt
+
# set chmod -R 777 /opt
if [[ -d "/opt" ]]; then
echo "chmod -R 777 /opt"
@@ -14,3 +16,11 @@ fi
rm -rf $HELPER_SCRIPT_FOLDER
rm -rf $INSTALLER_SCRIPT_FOLDER
chmod 755 $IMAGE_FOLDER
+
+# Check PATH
+if [[ $PATH == \"*\" ]]
+then
+ echo "ERROR: PATH contains quotes"
+ echo "PATH = $PATH"
+ exit 1
+fi
diff --git a/images/linux/scripts/installers/postgresql.sh b/images/linux/scripts/installers/postgresql.sh
index ae5ffbb25..4c652fdf2 100644
--- a/images/linux/scripts/installers/postgresql.sh
+++ b/images/linux/scripts/installers/postgresql.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: postgresql.sh
## Desc: Installs Postgresql
################################################################################
-
#Preparing repo for PostgreSQL 12.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
@@ -25,4 +24,4 @@ pg_isready
# Disable postgresql.service
systemctl is-active --quiet postgresql.service && systemctl stop postgresql.service
-systemctl disable postgresql.service
\ No newline at end of file
+systemctl disable postgresql.service
diff --git a/images/linux/scripts/installers/powershellcore.sh b/images/linux/scripts/installers/powershellcore.sh
index e0c19ba7c..0ac52072d 100644
--- a/images/linux/scripts/installers/powershellcore.sh
+++ b/images/linux/scripts/installers/powershellcore.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: powershellcore.sh
## Desc: Installs powershellcore
diff --git a/images/linux/scripts/installers/preimagedata.sh b/images/linux/scripts/installers/preimagedata.sh
index 26be3bfa4..d9f7b22fe 100644
--- a/images/linux/scripts/installers/preimagedata.sh
+++ b/images/linux/scripts/installers/preimagedata.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
imagedata_file=$IMAGEDATA_FILE
image_version=$IMAGE_VERSION
@@ -29,4 +29,4 @@ cat < $imagedata_file
"detail": "Environment: ${image_label}\nVersion: ${image_version}\nIncluded Software: ${software_url}"
}
]
-EOF
\ No newline at end of file
+EOF
diff --git a/images/linux/scripts/installers/pulumi.sh b/images/linux/scripts/installers/pulumi.sh
index bfdad2d13..444a3e7f3 100644
--- a/images/linux/scripts/installers/pulumi.sh
+++ b/images/linux/scripts/installers/pulumi.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: pulumi.sh
## Desc: Installs Pulumi
diff --git a/images/linux/scripts/installers/pypy.sh b/images/linux/scripts/installers/pypy.sh
index cc707a3e4..99dab0a77 100644
--- a/images/linux/scripts/installers/pypy.sh
+++ b/images/linux/scripts/installers/pypy.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: pypy.sh
## Desc: Installs PyPy
@@ -76,8 +76,6 @@ pypyVersions="$(cat /tmp/pypyUrls.html | grep 'linux64' | awk -v uri="$uri" -F'>
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
toolsetVersions=$(jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]' $toolset)
-# Fail out if any setups fail
-set -e
for toolsetVersion in $toolsetVersions; do
latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[0-9]+\.[0-9]+\.[0-9]+-" | head -1)
@@ -90,4 +88,4 @@ for toolsetVersion in $toolsetVersions; do
InstallPyPy $latestMajorPyPyVersion
done
-chown -R "$SUDO_USER:$SUDO_USER" "$AGENT_TOOLSDIRECTORY/PyPy"
\ No newline at end of file
+chown -R "$SUDO_USER:$SUDO_USER" "$AGENT_TOOLSDIRECTORY/PyPy"
diff --git a/images/linux/scripts/installers/python.sh b/images/linux/scripts/installers/python.sh
index 62dc8d359..8993e1d3a 100644
--- a/images/linux/scripts/installers/python.sh
+++ b/images/linux/scripts/installers/python.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: python.sh
## Desc: Installs Python 2/3
diff --git a/images/linux/scripts/installers/r.sh b/images/linux/scripts/installers/r.sh
index cca86e1bb..86ad96bd6 100644
--- a/images/linux/scripts/installers/r.sh
+++ b/images/linux/scripts/installers/r.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
diff --git a/images/linux/scripts/installers/rndgenerator.sh b/images/linux/scripts/installers/rndgenerator.sh
index cdb78edf1..98f1dbaa1 100644
--- a/images/linux/scripts/installers/rndgenerator.sh
+++ b/images/linux/scripts/installers/rndgenerator.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: rndgenerator.sh
## Desc: Install random number generator
################################################################################
-
# Install haveged
apt-get -y install haveged
diff --git a/images/linux/scripts/installers/ruby.sh b/images/linux/scripts/installers/ruby.sh
index 8be6d0fa9..bf2c757d9 100644
--- a/images/linux/scripts/installers/ruby.sh
+++ b/images/linux/scripts/installers/ruby.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: ruby.sh
## Desc: Installs Ruby requirements
################################################################################
-
sudo apt-get install ruby-full
sudo gem update --system
diff --git a/images/linux/scripts/installers/rust.sh b/images/linux/scripts/installers/rust.sh
index a211e791b..c86f4d6ad 100644
--- a/images/linux/scripts/installers/rust.sh
+++ b/images/linux/scripts/installers/rust.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: rust.sh
## Desc: Installs Rust
diff --git a/images/linux/scripts/installers/sbt.sh b/images/linux/scripts/installers/sbt.sh
index 166dc18b5..a43115083 100644
--- a/images/linux/scripts/installers/sbt.sh
+++ b/images/linux/scripts/installers/sbt.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: scala.sh
## Desc: Installs sbt
################################################################################
-
# Install sbt
# https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
diff --git a/images/linux/scripts/installers/selenium.sh b/images/linux/scripts/installers/selenium.sh
index d9b5e2794..d662fa009 100644
--- a/images/linux/scripts/installers/selenium.sh
+++ b/images/linux/scripts/installers/selenium.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: selenium.sh
## Desc: Installs selenium server
################################################################################
-
# Determine latest selenium standalone server version
SELENIUM_LATEST_VERSION_URL=https://api.github.com/repos/SeleniumHQ/selenium/releases/latest
SELENIUM_VERSION=$(curl $SELENIUM_LATEST_VERSION_URL | jq '.name' | tr -d '"' | cut -d ' ' -f 2)
diff --git a/images/linux/scripts/installers/sphinx.sh b/images/linux/scripts/installers/sphinx.sh
index 425bb7fd3..2ef22f46d 100644
--- a/images/linux/scripts/installers/sphinx.sh
+++ b/images/linux/scripts/installers/sphinx.sh
@@ -1,9 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: sphinx.sh
## Desc: Installs Sphinx
################################################################################
-
# Install Sphinx
apt-get install -y sphinxsearch
diff --git a/images/linux/scripts/installers/subversion.sh b/images/linux/scripts/installers/subversion.sh
index 3f51d46a0..77b2d0276 100644
--- a/images/linux/scripts/installers/subversion.sh
+++ b/images/linux/scripts/installers/subversion.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: subversion.sh
## Desc: Installs Subversion client
################################################################################
-
# Install Subversion
apt-get install -y --no-install-recommends subversion
diff --git a/images/linux/scripts/installers/swift.sh b/images/linux/scripts/installers/swift.sh
index 318d3973f..73c8fd297 100644
--- a/images/linux/scripts/installers/swift.sh
+++ b/images/linux/scripts/installers/swift.sh
@@ -1,15 +1,15 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: swift.sh
## Desc: Installs Swift
################################################################################
-
# Install
image_label="$(lsb_release -rs)"
-swift_version=$(curl -s https://swift.org/download/ | grep -m1 "id=\"swift-" | awk -F"[ <]" '{print $4}')
+swift_version=$(curl -s -L -N https://swift.org/download|awk -F"[ <]" '/id="swift-/ {print $4; exit}')
wget -P /tmp https://swift.org/builds/swift-$swift_version-release/ubuntu${image_label//./}/swift-$swift_version-RELEASE/swift-$swift_version-RELEASE-ubuntu$image_label.tar.gz
+
tar xzf /tmp/swift-$swift_version-RELEASE-ubuntu$image_label.tar.gz
mv swift-$swift_version-RELEASE-ubuntu$image_label /usr/share/swift
diff --git a/images/linux/scripts/installers/swig.sh b/images/linux/scripts/installers/swig.sh
index 7972e8827..b2e5a202e 100644
--- a/images/linux/scripts/installers/swig.sh
+++ b/images/linux/scripts/installers/swig.sh
@@ -1,5 +1,4 @@
-#!/bin/bash
-
+#!/bin/bash -e
# Install Swig
sudo apt-get install -y swig
diff --git a/images/linux/scripts/installers/terraform.sh b/images/linux/scripts/installers/terraform.sh
index 4c7e6e762..90c25c65a 100644
--- a/images/linux/scripts/installers/terraform.sh
+++ b/images/linux/scripts/installers/terraform.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: terraform.sh
## Desc: Installs terraform
################################################################################
-
# Install Terraform
TERRAFORM_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r .current_version)
curl -LO "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip"
diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh
index 455ddec09..84d93446e 100644
--- a/images/linux/scripts/installers/test-toolcache.sh
+++ b/images/linux/scripts/installers/test-toolcache.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: test-toolcache.sh
## Desc: Test Python and Ruby versions in tools cache
@@ -51,9 +51,6 @@ Test_Hostedtoolcache_Tool() {
fi
}
-# Fail out if any tests fail
-set -e
-
# define dictionary for key_alias and its values
declare -A TOOLCACHE_KEY_VALUE
diff --git a/images/linux/scripts/installers/validate-disk-space.sh b/images/linux/scripts/installers/validate-disk-space.sh
index 49863064e..c81b9fa75 100644
--- a/images/linux/scripts/installers/validate-disk-space.sh
+++ b/images/linux/scripts/installers/validate-disk-space.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: validate-disk-space.sh
## Desc: Validate free disk space
@@ -17,4 +17,4 @@ fi
if [ $availableSpaceMB -le $minimumFreeSpaceMB ]; then
echo "Not enough disk space on the image (minimum available space: $minimumFreeSpaceMB MB)"
exit 1
-fi
\ No newline at end of file
+fi
diff --git a/images/linux/scripts/installers/vcpkg.sh b/images/linux/scripts/installers/vcpkg.sh
index ba7cd01cf..e2d9688ce 100644
--- a/images/linux/scripts/installers/vcpkg.sh
+++ b/images/linux/scripts/installers/vcpkg.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: vcpkg.sh
## Desc: Installs vcpkg
diff --git a/images/linux/scripts/installers/vercel.sh b/images/linux/scripts/installers/vercel.sh
index 4e0d41ae6..7f48d7c28 100644
--- a/images/linux/scripts/installers/vercel.sh
+++ b/images/linux/scripts/installers/vercel.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: vercel.sh
## Desc: Installs the Vercel CLI
diff --git a/images/linux/toolsets/toolset-1604.json b/images/linux/toolsets/toolset-1604.json
index 4e93ee77b..1136ae921 100644
--- a/images/linux/toolsets/toolset-1604.json
+++ b/images/linux/toolsets/toolset-1604.json
@@ -64,7 +64,7 @@
],
"android": {
"platform_min_version": "10",
- "build_tools_min_version": "17.0.0",
+ "build_tools_min_version": "19.1.0",
"extra_list": [
"android;m2repository",
"google;m2repository",
diff --git a/images/linux/toolsets/toolset-1804.json b/images/linux/toolsets/toolset-1804.json
index 52357c3cf..de611ebc0 100644
--- a/images/linux/toolsets/toolset-1804.json
+++ b/images/linux/toolsets/toolset-1804.json
@@ -64,7 +64,7 @@
],
"android": {
"platform_min_version": "17",
- "build_tools_min_version": "17.0.0",
+ "build_tools_min_version": "19.1.0",
"extra_list": [
"android;m2repository",
"google;m2repository",
diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json
index 8a4255ec7..5e45fdedc 100644
--- a/images/linux/ubuntu1604.json
+++ b/images/linux/ubuntu1604.json
@@ -89,6 +89,11 @@
"source": "{{template_dir}}/scripts/installers",
"destination": "{{user `installer_script_folder`}}"
},
+ {
+ "type": "file",
+ "source": "{{ template_dir }}/post-generation",
+ "destination": "{{user `image_folder`}}"
+ },
{
"type": "file",
"source": "{{ template_dir }}/scripts/SoftwareReport",
diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json
index daf40ce81..e6af0e41e 100644
--- a/images/linux/ubuntu1804.json
+++ b/images/linux/ubuntu1804.json
@@ -92,6 +92,11 @@
"source": "{{template_dir}}/scripts/installers",
"destination": "{{user `installer_script_folder`}}"
},
+ {
+ "type": "file",
+ "source": "{{ template_dir }}/post-generation",
+ "destination": "{{user `image_folder`}}"
+ },
{
"type": "file",
"source": "{{ template_dir }}/scripts/SoftwareReport",
diff --git a/images/linux/ubuntu2004.json b/images/linux/ubuntu2004.json
index 740fe097f..477f8c55a 100644
--- a/images/linux/ubuntu2004.json
+++ b/images/linux/ubuntu2004.json
@@ -94,6 +94,11 @@
"source": "{{template_dir}}/scripts/installers",
"destination": "{{user `installer_script_folder`}}"
},
+ {
+ "type": "file",
+ "source": "{{ template_dir }}/post-generation",
+ "destination": "{{user `image_folder`}}"
+ },
{
"type": "file",
"source": "{{ template_dir }}/scripts/SoftwareReport",
diff --git a/images/macos/macos-11.0-Readme.md b/images/macos/macos-11.0-Readme.md
new file mode 100644
index 000000000..7363eefc8
--- /dev/null
+++ b/images/macos/macos-11.0-Readme.md
@@ -0,0 +1,217 @@
+| Announcements |
+|-|
+| [Default Xcode will be changed to Xcode 12.0 on October, 20](https://github.com/actions/virtual-environments/issues/1712) |
+| [Xcode 11.0, 11.1, 11.4.0 will be deprecated on October, 20](https://github.com/actions/virtual-environments/issues/1688) |
+| [Remove Xcode 12 beta 6 from MacOS Catalina image in favor of Xcode 12.2 beta 1 on October 13](https://github.com/actions/virtual-environments/issues/1646) |
+***
+# macOS 11.0 info
+- System Version: macOS 11.0 (20A5384c)
+- Kernel Version: Darwin 20.1.0
+- Image Version: 20201002.1
+
+## Installed Software
+### Language and Runtime
+- Clang/LLVM 10.0.1
+- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gcc-8` alias
+- gcc-9 (Homebrew GCC 9.3.0) 9.3.0 - available by `gcc-9` alias
+- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gfortran-8` alias
+- GNU Fortran (Homebrew GCC 9.3.0) 9.3.0 - available by `gfortran-9` alias
+- Node.js v12.18.4
+- NVM 0.35.3
+- NVM - Cached node versions: v6.17.1 v8.17.0 v10.22.1 v12.18.4 v13.14.0 v14.13.0
+- Python 2.7.17
+- Python 3.8.5
+- Ruby 2.7.2p137
+- .NET SDK 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.602 2.1.603 2.1.604 2.1.607 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 3.1.100 3.1.101 3.1.200 3.1.201 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402
+- Go 1.15.2
+- PHP 7.4.11
+- julia 1.5.2
+
+### Package Management
+- Vcpkg 2020.06.15
+- Pip 20.1.1 (python 3.8)
+- Bundler version 2.1.4
+- Carthage 0.36.0
+- CocoaPods 1.9.3
+- Homebrew 2.5.2
+- NPM 6.14.6
+- Yarn 1.22.5
+- NuGet 5.6.0.6489
+- Miniconda 4.8.3
+- RubyGems 3.1.4
+- Composer 1.10.13
+
+### Project Management
+- Apache Maven 3.6.3
+- Gradle 6.6.1
+- Apache Ant(TM) 1.10.9
+
+### Utilities
+- Curl 7.72.0
+- Git: 2.28.0
+- Git LFS: 2.12.0
+- GitHub CLI: 1.0.0
+- Hub CLI: 2.14.2
+- GNU Wget 1.20.3
+- Subversion (SVN) 1.14.0
+- Packer 1.6.4
+- OpenSSL 1.0.2t 10 Sep 2019 `(/usr/local/opt/openssl -> /usr/local/Cellar/openssl@1.0.2t/1.0.2t)`
+- jq 1.6
+- gpg (GnuPG) 2.2.23
+- psql (PostgreSQL) 12.4
+- PostgreSQL 12.4
+- aria2 1.35.0
+- azcopy 10.6.0
+- zstd 1.4.5
+- bazel 3.5.1
+- bazelisk 1.6.1
+- helm v3.3.4+ga61ce56
+- mongo v4.4.0
+- mongod v4.4.0
+- 7-Zip 16.02
+- Newman 5.2.0
+
+### Tools
+- Fastlane 2.162.0
+- Cmake 3.18.3
+- App Center CLI 2.7.1
+- Azure CLI 2.12.1
+- AWS CLI 2.0.54
+- AWS SAM CLI 1.4.0
+- AWS Session Manager CLI 1.1.61.0
+- Aliyun CLI 3.0.59
+- GHCup v0.1.11
+- GHC 8.8.4
+- Cabal 3.2.0.0
+- Stack 2.3.3
+
+### Linters
+- yamllint 1.24.2
+- SwiftLint 0.40.3
+
+### Browsers
+- Safari 14.0.1 (16610.2.6.1.6)
+- SafariDriver 14.0.1 (16610.2.6.1.6)
+- Google Chrome 85.0.4183.121
+- ChromeDriver 85.0.4183.87
+- Microsoft Edge 85.0.564.68
+- MSEdgeDriver 85.0.564.63
+- Mozilla Firefox 81.0.1
+- geckodriver 0.27.0
+
+### Java
+| Version | Vendor | Environment Variable |
+| --------- | ------------ | -------------------- |
+| 1.8.0_265 | AdoptOpenJDK | JAVA_HOME_8_X64 |
+| 11.0.8 | AdoptOpenJDK | JAVA_HOME_11_X64 |
+### Cached Tools
+#### Ruby
+- 2.4.10
+- 2.5.8
+- 2.6.6
+- 2.7.1
+
+#### Python
+- 3.7.9
+- 3.8.6
+
+#### Node.js
+- 10.22.1
+- 12.18.4
+- 14.13.0
+
+#### Go
+- 1.15.2
+
+### Rust Tools
+- Rust 1.46.0
+- Rustup 1.22.1
+
+#### Packages
+- Bindgen 0.55.1
+- Cbindgen 0.14.6
+- Cargo-outdated v0.9.11
+- Cargo-audit 0.12.1
+
+### PowerShell Tools
+- PowerShell 7.0.3
+
+#### PowerShell Modules
+| Module | Version |
+| ---------- | ------- |
+| Az | 4.7.0 |
+| MarkdownPS | 1.9 |
+| Pester | 5.0.4 |
+
+### Xamarin
+#### Visual Studio for Mac
+- 8.7.8.4
+
+#### Mono
+- 6.12.0.93
+
+#### Xamarin.iOS
+- 14.0.0.0
+- 13.20.2.2
+
+#### Xamarin.Mac
+- 6.20.2.2
+
+#### Xamarin.Android
+- 11.0.2
+
+#### Unit Test Framework
+- NUnit 3.6.1
+
+### Xcode
+| Version | Build | Path |
+| -------------- | -------- | ---------------------------- |
+| 12.2 | 12B5025f | /Applications/Xcode_12.2.app |
+| 12.0 | 12A8189n | /Applications/Xcode_12.app |
+| 11.7 (default) | 11E801a | /Applications/Xcode_11.7.app |
+
+#### Xcode Support Tools
+- xcpretty 0.3.0
+- xcversion 2.6.6
+
+#### Installed SDKs
+| SDK | SDK Name | Xcode Version |
+| ----------------------- | -------------------- | ------------- |
+| macOS 10.15 | macosx10.15 | 11.7 |
+| macOS 11.0 | macosx11.0 | 12.0, 12.2 |
+| iOS 13.7 | iphoneos13.7 | 11.7 |
+| iOS 14.0 | iphoneos14.0 | 12.0 |
+| iOS 14.2 | iphoneos14.2 | 12.2 |
+| Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 |
+| Simulator - iOS 14.0 | iphonesimulator14.0 | 12.0 |
+| Simulator - iOS 14.2 | iphonesimulator14.2 | 12.2 |
+| tvOS 13.4 | appletvos13.4 | 11.7 |
+| tvOS 14.0 | appletvos14.0 | 12.0 |
+| tvOS 14.2 | appletvos14.2 | 12.2 |
+| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.7 |
+| Simulator - tvOS 14.0 | appletvsimulator14.0 | 12.0 |
+| Simulator - tvOS 14.2 | appletvsimulator14.2 | 12.2 |
+| watchOS 6.2 | watchos6.2 | 11.7 |
+| watchOS 7.0 | watchos7.0 | 12.0 |
+| watchOS 7.1 | watchos7.1 | 12.2 |
+| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.7 |
+| Simulator - watchOS 7.0 | watchsimulator7.0 | 12.0 |
+| Simulator - watchOS 7.1 | watchsimulator7.1 | 12.2 |
+| DriverKit 19.0 | driverkit.macosx19.0 | 11.7 |
+| DriverKit 20.0 | driverkit.macosx20.0 | 12.0, 12.2 |
+
+### Android
+| Package Name | Version |
+| -------------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.6.4111459 |
+| NDK | 21.3.6528147 |
+
+
diff --git a/images/macos/provision/core/android-toolsets.sh b/images/macos/provision/core/android-toolsets.sh
index a3b8aa97f..093a133ce 100755
--- a/images/macos/provision/core/android-toolsets.sh
+++ b/images/macos/provision/core/android-toolsets.sh
@@ -1,8 +1,26 @@
#!/bin/bash -e
source ~/utils/utils.sh
-ANDROID_PLATFORM_LIST=($(get_toolset_value '.android."platform-list"[]'))
-ANDROID_BUILD_TOOLS=($(get_toolset_value '.android."build-tools"[]'))
+function filter_components_by_version {
+ minimumVersion=$1
+ shift
+ toolsArr=("$@")
+
+ for item in ${toolsArr[@]}
+ do
+ # take the last argument after spliting string by ';'' and '-''
+ version=$(echo "${item##*[-;]}")
+ if verlte $minimumVersion $version
+ then
+ components+=($item)
+ fi
+ done
+}
+
+components=()
+
+ANDROID_PLATFORM=($(get_toolset_value '.android.platform_min_version'))
+ANDROID_BUILD_TOOL=($(get_toolset_value '.android.build_tools_min_version'))
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]'))
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]'))
@@ -48,17 +66,14 @@ echo y | $SDKMANAGER "cmake;3.6.4111459"
echo "Installing latest ndk..."
echo y | $SDKMANAGER "ndk-bundle"
-for platform_name in "${ANDROID_PLATFORM_LIST[@]}"
-do
- echo "Installing platform $platform_name ..."
- echo y | $SDKMANAGER "platforms;$platform_name"
-done
+availablePlatforms=($(${ANDROID_HOME}/tools/bin/sdkmanager --list | grep "platforms;android-" | cut -d"|" -f 1 | sort -u))
+filter_components_by_version $ANDROID_PLATFORM "${availablePlatforms[@]}"
-for build_tools_version in "${ANDROID_BUILD_TOOLS[@]}"
-do
- echo "Installing build tools $build_tools_version ..."
- echo y | $SDKMANAGER "build-tools;$build_tools_version"
-done
+allBuildTools=($(${ANDROID_HOME}/tools/bin/sdkmanager --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
+availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
+filter_components_by_version $ANDROID_BUILD_TOOL "${availableBuildTools[@]}"
+
+echo "y" | ${ANDROID_HOME}/tools/bin/sdkmanager ${components[@]}
for extra_name in "${ANDROID_EXTRA_LIST[@]}"
do
diff --git a/images/macos/provision/core/homebrew.sh b/images/macos/provision/core/homebrew.sh
index 01b0fb0f3..201fc586a 100755
--- a/images/macos/provision/core/homebrew.sh
+++ b/images/macos/provision/core/homebrew.sh
@@ -1,23 +1,19 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
+
echo "Installing Homebrew..."
-
-source ~/utils/utils.sh
-
-echo Installing Homebrew...
HOMEBREW_INSTALL_URL="https://raw.githubusercontent.com/Homebrew/install/master/install.sh"
-
/bin/bash -c "$(curl -fsSL ${HOMEBREW_INSTALL_URL})"
-echo Disabling Homebrew analytics...
+echo "Disabling Homebrew analytics..."
brew analytics off
-echo Installing the last version of curl
+echo "Installing the latest curl..."
brew install curl
-echo Installing wget...
+echo "Installing wget..."
brew install wget
-echo Installing jq
+echo "Installing jq..."
brew install jq
# init brew bundle feature
diff --git a/images/macos/provision/core/node.sh b/images/macos/provision/core/node.sh
index daf5ea408..840b433f9 100644
--- a/images/macos/provision/core/node.sh
+++ b/images/macos/provision/core/node.sh
@@ -1,11 +1,6 @@
source ~/utils/utils.sh
-node_common_modules=(
- node-gyp
- mobile-center-cli
-)
-
-node_catalina_modules=(
+node_modules=(
appcenter-cli
newman
)
@@ -23,6 +18,10 @@ if is_Less_Catalina; then
npm install -g npm@3
npm config set prefix /usr/local
+ # This step is required to install App Center CLI
+ echo Installing Omelette...
+ npm install -g omelette@0.4.14
+
echo Installing App Center CLI...
npm install -g appcenter-cli@^1.0.0
else
@@ -30,7 +29,7 @@ else
brew install node@12
brew link node@12 --force
- for module in ${node_catalina_modules[@]}; do
+ for module in ${node_modules[@]}; do
echo "Install $module"
npm install -g $module
done
@@ -40,8 +39,6 @@ echo Installing yarn...
curl -o- -L https://yarnpkg.com/install.sh | bash
if is_Less_BigSur; then
- for module in ${node_common_modules[@]}; do
- echo "Install $module"
- npm install -g $module
- done
+ echo "Install node-gyp"
+ npm install -g node-gyp
fi
diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh
index 0c4058e31..8d588d74a 100755
--- a/images/macos/provision/core/python.sh
+++ b/images/macos/provision/core/python.sh
@@ -4,7 +4,12 @@ source ~/utils/utils.sh
echo "Installing Python Tooling"
echo "Brew Installing Python 3"
-/usr/local/bin/brew install python3
+# Workaround to have both 3.8 & 3.9(which required by some brew formulas) in the system, but only 3.8 is linked
+/usr/local/bin/brew install python@3.8
+/usr/local/bin/brew install python@3.9
+/usr/local/bin/brew unlink python@3.9
+/usr/local/bin/brew unlink python@3.8
+/usr/local/bin/brew link python@3.8
echo "Brew Installing Python 2"
# Create local tap with formula due to python2 formula depreciation
diff --git a/images/macos/provision/core/xcode-clt.sh b/images/macos/provision/core/xcode-clt.sh
new file mode 100644
index 000000000..49693d33b
--- /dev/null
+++ b/images/macos/provision/core/xcode-clt.sh
@@ -0,0 +1,43 @@
+#!/bin/bash -e -o pipefail
+
+is_clt_installed() {
+ clt_path=`xcode-select -p 2>&1`
+ [[ -d "$clt_path" ]]
+}
+
+install_clt() {
+ echo "Searching online for the Command Line Tools"
+ # This temporary file prompts the 'softwareupdate' utility to list the Command Line Tools
+ clt_placeholder="/tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress"
+ sudo touch $clt_placeholder
+ clt_label_command="/usr/sbin/softwareupdate -l |
+ grep -B 1 -E 'Command Line Tools' |
+ awk -F'*' '/^ *\\*/ {print \$2}' |
+ sed -e 's/^ *Label: //' -e 's/^ *//' |
+ sort -V |
+ tail -n1"
+ clt_label=$(eval $clt_label_command) || true
+ if [[ -n "$clt_label" ]]; then
+ echo "Installing $clt_label"
+ sudo "/usr/sbin/softwareupdate" "-i" "$clt_label"
+ fi
+ sudo "/bin/rm" "-f" "$clt_placeholder"
+}
+
+echo "Installing Command Line Tools..."
+install_clt
+
+# Retry the installation if tools are not installed from the first attempt
+retries=30
+sleepInterval=60
+while ! is_clt_installed; do
+ if [[ $retries -eq 0 ]]; then
+ echo "Unable to find the Command Line Tools, all the attempts exhausted"
+ exit 1
+ fi
+ echo "Command Line Tools not found, trying to install them via softwareupdates, $retries attempts left"
+ install_clt
+ ((retries--))
+ echo "Wait $sleepInterval seconds before the next check for installed Command Line Tools"
+ sleep $sleepInterval
+done
\ No newline at end of file
diff --git a/images/macos/provision/core/xcode-ctl.sh b/images/macos/provision/core/xcode-ctl.sh
deleted file mode 100644
index cea7aa633..000000000
--- a/images/macos/provision/core/xcode-ctl.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-# Homebrew doesn't support installation of command line tools on MacOS 11.0
-# https://github.com/Homebrew/install/blob/master/install.sh#L191
-# Copy-paste script from brew installation process
-# https://github.com/Homebrew/install/blob/master/install.sh#L530
-# This temporary file prompts the 'softwareupdate' utility to list the Command Line Tools
-
-clt_placeholder="/tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress"
-touch $clt_placeholder
-clt_label=`/usr/sbin/softwareupdate -l |
- grep -B 1 -E 'Command Line Tools beta 5' |
- awk -F'*' '/^ *\\*/ {print \$2}' |
- sed -e 's/^ *Label: //' -e 's/^ *//' |
- sort -V |
- tail -n1`
-/usr/sbin/softwareupdate -i "$clt_label"
-rm -f $clt_placeholder
-sudo xcode-select --switch "/Library/Developer/CommandLineTools/"
\ No newline at end of file
diff --git a/images/macos/provision/utils/utils.sh b/images/macos/provision/utils/utils.sh
index 6a924e03d..85881c7e3 100755
--- a/images/macos/provision/utils/utils.sh
+++ b/images/macos/provision/utils/utils.sh
@@ -91,4 +91,9 @@ get_latest_xcode_from_toolset() {
get_default_xcode_from_toolset() {
echo $(get_toolset_value '.xcode.default')
+}
+
+verlte() {
+ sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
+ [ "$1" = "$sortedVersion" ]
}
\ No newline at end of file
diff --git a/images/macos/provision/utils/xcode-utils.sh b/images/macos/provision/utils/xcode-utils.sh
index 0f7855ec1..fccde9efd 100644
--- a/images/macos/provision/utils/xcode-utils.sh
+++ b/images/macos/provision/utils/xcode-utils.sh
@@ -2,6 +2,11 @@ createXamarinProvisionatorSymlink() {
local XCODE_VERSION="$1"
local FULL_VERSION=$(echo "${XCODE_VERSION}.0.0" | cut -d'.' -f 1,2,3)
+ # temporary trick for 12.0.1
+ if [[ $XCODE_VERSION == "12" ]]; then
+ FULL_VERSION="12.0.1"
+ fi
+
if [ $FULL_VERSION != $XCODE_VERSION ]; then
ln -sf "/Applications/Xcode_${XCODE_VERSION}.app" "/Applications/Xcode_${FULL_VERSION}.app"
fi
@@ -10,7 +15,9 @@ createXamarinProvisionatorSymlink() {
getXcodeVersionToInstall() {
local XCODE_VERSION="$1"
- if [[ ! $XCODE_VERSION =~ "_beta" ]]; then
+ if [[ $XCODE_VERSION == "12" ]]; then
+ echo "12.0.1"
+ elif [[ ! $XCODE_VERSION =~ "_beta" ]]; then
echo "${XCODE_VERSION//_/ }"
else
local XCODE_BETA="${XCODE_VERSION/_/ }"
@@ -51,6 +58,7 @@ setXcodeDeveloperDirVariables() {
for MAJOR_VERSION in "${major_versions[@]}"
do
LATEST_STABLE_VERSION=$(echo "${stable_xcode_versions[*]}" | grep "${MAJOR_VERSION}" | tail -n 1)
+ LATEST_STABLE_VERSION=$(echo $LATEST_STABLE_VERSION | cut -d"_" -f 1)
echo "export XCODE_${MAJOR_VERSION}_DEVELOPER_DIR=/Applications/Xcode_${LATEST_STABLE_VERSION}.app/Contents/Developer" >> "$HOME/.bashrc"
done
}
diff --git a/images/macos/software-report/SoftwareReport.Android.psm1 b/images/macos/software-report/SoftwareReport.Android.psm1
index 75f1d9f86..ca4fcc208 100644
--- a/images/macos/software-report/SoftwareReport.Android.psm1
+++ b/images/macos/software-report/SoftwareReport.Android.psm1
@@ -28,6 +28,11 @@ function Get-AndroidInstalledPackages {
return $androidInstalledPackages
}
+function Get-AndroidPackages {
+ $androidSDKManagerPath = Get-AndroidSDKManagerPath
+ $androidPackages = & $androidSDKManagerPath --list --verbose
+ return $androidPackages
+}
function Build-AndroidTable {
Write-Host "Build-AndroidTable"
diff --git a/images/macos/software-report/SoftwareReport.Generator.ps1 b/images/macos/software-report/SoftwareReport.Generator.ps1
index 5a58a691a..4eab767c4 100644
--- a/images/macos/software-report/SoftwareReport.Generator.ps1
+++ b/images/macos/software-report/SoftwareReport.Generator.ps1
@@ -143,7 +143,7 @@ $aria2Version = Run-Command "aria2c --version" | Select-Object -First 1 | Take-P
$azcopyVersion = Run-Command "azcopy --version" | Take-Part -Part 2
$zstdVersion = Run-Command "zstd --version" | Take-Part -Part 1 -Delimiter "v" | Take-Part -Part 0 -Delimiter ","
$bazelVersion = Run-Command "bazel --version" | Take-Part -Part 0 -Delimiter "-"
-$bazeliskVersion = Run-Command "bazelisk version" | Select-String "Bazelisk version:" | Take-Part -Part 1 -Delimiter ":"
+$bazeliskVersion = Run-Command "brew list bazelisk --versions"
$packerVersion = Run-Command "packer --version"
$helmVersion = Run-Command "helm version --short"
$mongo = Run-Command "mongo --version" | Select-String "MongoDB shell version" | Take-Part -Part 3
@@ -169,7 +169,7 @@ $markdown += New-MDList -Style Unordered -NoNewLine -Lines @(
"azcopy $azcopyVersion",
"zstd $zstdVersion",
$bazelVersion,
- "bazelisk $($bazeliskVersion.Trim())",
+ $bazeliskVersion,
"helm $helmVersion",
"mongo $mongo",
"mongod $mongod",
diff --git a/images/macos/templates/macOS-10.13.json b/images/macos/templates/macOS-10.13.json
index 2300bf51e..aa43650a4 100644
--- a/images/macos/templates/macOS-10.13.json
+++ b/images/macos/templates/macOS-10.13.json
@@ -128,6 +128,7 @@
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
+ "./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
diff --git a/images/macos/templates/macOS-10.14.json b/images/macos/templates/macOS-10.14.json
index 3cb0b0705..017bc6074 100644
--- a/images/macos/templates/macOS-10.14.json
+++ b/images/macos/templates/macOS-10.14.json
@@ -128,6 +128,7 @@
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
+ "./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
diff --git a/images/macos/templates/macOS-10.15.json b/images/macos/templates/macOS-10.15.json
index 65a0d12d4..cf225d411 100644
--- a/images/macos/templates/macOS-10.15.json
+++ b/images/macos/templates/macOS-10.15.json
@@ -129,6 +129,7 @@
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
+ "./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
diff --git a/images/macos/templates/macOS-11.0.json b/images/macos/templates/macOS-11.0.json
index c732f7995..d1f54d316 100644
--- a/images/macos/templates/macOS-11.0.json
+++ b/images/macos/templates/macOS-11.0.json
@@ -129,7 +129,7 @@
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
- "./provision/core/xcode-ctl.sh",
+ "./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
diff --git a/images/macos/tests/Android.Tests.ps1 b/images/macos/tests/Android.Tests.ps1
index a7420b23e..c14a02c5e 100644
--- a/images/macos/tests/Android.Tests.ps1
+++ b/images/macos/tests/Android.Tests.ps1
@@ -1,10 +1,22 @@
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
Import-Module "$PSScriptRoot/../helpers/Tests.Helpers.psm1"
+Import-Module "$PSScriptRoot/../software-report/SoftwareReport.Android.psm1"
$os = Get-OSVersion
Describe "Android" {
$androidNdkToolchains = @("mips64el-linux-android-4.9", "mipsel-linux-android-4.9")
+ $androidSdkManagerPackages = Get-AndroidPackages
+ [int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
+ [version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
+
+ $platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' |
+ Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique |
+ ForEach-Object { "platforms/${_}" })
+
+ $buildTools = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") }) -replace 'build-tools;', '' |
+ Where-Object { [version]$_ -ge $buildToolsMinVersion } | Sort-Object { [version]$_ } -Unique |
+ ForEach-Object { "build-tools/${_}" })
$androidPackages = @(
"tools",
@@ -12,8 +24,8 @@ Describe "Android" {
"tools/proguard",
"ndk-bundle",
"cmake",
- (Get-ToolsetValue "android.platform-list" | ForEach-Object { "platforms/${_}" }),
- (Get-ToolsetValue "android.build-tools" | ForEach-Object { "build-tools/${_}" }),
+ $platforms,
+ $buildTools,
(Get-ToolsetValue "android.extra-list" | ForEach-Object { "extras/${_}" }),
(Get-ToolsetValue "android.addon-list" | ForEach-Object { "add-ons/${_}" })
) | ForEach-Object { $_ }
@@ -26,7 +38,7 @@ Describe "Android" {
[Parameter(Mandatory=$true)]
[string]$PackageName
)
-
+
# Convert 'm2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1' ->
# 'm2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta1'
$PackageName = $PackageName.Replace(";", "/")
@@ -62,14 +74,14 @@ Describe "Android" {
$rawContent = Get-Content $ndkBundlePath -Raw
$rawContent | Should -BeLikeExactly "*Revision = 21.*"
}
-
+
It "Android NDK version r18b is installed" {
$ndk18BundlePath = Join-Path $ANDROID_SDK_DIR "ndk" "18.1.5063045" "source.properties"
$rawContent = Get-Content $ndk18BundlePath -Raw
$rawContent | Should -BeLikeExactly "*Revision = 18.*"
}
}
-
+
It "HAXM is installed" {
$haxmPath = Join-Path $ANDROID_SDK_DIR "extras" "intel" "Hardware_Accelerated_Execution_Manager" "silent_install.sh"
"$haxmPath -v" | Should -ReturnZeroExitCode
diff --git a/images/macos/tests/Common.Tests.ps1 b/images/macos/tests/Common.Tests.ps1
index 72a657e6b..88d735bf1 100644
--- a/images/macos/tests/Common.Tests.ps1
+++ b/images/macos/tests/Common.Tests.ps1
@@ -102,10 +102,6 @@ Describe "Common utilities" {
"aliyun --version" | Should -ReturnZeroExitCode
}
- It "Mobile Center CLI" -Skip:($os.IsBigSur) {
- "mobile-center --version" | Should -ReturnZeroExitCode
- }
-
Context "Nomad" -Skip:($os.IsBigSur) {
It "Nomad CLI" {
$result = Get-CommandResult "gem list"
diff --git a/images/macos/toolsets/toolset-10.13.json b/images/macos/toolsets/toolset-10.13.json
index 5157fe477..f1ce3b065 100644
--- a/images/macos/toolsets/toolset-10.13.json
+++ b/images/macos/toolsets/toolset-10.13.json
@@ -170,12 +170,8 @@
]
},
"android": {
- "platform-list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-20", "android-19", "android-18", "android-17", "android-16", "android-15"
- ],
- "build-tools": [
- "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "23.0.0", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
- ],
+ "platform_min_version": "15",
+ "build_tools_min_version": "17.0.0",
"extra-list": [
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
],
diff --git a/images/macos/toolsets/toolset-10.14.json b/images/macos/toolsets/toolset-10.14.json
index 1d00e616e..f1c70a837 100644
--- a/images/macos/toolsets/toolset-10.14.json
+++ b/images/macos/toolsets/toolset-10.14.json
@@ -191,12 +191,8 @@
]
},
"android": {
- "platform-list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-20", "android-19", "android-18", "android-17", "android-16", "android-15"
- ],
- "build-tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "23.0.0", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
- ],
+ "platform_min_version": "15",
+ "build_tools_min_version": "17.0.0",
"extra-list": [
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
],
diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json
index ddf37f44d..e2debc9f2 100644
--- a/images/macos/toolsets/toolset-10.15.json
+++ b/images/macos/toolsets/toolset-10.15.json
@@ -2,7 +2,7 @@
"xcode": {
"default": "11.7",
"versions": [
- "12.2_beta", "12", "11.7", "11.6", "11.5", "11.4.1", "11.4", "11.3.1", "11.2.1", "11.1", "11", "10.3"
+ "12.2_beta", "12.1_GM_seed", "12", "11.7", "11.6", "11.5", "11.4.1", "11.4", "11.3.1", "11.2.1", "11.1", "11", "10.3"
]
},
"xamarin": {
@@ -100,12 +100,8 @@
]
},
"android": {
- "platform-list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24"
- ],
- "build-tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0"
- ],
+ "platform_min_version": "24",
+ "build_tools_min_version": "24.0.0",
"extra-list": [
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
],
diff --git a/images/macos/toolsets/toolset-11.0.json b/images/macos/toolsets/toolset-11.0.json
index 99d2b40aa..e5cf3e64f 100644
--- a/images/macos/toolsets/toolset-11.0.json
+++ b/images/macos/toolsets/toolset-11.0.json
@@ -2,7 +2,7 @@
"xcode": {
"default": "11.7",
"versions": [
- "12.2_beta", "11.7"
+ "12.2_beta", "12.1_GM_seed", "11.7"
]
},
"xamarin": {
@@ -44,12 +44,8 @@
]
},
"android": {
- "platform-list": [
- "android-30", "android-29", "android-28", "android-27"
- ],
- "build-tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0"
- ],
+ "platform_min_version": "27",
+ "build_tools_min_version": "27.0.0",
"extra-list": [
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager"
],
diff --git a/images/win/post-generation/Choco.ps1 b/images/win/post-generation/Choco.ps1
new file mode 100644
index 000000000..3f8e7c8df
--- /dev/null
+++ b/images/win/post-generation/Choco.ps1
@@ -0,0 +1,2 @@
+# Step to avoid initial delay for choco scripts
+choco upgrade chocolatey
\ No newline at end of file
diff --git a/images/win/scripts/Installers/Install-DACFx.ps1 b/images/win/scripts/Installers/Install-DACFx.ps1
index 2160b1dcc..a59466d71 100644
--- a/images/win/scripts/Installers/Install-DACFx.ps1
+++ b/images/win/scripts/Installers/Install-DACFx.ps1
@@ -1,10 +1,10 @@
####################################################################################
## File: Install-DACFx.ps1
-## Desc: Install SQL ServerĀ® Data-Tier Application Framework (DACFx) for Windows
+## Desc: Install SQL ServerĀ® Data-Tier Application Framework (DacFx) for Windows
####################################################################################
$InstallerName = "DacFramework.msi"
-$InstallerUrl = "https://go.microsoft.com/fwlink/?linkid=2134206"
+$InstallerUrl = "https://go.microsoft.com/fwlink/?linkid=2143544"
Install-Binary -Url $InstallerUrl -Name $InstallerName
diff --git a/images/win/scripts/Installers/Install-Miniconda.ps1 b/images/win/scripts/Installers/Install-Miniconda.ps1
index 0b2f59c88..71706b3bc 100644
--- a/images/win/scripts/Installers/Install-Miniconda.ps1
+++ b/images/win/scripts/Installers/Install-Miniconda.ps1
@@ -5,10 +5,8 @@
$CondaDestination = "C:\Miniconda"
-# Lock to Miniconda 4.6 until we do the work to run `conda init` for the vsts user
-# Then we can go back to installing the latest Miniconda
-# $url = "https://repo.continuum.io/miniconda/Miniconda3-latest-Windows-x86_64.exe"
-$InstallerName = "Miniconda3-4.6.14-Windows-x86_64.exe"
+# Install the latest Miniconda
+$InstallerName = "Miniconda3-latest-Windows-x86_64.exe"
$InstallerUrl = "https://repo.continuum.io/miniconda/${InstallerName}"
$ArgumentList = ("/S", "/AddToPath=0", "/RegisterPython=0", "/D=$CondaDestination")
diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1
index f83157748..1b3bf299a 100644
--- a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1
+++ b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1
@@ -165,6 +165,7 @@ $markdown += New-MDNewLine
$markdown += New-MDHeader "Database tools" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-AzCosmosDBEmulatorVersion),
+ (Get-DacFxVersion),
(Get-SQLPSVersion),
(Get-MySQLVersion)
)
diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1
index 6c4034871..690f36764 100644
--- a/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1
+++ b/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1
@@ -254,3 +254,9 @@ function Get-AZDSVersion {
$azdsVersion = $(azds --version) | Select-String "(\d+\.\d+\.\d+.\d+)"
return "Azure Dev Spaces CLI $azdsVersion"
}
+
+function Get-DacFxVersion {
+ cd "C:\Program Files\Microsoft SQL Server\150\DAC\bin\"
+ $dacfxversion = (./sqlpackage.exe /version)
+ return "DacFx $dacfxversion"
+}
\ No newline at end of file
diff --git a/images/win/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json
index 5e0b23c6b..fef0a3fcb 100644
--- a/images/win/toolsets/toolset-2016.json
+++ b/images/win/toolsets/toolset-2016.json
@@ -10,7 +10,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
],
"default": "3.7.*"
},
@@ -24,7 +25,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json
index bf1d0dff6..c76c9701b 100644
--- a/images/win/toolsets/toolset-2019.json
+++ b/images/win/toolsets/toolset-2019.json
@@ -10,7 +10,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
],
"default": "3.7.*"
},
@@ -24,7 +25,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
diff --git a/images/win/windows2016.json b/images/win/windows2016.json
index d65286497..3c4b65663 100644
--- a/images/win/windows2016.json
+++ b/images/win/windows2016.json
@@ -85,7 +85,7 @@
{
"type": "file",
"source": "{{ template_dir }}/post-generation",
- "destination": "C:/post-generation"
+ "destination": "C:/"
},
{
"type": "file",
diff --git a/images/win/windows2019.json b/images/win/windows2019.json
index 6e0ba8669..6609b5b38 100644
--- a/images/win/windows2019.json
+++ b/images/win/windows2019.json
@@ -85,7 +85,7 @@
{
"type": "file",
"source": "{{ template_dir }}/post-generation",
- "destination": "C:/post-generation"
+ "destination": "C:/"
},
{
"type": "file",