mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-20 06:29:50 +00:00
Merge branch 'main' of https://github.com/actions/virtual-environments into v-malob/big-sur
This commit is contained in:
3
.gitattributes
vendored
3
.gitattributes
vendored
@@ -1,2 +1 @@
|
|||||||
# Do not normalize line endings
|
* text=auto eol=lf
|
||||||
* -text
|
|
||||||
20
.github/workflows/issue-triager.yml
vendored
20
.github/workflows/issue-triager.yml
vendored
@@ -24,9 +24,21 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||||
script: |
|
script: |
|
||||||
github.issues.addLabels({
|
const issueLabels = await github.issues.listLabelsOnIssue({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo
|
||||||
labels: ['needs triage']
|
});
|
||||||
})
|
|
||||||
|
const isAnnouncement = issueLabels.data && issueLabels.data
|
||||||
|
.map(label => label.name)
|
||||||
|
.includes('Announcement');
|
||||||
|
|
||||||
|
if (!isAnnouncement) {
|
||||||
|
github.issues.addLabels({
|
||||||
|
issue_number: context.issue.number,
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
labels: ['needs triage']
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -16,27 +16,32 @@ Function Get-PackerTemplatePath {
|
|||||||
[ImageType] $ImageType
|
[ImageType] $ImageType
|
||||||
)
|
)
|
||||||
|
|
||||||
$relativePath = "N/A"
|
|
||||||
|
|
||||||
switch ($ImageType) {
|
switch ($ImageType) {
|
||||||
([ImageType]::Windows2016) {
|
([ImageType]::Windows2016) {
|
||||||
$relativePath = "\images\win\Windows2016-Azure.json"
|
$relativeTemplatePath = Join-Path "win" "windows2016.json"
|
||||||
}
|
}
|
||||||
([ImageType]::Windows2019) {
|
([ImageType]::Windows2019) {
|
||||||
$relativePath = "\images\win\Windows2019-Azure.json"
|
$relativeTemplatePath = Join-Path "win" "windows2019.json"
|
||||||
}
|
}
|
||||||
([ImageType]::Ubuntu1604) {
|
([ImageType]::Ubuntu1604) {
|
||||||
$relativePath = "\images\linux\ubuntu1604.json"
|
$relativeTemplatePath = Join-Path "linux" "ubuntu1604.json"
|
||||||
}
|
}
|
||||||
([ImageType]::Ubuntu1804) {
|
([ImageType]::Ubuntu1804) {
|
||||||
$relativePath = "\images\linux\ubuntu1804.json"
|
$relativeTemplatePath = Join-Path "linux" "ubuntu1804.json"
|
||||||
}
|
}
|
||||||
([ImageType]::Ubuntu2004) {
|
([ImageType]::Ubuntu2004) {
|
||||||
$relativePath = "\images\linux\ubuntu2004.json"
|
$relativeTemplatePath = Join-Path "linux" "ubuntu2004.json"
|
||||||
}
|
}
|
||||||
|
default { throw "Unknown type of image" }
|
||||||
}
|
}
|
||||||
|
|
||||||
return $RepositoryRoot + $relativePath;
|
$imageTemplatePath = [IO.Path]::Combine($RepositoryRoot, "images", $relativeTemplatePath)
|
||||||
|
|
||||||
|
if (-not (Test-Path $imageTemplatePath)) {
|
||||||
|
throw "Template for image '$ImageType' doesn't exist on path '$imageTemplatePath'"
|
||||||
|
}
|
||||||
|
|
||||||
|
return $imageTemplatePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
Function Get-LatestCommit {
|
Function Get-LatestCommit {
|
||||||
@@ -45,7 +50,7 @@ Function Get-LatestCommit {
|
|||||||
|
|
||||||
process {
|
process {
|
||||||
Write-Host "Latest commit:"
|
Write-Host "Latest commit:"
|
||||||
git log --pretty=format:"Date: %cd; Commit: %H - %s; Author: %an <%ae>" -1
|
git --no-pager log --pretty=format:"Date: %cd; Commit: %H - %s; Author: %an <%ae>" -1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,12 +92,12 @@ Function GenerateResourcesAndImage {
|
|||||||
[Parameter(Mandatory = $True)]
|
[Parameter(Mandatory = $True)]
|
||||||
[string] $ResourceGroupName,
|
[string] $ResourceGroupName,
|
||||||
[Parameter(Mandatory = $True)]
|
[Parameter(Mandatory = $True)]
|
||||||
[string] $ImageGenerationRepositoryRoot,
|
|
||||||
[Parameter(Mandatory = $True)]
|
|
||||||
[ImageType] $ImageType,
|
[ImageType] $ImageType,
|
||||||
[Parameter(Mandatory = $True)]
|
[Parameter(Mandatory = $True)]
|
||||||
[string] $AzureLocation,
|
[string] $AzureLocation,
|
||||||
[Parameter(Mandatory = $False)]
|
[Parameter(Mandatory = $False)]
|
||||||
|
[string] $ImageGenerationRepositoryRoot = $pwd,
|
||||||
|
[Parameter(Mandatory = $False)]
|
||||||
[int] $SecondsToWaitForServicePrincipalSetup = 30,
|
[int] $SecondsToWaitForServicePrincipalSetup = 30,
|
||||||
[Parameter(Mandatory = $False)]
|
[Parameter(Mandatory = $False)]
|
||||||
[string] $GithubFeedToken,
|
[string] $GithubFeedToken,
|
||||||
@@ -184,7 +189,12 @@ Function GenerateResourcesAndImage {
|
|||||||
|
|
||||||
Get-LatestCommit -ErrorAction SilentlyContinue
|
Get-LatestCommit -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
packer.exe build -on-error=ask `
|
$packerBinary = Get-Command "packer"
|
||||||
|
if (-not ($packerBinary)) {
|
||||||
|
throw "'packer' binary is not found on PATH"
|
||||||
|
}
|
||||||
|
|
||||||
|
& $packerBinary build -on-error=ask `
|
||||||
-var "client_id=$($spClientId)" `
|
-var "client_id=$($spClientId)" `
|
||||||
-var "client_secret=$($ServicePrincipalClientSecret)" `
|
-var "client_secret=$($ServicePrincipalClientSecret)" `
|
||||||
-var "subscription_id=$($SubscriptionId)" `
|
-var "subscription_id=$($SubscriptionId)" `
|
||||||
|
|||||||
@@ -16,5 +16,5 @@ pr:
|
|||||||
jobs:
|
jobs:
|
||||||
- template: image-generation.yml
|
- template: image-generation.yml
|
||||||
parameters:
|
parameters:
|
||||||
image_type: Windows2016-Azure
|
image_type: windows2016
|
||||||
image_readme_name: Windows2016-Readme.md
|
image_readme_name: Windows2016-Readme.md
|
||||||
@@ -16,5 +16,5 @@ pr:
|
|||||||
jobs:
|
jobs:
|
||||||
- template: image-generation.yml
|
- template: image-generation.yml
|
||||||
parameters:
|
parameters:
|
||||||
image_type: Windows2019-Azure
|
image_type: windows2019
|
||||||
image_readme_name: Windows2019-Readme.md
|
image_readme_name: Windows2019-Readme.md
|
||||||
@@ -7,10 +7,15 @@ jobs:
|
|||||||
variables:
|
variables:
|
||||||
- group: Mac-Cloud Image Generation
|
- group: Mac-Cloud Image Generation
|
||||||
- group: Mac-Cloud Image Generation Key Vault
|
- group: Mac-Cloud Image Generation Key Vault
|
||||||
- name: VirtualMachineName
|
|
||||||
value: $(Build.BuildNumber).$(System.JobAttempt)
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- pwsh: |
|
||||||
|
$cleanBuildNumber = "$(Build.BuildNumber)" -replace "(.+_unstable)(\.\d+)", '$1'
|
||||||
|
$virtualMachineName = "${cleanBuildNumber}.$(System.JobAttempt)"
|
||||||
|
echo "##vso[task.setvariable variable=VirtualMachineName;]$virtualMachineName"
|
||||||
|
echo "##vso[build.updatebuildnumber]$virtualMachineName"
|
||||||
|
displayName: Update BuildNumber
|
||||||
|
|
||||||
- checkout: self
|
- checkout: self
|
||||||
clean: true
|
clean: true
|
||||||
fetchDepth: 1
|
fetchDepth: 1
|
||||||
@@ -42,6 +47,16 @@ jobs:
|
|||||||
SourceFolder: 'images/macos/provision/log/'
|
SourceFolder: 'images/macos/provision/log/'
|
||||||
RemoveSourceFolder: true
|
RemoveSourceFolder: true
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: 'Select datastore'
|
||||||
|
inputs:
|
||||||
|
targetType: 'filePath'
|
||||||
|
filePath: ./images.CI/macos/select-datastore.ps1
|
||||||
|
arguments: -VMName "$(VirtualMachineName)" `
|
||||||
|
-VIServer "$(vcenter-server-v2)" `
|
||||||
|
-VIUserName "$(vcenter-username-v2)" `
|
||||||
|
-VIPassword "$(vcenter-password-v2)"
|
||||||
|
|
||||||
- pwsh: |
|
- pwsh: |
|
||||||
$SensitiveData = @(
|
$SensitiveData = @(
|
||||||
'IP address:',
|
'IP address:',
|
||||||
@@ -54,11 +69,11 @@ jobs:
|
|||||||
-var="vcenter_password=$(vcenter-password-v2)" `
|
-var="vcenter_password=$(vcenter-password-v2)" `
|
||||||
-var="vcenter_datacenter=$(vcenter-datacenter-v2)" `
|
-var="vcenter_datacenter=$(vcenter-datacenter-v2)" `
|
||||||
-var="cluster_or_esxi_host=$(esxi-cluster-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="output_folder=$(output-folder)" `
|
||||||
-var="vm_username=$(vm-username)" `
|
-var="vm_username=$(vm-username)" `
|
||||||
-var="vm_password=$(vm-password)" `
|
-var="vm_password=$(vm-password)" `
|
||||||
-var="build_id=${{ variables.VirtualMachineName }}" `
|
-var="build_id=$(VirtualMachineName)" `
|
||||||
-var="baseimage_name=${{ parameters.base_image_name }}" `
|
-var="baseimage_name=${{ parameters.base_image_name }}" `
|
||||||
-var="github_feed_token=$(github-feed-token)" `
|
-var="github_feed_token=$(github-feed-token)" `
|
||||||
-var="xcode_install_user=$(xcode-installation-user)" `
|
-var="xcode_install_user=$(xcode-installation-user)" `
|
||||||
@@ -85,7 +100,7 @@ jobs:
|
|||||||
ls $(Common.TestResultsDirectory)
|
ls $(Common.TestResultsDirectory)
|
||||||
|
|
||||||
echo "Put VM name to 'VM_Done_Name' file"
|
echo "Put VM name to 'VM_Done_Name' file"
|
||||||
echo "${{ variables.VirtualMachineName }}" > "$(Build.ArtifactStagingDirectory)/VM_Done_Name"
|
echo "$(VirtualMachineName)" > "$(Build.ArtifactStagingDirectory)/VM_Done_Name"
|
||||||
displayName: Prepare artifact
|
displayName: Prepare artifact
|
||||||
|
|
||||||
- bash: |
|
- bash: |
|
||||||
@@ -105,3 +120,26 @@ jobs:
|
|||||||
failTaskOnFailedTests: true
|
failTaskOnFailedTests: true
|
||||||
displayName: Publish test results
|
displayName: Publish test results
|
||||||
condition: always()
|
condition: always()
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: 'Move vm to cold storage and clear datastore tag'
|
||||||
|
condition: always()
|
||||||
|
inputs:
|
||||||
|
targetType: 'filePath'
|
||||||
|
filePath: ./images.CI/macos/move-vm.ps1
|
||||||
|
arguments: -VMName "$(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')
|
||||||
|
inputs:
|
||||||
|
targetType: 'filePath'
|
||||||
|
filePath: ./images.CI/macos/destroy-vm.ps1
|
||||||
|
arguments: -VMName "$(VirtualMachineName)" `
|
||||||
|
-VIServer "$(vcenter-server-v2)" `
|
||||||
|
-VIUserName "$(vcenter-username-v2)" `
|
||||||
|
-VIPassword "$(vcenter-password-v2)"
|
||||||
|
|||||||
95
images.CI/macos/destroy-vm.ps1
Normal file
95
images.CI/macos/destroy-vm.ps1
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
<#
|
||||||
|
.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)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[string]$VMName,
|
||||||
|
|
||||||
|
[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
|
||||||
|
|
||||||
|
# Check vm clone status
|
||||||
|
$chainId = (Get-VIEvent -Entity $VMName).ChainId
|
||||||
|
if ($chainId)
|
||||||
|
{
|
||||||
|
$task = Get-Task -Status Running | Where-Object { ($_.Name -eq 'CloneVM_Task') -and ($_.ExtensionData.Info.EventChainId -in $chainId) }
|
||||||
|
if ($task)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Stop-Task -Task $task -Confirm:$false -ErrorAction Stop
|
||||||
|
Write-Host "The vm '$VMName' clone task has been canceled"
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-Host "##vso[task.LogIssue type=error;]Failed to cancel the task"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove a vm
|
||||||
|
$vm = Get-VM -Name $VMName -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
if ($vm)
|
||||||
|
{
|
||||||
|
$vmState = $vm.PowerState
|
||||||
|
if ($vmState -ne "PoweredOff")
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$null = Stop-VM -VM $vm -Confirm:$false -ErrorAction Stop
|
||||||
|
Write-Host "The vm '$VMName' has been powered off"
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-Host "##vso[task.LogIssue type=error;]Failed to shutdown '$VMName'"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Remove-VM -VM $vm -DeletePermanently -Confirm:$false -ErrorAction Stop
|
||||||
|
Write-Host "The vm '$VMName' has been removed"
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-Host "##vso[task.LogIssue type=error;]Failed to remove '$VMName'"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Host "VM '$VMName' not found"
|
||||||
|
}
|
||||||
26
images.CI/macos/helpers.psm1
Normal file
26
images.CI/macos/helpers.psm1
Normal file
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
77
images.CI/macos/move-vm.ps1
Normal file
77
images.CI/macos/move-vm.ps1
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<#
|
||||||
|
.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
|
||||||
|
|
||||||
|
# Clear previously assigned tag with VM Name
|
||||||
|
try {
|
||||||
|
Remove-Tag $VMName -Confirm:$false
|
||||||
|
} catch {
|
||||||
|
Write-Host "Tag with $VMName doesn't exist"
|
||||||
|
}
|
||||||
|
|
||||||
|
$vm = Get-VM $VMName
|
||||||
|
|
||||||
|
if ($env:AGENT_JOBSTATUS -eq 'Failed') {
|
||||||
|
try {
|
||||||
|
if($vm.PowerState -ne "PoweredOff") {
|
||||||
|
Stop-VM -VM $vm -Confirm:$false -ErrorAction Stop
|
||||||
|
}
|
||||||
|
Set-VM -VM $vm -Name "${VMName}_failed" -Confirm:$false -ErrorAction Stop
|
||||||
|
Write-Host "VM has been successfully powered off and renamed to [${VMName}_failed]"
|
||||||
|
} catch {
|
||||||
|
Write-Host "##vso[task.LogIssue type=error;]Failed to power off and rename VM '$VMName'"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
Move-VM -Vm $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'"
|
||||||
|
}
|
||||||
105
images.CI/macos/select-datastore.ps1
Normal file
105
images.CI/macos/select-datastore.ps1
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
<#
|
||||||
|
.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]$VMName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[string]$VIServer,
|
||||||
|
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[string]$VIUserName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[string]$VIPassword,
|
||||||
|
|
||||||
|
[string]$TagCategory = "Busy"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Import helpers module
|
||||||
|
Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
|
||||||
|
|
||||||
|
function Select-DataStore {
|
||||||
|
param (
|
||||||
|
[string]$VMName,
|
||||||
|
[string]$TagCategory,
|
||||||
|
[string]$TemplateDatastore = "ds-local-Datastore-*",
|
||||||
|
[int]$ThresholdInGb = 400,
|
||||||
|
[int]$VMCount = 2,
|
||||||
|
[int]$Retries = 5
|
||||||
|
)
|
||||||
|
|
||||||
|
# 1. Name starts with ds-local-Datastore
|
||||||
|
# 2. FreespaceGB > 400 Gb
|
||||||
|
# 3. VM count on a datastore < 2
|
||||||
|
|
||||||
|
Write-Host "Start Datastore selection process..."
|
||||||
|
$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
|
||||||
|
|
||||||
|
$tag = Get-Tag -Category $TagCategory -Name $VMName -ErrorAction Ignore
|
||||||
|
if (-not $tag)
|
||||||
|
{
|
||||||
|
$tag = New-Tag -Name $VMName -Category $TagCategory
|
||||||
|
}
|
||||||
|
|
||||||
|
New-TagAssignment -Tag $tag -Entity $buildDatastore | Out-Null
|
||||||
|
|
||||||
|
# Wait for 60 seconds to check if any other tags are assigned to the same datastore
|
||||||
|
Start-Sleep -Seconds 60
|
||||||
|
# Take only first 2 tags, all the others will go to the next round
|
||||||
|
$tagAssignments = (Get-TagAssignment -Entity $buildDatastore).Tag.Name | Select-Object -First 2
|
||||||
|
$isAllow = $tagAssignments -contains $VMName
|
||||||
|
|
||||||
|
if ($isAllow)
|
||||||
|
{
|
||||||
|
Write-Host "Datastore selected successfully"
|
||||||
|
Write-Host "##vso[task.setvariable variable=buildDatastore;issecret=true]$buildDatastore"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove the tag if datastore wasn't selected
|
||||||
|
Remove-Tag $tag -Confirm:$false
|
||||||
|
|
||||||
|
$retries--
|
||||||
|
if ($retries -le 0)
|
||||||
|
{
|
||||||
|
Write-Host "##vso[task.LogIssue type=error;]No datastores found for the condition"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Datastore select failed, $retries left"
|
||||||
|
Select-DataStore -VMName $VMName -TagCategory $TagCategory -Retries $retries
|
||||||
|
}
|
||||||
|
|
||||||
|
# Connection to a vCenter Server system
|
||||||
|
Connect-VCServer
|
||||||
|
|
||||||
|
# Get a target datastore for current deployment
|
||||||
|
Select-DataStore -VMName $VMName -TagCategory $TagCategory
|
||||||
@@ -1,95 +1,100 @@
|
|||||||
| Announcements |
|
| Announcements |
|
||||||
|-|
|
|-|
|
||||||
| [Default Python will be switched to 3.8 on Ubuntu 20.04 on October, 6](https://github.com/actions/virtual-environments/issues/1591) |
|
| [Ubuntu-latest workflows will use Ubuntu-20.04](https://github.com/actions/virtual-environments/issues/1816) |
|
||||||
| [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) |
|
| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) |
|
||||||
***
|
***
|
||||||
# Ubuntu 16.04.7 LTS
|
# Ubuntu 16.04.7 LTS
|
||||||
- Image Version: 20200920.1
|
- Image Version: 20201015.1
|
||||||
|
|
||||||
## Installed Software
|
## Installed Software
|
||||||
### Language and Runtime
|
### Language and Runtime
|
||||||
- GNU C++ 5.5.0, 7.5.0, 8.4.0, 9.3.0
|
- GNU C++ 5.5.0, 7.5.0, 8.4.0, 9.3.0
|
||||||
- GNU Fortran 5.5.0, 8.4.0, 9.3.0
|
- GNU Fortran 5.5.0, 8.4.0, 9.3.0
|
||||||
- Clang 6.0.0, 8.0.0, 9.0.1
|
- Clang 6.0.0, 8.0.0, 9.0.1
|
||||||
- Erlang 11.0.3
|
- Erlang 11.1
|
||||||
- Mono 6.12.0.90
|
- Mono 6.12.0.90
|
||||||
- Node 12.18.4
|
- Node 12.19.0
|
||||||
- Python 2.7.12
|
- Python 2.7.12
|
||||||
- Python3 3.5.2
|
- Python3 3.5.2
|
||||||
- PowerShell 7.0.3
|
- PowerShell 7.0.3
|
||||||
- Ruby 2.3.1p112
|
- Ruby 2.3.1p112
|
||||||
- Swift 5.3
|
- Swift 5.3
|
||||||
- Julia 1.5.1
|
- Julia 1.5.2
|
||||||
|
|
||||||
### Package Management
|
### Package Management
|
||||||
- Homebrew 2.5.1
|
|
||||||
- Gem 3.1.4
|
- Gem 3.1.4
|
||||||
|
- Helm 3.3.4
|
||||||
|
- Homebrew 2.5.6
|
||||||
- Miniconda 4.8.3
|
- Miniconda 4.8.3
|
||||||
- Helm
|
|
||||||
- Npm 6.14.8
|
- Npm 6.14.8
|
||||||
- Yarn
|
|
||||||
- Pip 8.1.1
|
- Pip 8.1.1
|
||||||
- Pip3 8.1.1
|
- Pip3 8.1.1
|
||||||
- Vcpkg 2020.06.15
|
- Vcpkg 2020.06.15
|
||||||
|
- Yarn 1.22.5
|
||||||
|
|
||||||
### Project Management
|
### Project Management
|
||||||
- Ant 1.9.6
|
- Ant 1.9.6
|
||||||
- Gradle 6.6.1
|
- Gradle 6.7
|
||||||
- Maven 3.6.3
|
- Maven 3.6.3
|
||||||
- Sbt 1.3.13
|
- Sbt 1.4.0
|
||||||
|
|
||||||
### Tools
|
### Tools
|
||||||
- 7-Zip 9.20
|
- 7-Zip 9.20
|
||||||
- Ansible 2.9.13
|
- Ansible 2.9.14
|
||||||
- AzCopy10 10.6.0 (available by `azcopy10` alias)
|
- AzCopy10 10.6.0 (available by `azcopy10` alias)
|
||||||
- AzCopy7 7.3.0 (available by `azcopy` alias)
|
- AzCopy7 7.3.0 (available by `azcopy` alias)
|
||||||
- Bazel 3.5.0
|
- Bazel 3.6.0
|
||||||
- Bazelisk 1.6.1
|
- Bazelisk 1.7.2
|
||||||
- CMake 3.17.0
|
- CMake 3.17.0
|
||||||
|
- CodeQL Action Bundle 2.3.0
|
||||||
- curl 7.47.0
|
- curl 7.47.0
|
||||||
- Docker Compose 1.27.3
|
- Docker Compose 1.27.4
|
||||||
- Docker-Buildx 0.4.2
|
- Docker-Buildx 0.4.2
|
||||||
- Docker-Moby 19.03.12
|
- Docker-Moby 19.03.13
|
||||||
- Git 2.28.0
|
- Git 2.28.0
|
||||||
- Git LFS 2.12.0
|
- Git LFS 2.12.0
|
||||||
- Git-ftp 1.0.2
|
- Git-ftp 1.0.2
|
||||||
- Google Cloud SDK 310.0.0
|
- Google Cloud SDK 314.0.0
|
||||||
- Haveged 1.9.1
|
- Haveged 1.9.1
|
||||||
- Heroku 7.43.0
|
- Heroku 7.46.0
|
||||||
- HHVM (HipHop VM) 4.56.1
|
- HHVM (HipHop VM) 4.56.1
|
||||||
- jq 1.5
|
- jq 1.5
|
||||||
- Kind 0.9.0
|
- Kind 0.9.0
|
||||||
- Kubectl 1.19.2
|
- Kubectl 1.19.3
|
||||||
- Kustomize 3.8.4
|
- Kustomize 3.8.5
|
||||||
- Leiningen 2.9.4
|
- Leiningen 2.9.4
|
||||||
- m4 1.4.17
|
- m4 1.4.17
|
||||||
- Mercurial 4.4.1
|
- Mercurial 4.4.1
|
||||||
- Minikube 1.13.0
|
- Minikube 1.14.0
|
||||||
- Newman 5.2.0
|
- Newman 5.2.0
|
||||||
- nvm 0.35.3
|
- nvm 0.36.0
|
||||||
- Packer 1.6.2
|
- Packer 1.6.4
|
||||||
- PhantomJS 2.1.1
|
- PhantomJS 2.1.1
|
||||||
|
- Pulumi 2.12.0
|
||||||
|
- R 4.0.3
|
||||||
|
- Sphinx Open Source Search Server 2.2.9
|
||||||
- SVN 1.9.3
|
- SVN 1.9.3
|
||||||
- Swig 3.0.8
|
- Swig 3.0.8
|
||||||
- Terraform 0.13.3
|
- Terraform 0.13.4
|
||||||
- unzip 6.00
|
- unzip 6.00
|
||||||
- wget 1.17.1
|
- wget 1.17.1
|
||||||
|
- yamllint 1.2.1
|
||||||
- zip 3.0
|
- zip 3.0
|
||||||
- zstd 1.3.1
|
- zstd 1.3.1
|
||||||
|
|
||||||
### CLI Tools
|
### CLI Tools
|
||||||
- Alibaba Cloud CLI 3.0.59
|
- Alibaba Cloud CLI 3.0.60
|
||||||
- AWS CLI 1.18.142
|
- AWS CLI 1.18.158
|
||||||
- AWS CLI Session manager plugin 1.1.61.0
|
- AWS CLI Session manager plugin 1.2.7.0
|
||||||
- AWS SAM CLI 1.2.0
|
- AWS SAM CLI 1.6.2
|
||||||
- Azure CLI (azure-cli) 2.11.1
|
- Azure CLI (azure-cli) 2.13.0
|
||||||
- Azure CLI (azure-devops) 0.18.0
|
- Azure CLI (azure-devops) 0.18.0
|
||||||
- GitHub CLI
|
- GitHub CLI 1.1.0
|
||||||
- Hub CLI 2.14.2
|
- Hub CLI 2.14.2
|
||||||
- Netlify CLI 2.63.2
|
- Netlify CLI 2.65.6
|
||||||
- oc CLI 4.5.0
|
- oc CLI 4.5.0
|
||||||
- ORAS CLI 0.8.1
|
- ORAS CLI 0.8.1
|
||||||
- Vercel CLI 20.1.0
|
- Vercel CLI 20.1.2
|
||||||
|
|
||||||
### Java
|
### Java
|
||||||
| Version | Vendor | Environment Variable |
|
| Version | Vendor | Environment Variable |
|
||||||
@@ -102,43 +107,43 @@
|
|||||||
### PHP
|
### PHP
|
||||||
| Tool | Version |
|
| 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 |
|
| Composer | 1.10.15 |
|
||||||
| PHPUnit | 7.5.20 |
|
| PHPUnit | 7.5.20 |
|
||||||
|
|
||||||
### Haskell
|
### Haskell
|
||||||
- GHC 8.10.2
|
- GHC 8.10.2
|
||||||
- Cabal 3.4.0.0
|
- Cabal 3.4.0.0
|
||||||
- Stack 2.3.3
|
- Stack 2.5.1
|
||||||
|
|
||||||
### Rust Tools
|
### Rust Tools
|
||||||
- Rust 1.46.0
|
- Rust 1.47.0
|
||||||
- Rustup 1.22.1
|
- Rustup 1.22.1
|
||||||
- Rustdoc 1.46.0
|
- Rustdoc 1.47.0
|
||||||
- Cargo 1.46.0
|
- Cargo 1.47.0
|
||||||
|
|
||||||
#### Packages
|
#### Packages
|
||||||
- Bindgen 0.55.1
|
- Bindgen 0.55.1
|
||||||
- Cargo audit 0.12.0
|
- Cargo audit 0.12.1
|
||||||
- Cargo outdated 0.9.11
|
- Cargo outdated 0.9.11
|
||||||
- Cargo clippy 0.0.212
|
- Cargo clippy 0.0.212
|
||||||
- Cbindgen 0.14.5
|
- Cbindgen 0.15.0
|
||||||
- Rustfmt 1.4.18
|
- Rustfmt 1.4.20
|
||||||
|
|
||||||
### Browsers and Drivers
|
### Browsers and Drivers
|
||||||
- Google Chrome 85.0.4183.102
|
- Google Chrome 86.0.4240.75
|
||||||
- ChromeDriver 85.0.4183.87
|
- ChromeDriver 86.0.4240.22
|
||||||
- Mozilla Firefox 80.0.1
|
- Mozilla Firefox 81.0.2
|
||||||
- Geckodriver 0.27.0
|
- Geckodriver 0.27.0
|
||||||
|
|
||||||
### .NET Core SDK
|
### .NET Core 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.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 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.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402
|
- 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.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 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 2.1.811 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403
|
||||||
|
|
||||||
### Az Module
|
### Az Module
|
||||||
- 1.0.0 1.6.0 2.3.2 2.6.0 2.8.0 3.1.0 3.5.0 3.8.0 4.3.0 4.4.0 4.6.0
|
- 1.0.0 1.6.0 2.3.2 2.6.0 2.8.0 3.1.0 3.5.0 3.8.0 4.3.0 4.4.0 4.6.0 4.7.0
|
||||||
|
|
||||||
### Databases
|
### Databases
|
||||||
- Postgre SQL 12.4
|
- Postgre SQL 13.0
|
||||||
- MongoDB 4.4.1
|
- MongoDB 4.4.1
|
||||||
- sqlite3 3.11.0
|
- sqlite3 3.11.0
|
||||||
|
|
||||||
@@ -162,43 +167,44 @@
|
|||||||
- 3.5.10
|
- 3.5.10
|
||||||
- 3.6.12
|
- 3.6.12
|
||||||
- 3.7.9
|
- 3.7.9
|
||||||
- 3.8.5
|
- 3.8.6
|
||||||
|
- 3.9.0
|
||||||
|
|
||||||
#### PyPy
|
#### PyPy
|
||||||
- 2.7.13 [PyPy 7.3.1]
|
- 2.7.13 [PyPy 7.3.2]
|
||||||
- 3.6.9 [PyPy 7.3.1]
|
- 3.6.9 [PyPy 7.3.2]
|
||||||
|
|
||||||
#### Node.js
|
#### Node.js
|
||||||
- 8.17.0
|
- 8.17.0
|
||||||
- 10.22.1
|
- 10.22.1
|
||||||
- 12.18.4
|
- 12.19.0
|
||||||
- 14.11.0
|
- 14.13.1
|
||||||
|
|
||||||
#### Go
|
#### Go
|
||||||
- 1.11.13
|
- 1.11.13
|
||||||
- 1.12.17
|
- 1.12.17
|
||||||
- 1.13.15
|
- 1.13.15
|
||||||
- 1.14.9
|
- 1.14.10
|
||||||
- 1.15.2
|
- 1.15.3
|
||||||
|
|
||||||
#### Boost
|
#### Boost
|
||||||
- 1.69.0
|
- 1.69.0
|
||||||
- 1.72.0
|
- 1.72.0
|
||||||
|
|
||||||
### Android
|
### Android
|
||||||
| Package Name | Version |
|
| Package Name | Version |
|
||||||
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Android SDK Platform-Tools | 30.0.4 |
|
| Android SDK Platform-Tools | 30.0.4 |
|
||||||
| Android SDK Tools | 26.1.1 |
|
| Android SDK Tools | 26.1.1 |
|
||||||
| Android SDK Platforms | android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2)<br>android-23 (rev 3)<br>android-22 (rev 2)<br>android-21 (rev 2)<br>android-19 (rev 4)<br>android-17 (rev 3)<br>android-15 (rev 5)<br>android-10 (rev 2) |
|
| Android SDK Platforms | android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2)<br>android-23 (rev 3)<br>android-22 (rev 2)<br>android-21 (rev 2)<br>android-20 (rev 2)<br>android-19 (rev 4)<br>android-18 (rev 3)<br>android-17 (rev 3)<br>android-16 (rev 5)<br>android-15 (rev 5)<br>android-14 (rev 4)<br>android-13 (rev 1)<br>android-12 (rev 3)<br>android-11 (rev 2)<br>android-10 (rev 2) |
|
||||||
| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2<br>29.0.0 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3<br>23.0.1 23.0.2 23.0.3<br>22.0.1<br>21.1.2<br>20.0.0<br>19.1.0<br>17.0.0 |
|
| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3<br>23.0.1 23.0.2 23.0.3<br>22.0.1<br>21.1.2<br>20.0.0<br>19.1.0 |
|
||||||
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
|
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
|
||||||
| NDK | 21.3.6528147 |
|
| NDK | 21.3.6528147 |
|
||||||
| Android Support Repository | 47.0.0 |
|
| Android Support Repository | 47.0.0 |
|
||||||
| Google Play services | 49 |
|
| Google Play services | 49 |
|
||||||
| Google Repository | 58 |
|
| Google Repository | 58 |
|
||||||
| SDK Patch Applier v4 | 1 |
|
| SDK Patch Applier v4 | 1 |
|
||||||
| CMake | 3.10.2<br>3.6.4111459 |
|
| CMake | 3.10.2<br>3.6.4111459 |
|
||||||
|
|
||||||
### Cached Docker images
|
### Cached Docker images
|
||||||
- alpine:3.7
|
- alpine:3.7
|
||||||
|
|||||||
@@ -1,98 +1,104 @@
|
|||||||
| Announcements |
|
| Announcements |
|
||||||
|-|
|
|-|
|
||||||
| [Default Python will be switched to 3.8 on Ubuntu 20.04 on October, 6](https://github.com/actions/virtual-environments/issues/1591) |
|
| [Ubuntu-latest workflows will use Ubuntu-20.04](https://github.com/actions/virtual-environments/issues/1816) |
|
||||||
| [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) |
|
| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) |
|
||||||
***
|
***
|
||||||
# Ubuntu 18.04.5 LTS
|
# Ubuntu 18.04.5 LTS
|
||||||
- Image Version: 20200920.1
|
- Image Version: 20201015.1
|
||||||
|
|
||||||
## Installed Software
|
## Installed Software
|
||||||
### Language and Runtime
|
### Language and Runtime
|
||||||
- GNU C++ 7.5.0, 8.4.0, 9.3.0
|
- GNU C++ 7.5.0, 8.4.0, 9.3.0, 10.1.0
|
||||||
- GNU Fortran 7.5.0, 8.4.0, 9.3.0
|
- GNU Fortran 7.5.0, 8.4.0, 9.3.0
|
||||||
- Clang 6.0.0, 8.0.0, 9.0.0
|
- Clang 6.0.0, 8.0.0, 9.0.0
|
||||||
- Erlang 11.0.3
|
- Erlang 11.1
|
||||||
- Mono 6.12.0.90
|
- Mono 6.12.0.90
|
||||||
- Node 12.18.4
|
- Node 12.19.0
|
||||||
- Python 2.7.17
|
- Python 2.7.17
|
||||||
- Python3 3.6.9
|
- Python3 3.6.9
|
||||||
- PowerShell 7.0.3
|
- PowerShell 7.0.3
|
||||||
- Ruby 2.5.1p57
|
- Ruby 2.5.1p57
|
||||||
- Swift 5.3
|
- Swift 5.3
|
||||||
- Julia 1.5.1
|
- Julia 1.5.2
|
||||||
|
|
||||||
### Package Management
|
### Package Management
|
||||||
- Homebrew 2.5.1
|
|
||||||
- Gem 3.1.4
|
- Gem 3.1.4
|
||||||
|
- Helm 3.3.4
|
||||||
|
- Homebrew 2.5.6
|
||||||
- Miniconda 4.8.3
|
- Miniconda 4.8.3
|
||||||
- Helm
|
|
||||||
- Npm 6.14.8
|
- Npm 6.14.8
|
||||||
- Yarn
|
|
||||||
- Pip 9.0.1
|
- Pip 9.0.1
|
||||||
- Pip3 9.0.1
|
- Pip3 9.0.1
|
||||||
|
- Pipx 0.15.5.1
|
||||||
- Vcpkg 2020.06.15
|
- Vcpkg 2020.06.15
|
||||||
|
- Yarn 1.22.5
|
||||||
|
|
||||||
### Project Management
|
### Project Management
|
||||||
- Ant 1.10.5
|
- Ant 1.10.5
|
||||||
- Gradle 6.6.1
|
- Gradle 6.7
|
||||||
- Maven 3.6.3
|
- Maven 3.6.3
|
||||||
- Sbt 1.3.13
|
- Sbt 1.4.0
|
||||||
|
|
||||||
### Tools
|
### Tools
|
||||||
- 7-Zip 16.02
|
- 7-Zip 16.02
|
||||||
- Ansible 2.9.13
|
- Ansible 2.9.14
|
||||||
- AzCopy10 10.6.0 (available by `azcopy10` alias)
|
- AzCopy10 10.6.0 (available by `azcopy10` alias)
|
||||||
- AzCopy7 7.3.0 (available by `azcopy` alias)
|
- AzCopy7 7.3.0 (available by `azcopy` alias)
|
||||||
- Bazel 3.5.0
|
- Bazel 3.6.0
|
||||||
- Bazelisk 1.6.1
|
- Bazelisk 1.7.2
|
||||||
- Buildah
|
- Buildah 1.16.4
|
||||||
- CMake 3.17.0
|
- CMake 3.17.0
|
||||||
|
- CodeQL Action Bundle 2.3.0
|
||||||
- curl 7.58.0
|
- curl 7.58.0
|
||||||
- Docker Compose 1.27.3
|
- Docker Compose 1.27.4
|
||||||
- Docker-Buildx 0.4.2
|
- Docker-Buildx 0.4.2
|
||||||
- Docker-Moby 19.03.12
|
- Docker-Moby 19.03.13
|
||||||
- Git 2.28.0
|
- Git 2.28.0
|
||||||
- Git LFS 2.12.0
|
- Git LFS 2.12.0
|
||||||
- Git-ftp 1.3.1
|
- Git-ftp 1.3.1
|
||||||
- Google Cloud SDK 310.0.0
|
- Google Cloud SDK 314.0.0
|
||||||
- Haveged 1.9.1
|
- Haveged 1.9.1
|
||||||
- Heroku 7.43.0
|
- Heroku 7.46.0
|
||||||
- HHVM (HipHop VM) 4.75.0
|
- HHVM (HipHop VM) 4.79.0
|
||||||
- jq 1.5
|
- jq 1.5
|
||||||
- Kind 0.9.0
|
- Kind 0.9.0
|
||||||
- Kubectl 1.19.2
|
- Kubectl 1.19.3
|
||||||
- Kustomize 3.8.4
|
- Kustomize 3.8.5
|
||||||
- Leiningen 2.9.4
|
- Leiningen 2.9.4
|
||||||
- m4 1.4.18
|
- m4 1.4.18
|
||||||
- Mercurial 4.5.3
|
- Mercurial 4.5.3
|
||||||
- Minikube 1.13.0
|
- Minikube 1.14.0
|
||||||
- Newman 5.2.0
|
- Newman 5.2.0
|
||||||
- nvm 0.35.3
|
- nvm 0.36.0
|
||||||
- Packer 1.6.2
|
- Packer 1.6.4
|
||||||
- PhantomJS 2.1.1
|
- PhantomJS 2.1.1
|
||||||
- Podman
|
- Podman 2.1.1
|
||||||
- Skopeo 1.1.1
|
- Pulumi 2.12.0
|
||||||
|
- R 4.0.3
|
||||||
|
- Skopeo 1.2.0
|
||||||
|
- Sphinx Open Source Search Server 2.2.11
|
||||||
- SVN 1.9.7
|
- SVN 1.9.7
|
||||||
- Swig 3.0.12
|
- Swig 3.0.12
|
||||||
- Terraform 0.13.3
|
- Terraform 0.13.4
|
||||||
- unzip 6.00
|
- unzip 6.00
|
||||||
- wget 1.19.4
|
- wget 1.19.4
|
||||||
|
- yamllint 1.25.0
|
||||||
- zip 3.0
|
- zip 3.0
|
||||||
- zstd 1.3.3
|
- zstd 1.3.3
|
||||||
|
|
||||||
### CLI Tools
|
### CLI Tools
|
||||||
- Alibaba Cloud CLI 3.0.59
|
- Alibaba Cloud CLI 3.0.60
|
||||||
- AWS CLI 1.18.142
|
- AWS CLI 1.18.157
|
||||||
- AWS CLI Session manager plugin 1.1.61.0
|
- AWS CLI Session manager plugin 1.1.61.0
|
||||||
- AWS SAM CLI 1.2.0
|
- AWS SAM CLI 1.6.2
|
||||||
- Azure CLI (azure-cli) 2.11.1
|
- Azure CLI (azure-cli) 2.13.0
|
||||||
- Azure CLI (azure-devops) 0.18.0
|
- Azure CLI (azure-devops) 0.18.0
|
||||||
- GitHub CLI
|
- GitHub CLI 1.1.0
|
||||||
- Hub CLI 2.14.2
|
- Hub CLI 2.14.2
|
||||||
- Netlify CLI 2.63.2
|
- Netlify CLI 2.65.5
|
||||||
- oc CLI 4.5.0
|
- oc CLI 4.5.0
|
||||||
- ORAS CLI 0.8.1
|
- ORAS CLI 0.8.1
|
||||||
- Vercel CLI 20.1.0
|
- Vercel CLI 20.1.2
|
||||||
|
|
||||||
### Java
|
### Java
|
||||||
| Version | Vendor | Environment Variable |
|
| Version | Vendor | Environment Variable |
|
||||||
@@ -105,8 +111,8 @@
|
|||||||
### PHP
|
### PHP
|
||||||
| Tool | Version |
|
| 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 |
|
| Composer | 1.10.15 |
|
||||||
| PHPUnit | 7.5.20 |
|
| PHPUnit | 7.5.20 |
|
||||||
|
|
||||||
### Haskell
|
### Haskell
|
||||||
@@ -115,33 +121,33 @@
|
|||||||
- Stack 2.3.3
|
- Stack 2.3.3
|
||||||
|
|
||||||
### Rust Tools
|
### Rust Tools
|
||||||
- Rust 1.46.0
|
- Rust 1.47.0
|
||||||
- Rustup 1.22.1
|
- Rustup 1.22.1
|
||||||
- Rustdoc 1.46.0
|
- Rustdoc 1.47.0
|
||||||
- Cargo 1.46.0
|
- Cargo 1.47.0
|
||||||
|
|
||||||
#### Packages
|
#### Packages
|
||||||
- Bindgen 0.55.1
|
- Bindgen 0.55.1
|
||||||
- Cargo audit 0.12.0
|
- Cargo audit 0.12.1
|
||||||
- Cargo outdated 0.9.11
|
- Cargo outdated 0.9.11
|
||||||
- Cargo clippy 0.0.212
|
- Cargo clippy 0.0.212
|
||||||
- Cbindgen 0.14.5
|
- Cbindgen 0.15.0
|
||||||
- Rustfmt 1.4.18
|
- Rustfmt 1.4.20
|
||||||
|
|
||||||
### Browsers and Drivers
|
### Browsers and Drivers
|
||||||
- Google Chrome 85.0.4183.102
|
- Google Chrome 86.0.4240.75
|
||||||
- ChromeDriver 85.0.4183.87
|
- ChromeDriver 86.0.4240.22
|
||||||
- Mozilla Firefox 80.0.1
|
- Mozilla Firefox 81.0
|
||||||
- Geckodriver 0.27.0
|
- Geckodriver 0.27.0
|
||||||
|
|
||||||
### .NET Core SDK
|
### .NET Core 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.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 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.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402
|
- 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.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 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 2.1.811 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403
|
||||||
|
|
||||||
### Az Module
|
### Az Module
|
||||||
- 1.0.0 1.6.0 2.3.2 2.6.0 2.8.0 3.1.0 3.5.0 3.8.0 4.3.0 4.4.0 4.6.0
|
- 1.0.0 1.6.0 2.3.2 2.6.0 2.8.0 3.1.0 3.5.0 3.8.0 4.3.0 4.4.0 4.6.0 4.7.0
|
||||||
|
|
||||||
### Databases
|
### Databases
|
||||||
- Postgre SQL 12.4
|
- Postgre SQL 13.0
|
||||||
- MongoDB 4.4.1
|
- MongoDB 4.4.1
|
||||||
- sqlite3 3.22.0
|
- sqlite3 3.22.0
|
||||||
|
|
||||||
@@ -165,43 +171,44 @@
|
|||||||
- 3.5.10
|
- 3.5.10
|
||||||
- 3.6.12
|
- 3.6.12
|
||||||
- 3.7.9
|
- 3.7.9
|
||||||
- 3.8.5
|
- 3.8.6
|
||||||
|
- 3.9.0
|
||||||
|
|
||||||
#### PyPy
|
#### PyPy
|
||||||
- 2.7.13 [PyPy 7.3.1]
|
- 2.7.13 [PyPy 7.3.2]
|
||||||
- 3.6.9 [PyPy 7.3.1]
|
- 3.6.9 [PyPy 7.3.2]
|
||||||
|
|
||||||
#### Node.js
|
#### Node.js
|
||||||
- 8.17.0
|
- 8.17.0
|
||||||
- 10.22.1
|
- 10.22.1
|
||||||
- 12.18.4
|
- 12.19.0
|
||||||
- 14.11.0
|
- 14.13.1
|
||||||
|
|
||||||
#### Go
|
#### Go
|
||||||
- 1.11.13
|
- 1.11.13
|
||||||
- 1.12.17
|
- 1.12.17
|
||||||
- 1.13.15
|
- 1.13.15
|
||||||
- 1.14.9
|
- 1.14.10
|
||||||
- 1.15.2
|
- 1.15.3
|
||||||
|
|
||||||
#### Boost
|
#### Boost
|
||||||
- 1.69.0
|
- 1.69.0
|
||||||
- 1.72.0
|
- 1.72.0
|
||||||
|
|
||||||
### Android
|
### Android
|
||||||
| Package Name | Version |
|
| Package Name | Version |
|
||||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Android SDK Platform-Tools | 30.0.4 |
|
| Android SDK Platform-Tools | 30.0.4 |
|
||||||
| Android SDK Tools | 26.1.1 |
|
| Android SDK Tools | 26.1.1 |
|
||||||
| Android SDK Platforms | android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2)<br>android-23 (rev 3)<br>android-22 (rev 2)<br>android-21 (rev 2)<br>android-19 (rev 4)<br>android-17 (rev 3) |
|
| Android SDK Platforms | android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2)<br>android-23 (rev 3)<br>android-22 (rev 2)<br>android-21 (rev 2)<br>android-20 (rev 2)<br>android-19 (rev 4)<br>android-18 (rev 3)<br>android-17 (rev 3) |
|
||||||
| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2<br>29.0.0 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3<br>23.0.1 23.0.2 23.0.3<br>22.0.1<br>21.1.2<br>20.0.0<br>19.1.0<br>17.0.0 |
|
| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3<br>23.0.1 23.0.2 23.0.3<br>22.0.1<br>21.1.2<br>20.0.0<br>19.1.0 |
|
||||||
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
|
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
|
||||||
| NDK | 21.3.6528147 |
|
| NDK | 21.3.6528147 |
|
||||||
| Android Support Repository | 47.0.0 |
|
| Android Support Repository | 47.0.0 |
|
||||||
| Google Play services | 49 |
|
| Google Play services | 49 |
|
||||||
| Google Repository | 58 |
|
| Google Repository | 58 |
|
||||||
| SDK Patch Applier v4 | 1 |
|
| SDK Patch Applier v4 | 1 |
|
||||||
| CMake | 3.10.2<br>3.6.4111459 |
|
| CMake | 3.10.2<br>3.6.4111459 |
|
||||||
|
|
||||||
### Cached Docker images
|
### Cached Docker images
|
||||||
- alpine:3.7
|
- alpine:3.7
|
||||||
@@ -221,6 +228,6 @@
|
|||||||
- ubuntu:14.04
|
- ubuntu:14.04
|
||||||
|
|
||||||
### Installed apt packages
|
### 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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,98 +1,104 @@
|
|||||||
| Announcements |
|
| Announcements |
|
||||||
|-|
|
|-|
|
||||||
| [Default Python will be switched to 3.8 on Ubuntu 20.04 on October, 6](https://github.com/actions/virtual-environments/issues/1591) |
|
| [Ubuntu-latest workflows will use Ubuntu-20.04](https://github.com/actions/virtual-environments/issues/1816) |
|
||||||
| [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) |
|
| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) |
|
||||||
***
|
***
|
||||||
# Ubuntu 20.04.1 LTS
|
# Ubuntu 20.04.1 LTS
|
||||||
- Image Version: 20200920.1
|
- Image Version: 20201015.1
|
||||||
|
|
||||||
## Installed Software
|
## Installed Software
|
||||||
### Language and Runtime
|
### Language and Runtime
|
||||||
- GNU C++ 7.5.0, 8.4.0, 9.3.0
|
- GNU C++ 7.5.0, 8.4.0, 9.3.0, 10.2.0
|
||||||
- GNU Fortran 8.4.0, 9.3.0
|
- GNU Fortran 8.4.0, 9.3.0
|
||||||
- Clang 10.0.1, 8.0.1, 9.0.1
|
- Clang 8.0.1, 9.0.1, 10.0.0
|
||||||
- Erlang 11.0.3
|
- Erlang 11.1
|
||||||
- Mono 6.12.0.90
|
- Mono 6.12.0.90
|
||||||
- Node 12.18.4
|
- Node 12.19.0
|
||||||
- Python 2.7.18rc1
|
- Python 3.8.5
|
||||||
- Python3 3.8.2
|
- Python3 3.8.5
|
||||||
- PowerShell 7.0.3
|
- PowerShell 7.0.3
|
||||||
- Ruby 2.7.0p0
|
- Ruby 2.7.0p0
|
||||||
- Swift 5.3
|
- Swift 5.3
|
||||||
- Julia 1.5.1
|
- Julia 1.5.2
|
||||||
|
|
||||||
### Package Management
|
### Package Management
|
||||||
- Homebrew 2.5.1
|
|
||||||
- Gem 3.1.2
|
- Gem 3.1.2
|
||||||
|
- Helm 3.3.4
|
||||||
|
- Homebrew 2.5.6
|
||||||
- Miniconda 4.8.3
|
- Miniconda 4.8.3
|
||||||
- Helm 3.3.3
|
|
||||||
- Npm 6.14.8
|
- Npm 6.14.8
|
||||||
- Yarn 1.22.5
|
- Pip 20.0.2
|
||||||
- Pip 20.2.3
|
|
||||||
- Pip3 20.0.2
|
- Pip3 20.0.2
|
||||||
|
- Pipx 0.15.5.1
|
||||||
- Vcpkg 2020.06.15
|
- Vcpkg 2020.06.15
|
||||||
|
- Yarn 1.22.5
|
||||||
|
|
||||||
### Project Management
|
### Project Management
|
||||||
- Ant 1.10.7
|
- Ant 1.10.7
|
||||||
- Gradle 6.6.1
|
- Gradle 6.7
|
||||||
- Maven 3.6.3
|
- Maven 3.6.3
|
||||||
- Sbt 1.3.13
|
- Sbt 1.4.0
|
||||||
|
|
||||||
### Tools
|
### Tools
|
||||||
- 7-Zip 16.02
|
- 7-Zip 16.02
|
||||||
- Ansible 2.9.6
|
- Ansible 2.9.6
|
||||||
- AzCopy10 10.6.0 (available by `azcopy10` alias)
|
- AzCopy10 10.6.0 (available by `azcopy10` alias)
|
||||||
- AzCopy7 7.3.0 (available by `azcopy` alias)
|
- AzCopy7 7.3.0 (available by `azcopy` alias)
|
||||||
- Bazel 3.5.0
|
- Bazel 3.6.0
|
||||||
- Bazelisk 1.6.1
|
- Bazelisk 1.7.2
|
||||||
- Buildah 1.16.1
|
- Buildah 1.16.4
|
||||||
- CMake 3.17.0
|
- CMake 3.17.0
|
||||||
|
- CodeQL Action Bundle 2.3.0
|
||||||
- curl 7.68.0
|
- curl 7.68.0
|
||||||
- Docker Compose 1.27.3
|
- Docker Compose 1.27.4
|
||||||
- Docker-Buildx 0.4.2
|
- Docker-Buildx 0.4.2
|
||||||
- Docker-Moby 19.03.12
|
- Docker-Moby 19.03.13
|
||||||
- Git 2.28.0
|
- Git 2.28.0
|
||||||
- Git LFS 2.12.0
|
- Git LFS 2.12.0
|
||||||
- Git-ftp 1.6.0
|
- Git-ftp 1.6.0
|
||||||
- Google Cloud SDK 310.0.0
|
- Google Cloud SDK 314.0.0
|
||||||
- Haveged 1.9.1
|
- Haveged 1.9.1
|
||||||
- Heroku 7.43.0
|
- Heroku 7.46.0
|
||||||
- HHVM (HipHop VM) 4.75.0
|
- HHVM (HipHop VM) 4.79.0
|
||||||
- jq 1.6
|
- jq 1.6
|
||||||
- Kind 0.9.0
|
- Kind 0.9.0
|
||||||
- Kubectl 1.19.2
|
- Kubectl 1.19.3
|
||||||
- Kustomize 3.8.4
|
- Kustomize 3.8.5
|
||||||
- Leiningen 2.9.4
|
- Leiningen 2.9.4
|
||||||
- m4 1.4.18
|
- m4 1.4.18
|
||||||
- Mercurial 5.3.1
|
- Mercurial 5.3.1
|
||||||
- Minikube 1.13.0
|
- Minikube 1.14.0
|
||||||
- Newman 5.2.0
|
- Newman 5.2.0
|
||||||
- nvm 0.35.3
|
- nvm 0.36.0
|
||||||
- Packer 1.6.2
|
- Packer 1.6.4
|
||||||
- PhantomJS 2.1.1
|
- PhantomJS 2.1.1
|
||||||
- Podman 2.0.6
|
- Podman 2.1.1
|
||||||
- Skopeo 1.1.1
|
- Pulumi 2.12.0
|
||||||
|
- R 4.0.3
|
||||||
|
- Skopeo 1.2.0
|
||||||
|
- Sphinx Open Source Search Server 2.2.11
|
||||||
- SVN 1.13.0
|
- SVN 1.13.0
|
||||||
- Swig 4.0.1
|
- Swig 4.0.1
|
||||||
- Terraform 0.13.3
|
- Terraform 0.13.4
|
||||||
- unzip 6.00
|
- unzip 6.00
|
||||||
- wget 1.20.3
|
- wget 1.20.3
|
||||||
|
- yamllint 1.25.0
|
||||||
- zip 3.0
|
- zip 3.0
|
||||||
- zstd 1.4.4
|
- zstd 1.4.4
|
||||||
|
|
||||||
### CLI Tools
|
### CLI Tools
|
||||||
- Alibaba Cloud CLI 3.0.59
|
- Alibaba Cloud CLI 3.0.60
|
||||||
- AWS CLI 2.0.50
|
- AWS CLI 2.0.56
|
||||||
- AWS CLI Session manager plugin 1.1.61.0
|
- AWS CLI Session manager plugin 1.1.61.0
|
||||||
- AWS SAM CLI 1.2.0
|
- AWS SAM CLI 1.6.2
|
||||||
- Azure CLI (azure-cli) 2.11.1
|
- Azure CLI (azure-cli) 2.13.0
|
||||||
- Azure CLI (azure-devops) 0.18.0
|
- Azure CLI (azure-devops) 0.18.0
|
||||||
- GitHub CLI 1.0.0
|
- GitHub CLI 1.1.0
|
||||||
- Hub CLI 2.14.2
|
- Hub CLI 2.14.2
|
||||||
- Netlify CLI 2.63.2
|
- Netlify CLI 2.65.5
|
||||||
- oc CLI 4.5.0
|
- oc CLI 4.5.0
|
||||||
- ORAS CLI 0.8.1
|
- ORAS CLI 0.8.1
|
||||||
- Vercel CLI 20.1.0
|
- Vercel CLI 20.1.2
|
||||||
|
|
||||||
### Java
|
### Java
|
||||||
| Version | Vendor | Environment Variable |
|
| Version | Vendor | Environment Variable |
|
||||||
@@ -103,8 +109,8 @@
|
|||||||
### PHP
|
### PHP
|
||||||
| Tool | Version |
|
| Tool | Version |
|
||||||
| -------- | ------- |
|
| -------- | ------- |
|
||||||
| PHP | 7.4.10 |
|
| PHP | 7.4.11 |
|
||||||
| Composer | 1.10.13 |
|
| Composer | 1.10.15 |
|
||||||
| PHPUnit | 7.5.20 |
|
| PHPUnit | 7.5.20 |
|
||||||
|
|
||||||
### Haskell
|
### Haskell
|
||||||
@@ -113,33 +119,33 @@
|
|||||||
- Stack 2.3.3
|
- Stack 2.3.3
|
||||||
|
|
||||||
### Rust Tools
|
### Rust Tools
|
||||||
- Rust 1.46.0
|
- Rust 1.47.0
|
||||||
- Rustup 1.22.1
|
- Rustup 1.22.1
|
||||||
- Rustdoc 1.46.0
|
- Rustdoc 1.47.0
|
||||||
- Cargo 1.46.0
|
- Cargo 1.47.0
|
||||||
|
|
||||||
#### Packages
|
#### Packages
|
||||||
- Bindgen 0.55.1
|
- Bindgen 0.55.1
|
||||||
- Cargo audit 0.12.0
|
- Cargo audit 0.12.1
|
||||||
- Cargo outdated 0.9.11
|
- Cargo outdated 0.9.11
|
||||||
- Cargo clippy 0.0.212
|
- Cargo clippy 0.0.212
|
||||||
- Cbindgen 0.14.5
|
- Cbindgen 0.15.0
|
||||||
- Rustfmt 1.4.18
|
- Rustfmt 1.4.20
|
||||||
|
|
||||||
### Browsers and Drivers
|
### Browsers and Drivers
|
||||||
- Google Chrome 85.0.4183.102
|
- Google Chrome 86.0.4240.75
|
||||||
- ChromeDriver 85.0.4183.87
|
- ChromeDriver 86.0.4240.22
|
||||||
- Mozilla Firefox 80.0.1
|
- Mozilla Firefox 81.0
|
||||||
- Geckodriver 0.27.0
|
- Geckodriver 0.27.0
|
||||||
|
|
||||||
### .NET Core SDK
|
### .NET Core 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.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 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.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402
|
- 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.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 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 2.1.811 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403
|
||||||
|
|
||||||
### Az Module
|
### Az Module
|
||||||
- 4.6.1
|
- 4.8.0
|
||||||
|
|
||||||
### Databases
|
### Databases
|
||||||
- Postgre SQL 12.4
|
- Postgre SQL 13.0
|
||||||
- MongoDB 4.4.1
|
- MongoDB 4.4.1
|
||||||
- sqlite3 3.31.1
|
- sqlite3 3.31.1
|
||||||
|
|
||||||
@@ -162,35 +168,36 @@
|
|||||||
- 3.5.10
|
- 3.5.10
|
||||||
- 3.6.12
|
- 3.6.12
|
||||||
- 3.7.9
|
- 3.7.9
|
||||||
- 3.8.5
|
- 3.8.6
|
||||||
|
- 3.9.0
|
||||||
|
|
||||||
#### PyPy
|
#### PyPy
|
||||||
- 2.7.13 [PyPy 7.3.1]
|
- 2.7.13 [PyPy 7.3.2]
|
||||||
- 3.6.9 [PyPy 7.3.1]
|
- 3.6.9 [PyPy 7.3.2]
|
||||||
|
|
||||||
#### Node.js
|
#### Node.js
|
||||||
- 8.17.0
|
- 8.17.0
|
||||||
- 10.22.1
|
- 10.22.1
|
||||||
- 12.18.4
|
- 12.19.0
|
||||||
- 14.11.0
|
- 14.13.1
|
||||||
|
|
||||||
#### Go
|
#### Go
|
||||||
- 1.14.9
|
- 1.14.10
|
||||||
- 1.15.2
|
- 1.15.3
|
||||||
|
|
||||||
### Android
|
### Android
|
||||||
| Package Name | Version |
|
| Package Name | Version |
|
||||||
| -------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
| -------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||||
| Android SDK Platform-Tools | 30.0.4 |
|
| Android SDK Platform-Tools | 30.0.4 |
|
||||||
| Android SDK Tools | 26.1.1 |
|
| Android SDK Tools | 26.1.1 |
|
||||||
| Android SDK Platforms | android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
|
| Android SDK Platforms | android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
|
||||||
| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2<br>29.0.0 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
|
| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
|
||||||
| NDK | 21.3.6528147 |
|
| NDK | 21.3.6528147 |
|
||||||
| Android Support Repository | 47.0.0 |
|
| Android Support Repository | 47.0.0 |
|
||||||
| Google Play services | 49 |
|
| Google Play services | 49 |
|
||||||
| Google Repository | 58 |
|
| Google Repository | 58 |
|
||||||
| SDK Patch Applier v4 | 1 |
|
| SDK Patch Applier v4 | 1 |
|
||||||
| CMake | 3.10.2 |
|
| CMake | 3.10.2 |
|
||||||
|
|
||||||
### Cached Docker images
|
### Cached Docker images
|
||||||
- alpine:3.7
|
- alpine:3.7
|
||||||
@@ -210,6 +217,6 @@
|
|||||||
- ubuntu:14.04
|
- ubuntu:14.04
|
||||||
|
|
||||||
### Installed apt packages
|
### 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-python2, 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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
11
images/linux/post-generation/homebrew-permissions.sh
Normal file
11
images/linux/post-generation/homebrew-permissions.sh
Normal file
@@ -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
|
||||||
11
images/linux/post-generation/rust-permissions.sh
Normal file
11
images/linux/post-generation/rust-permissions.sh
Normal file
@@ -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
|
||||||
@@ -5,14 +5,16 @@ function Get-OSName {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-CPPVersions {
|
function Get-CPPVersions {
|
||||||
$cppVersions = apt list --installed 2>&1 | Where-Object { $_ -match "g\+\+-\d+"} | ForEach-Object {
|
$result = Get-CommandResult "apt list --installed" -Multiline
|
||||||
|
$cppVersions = $result.Output | Where-Object { $_ -match "g\+\+-\d+"} | ForEach-Object {
|
||||||
& $_.Split("/")[0] --version | Select-Object -First 1 | Take-OutputPart -Part 3
|
& $_.Split("/")[0] --version | Select-Object -First 1 | Take-OutputPart -Part 3
|
||||||
} | Sort-Object {[Version]$_}
|
} | Sort-Object {[Version]$_}
|
||||||
return "GNU C++ " + ($cppVersions -Join ", ")
|
return "GNU C++ " + ($cppVersions -Join ", ")
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-FortranVersions {
|
function Get-FortranVersions {
|
||||||
$fortranVersions = apt list --installed 2>&1 | Where-Object { $_ -match "^gfortran-\d+"} | ForEach-Object {
|
$result = Get-CommandResult "apt list --installed" -Multiline
|
||||||
|
$fortranVersions = $result.Output | Where-Object { $_ -match "^gfortran-\d+"} | ForEach-Object {
|
||||||
$_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null
|
$_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null
|
||||||
$Matches.version
|
$Matches.version
|
||||||
} | Sort-Object {[Version]$_}
|
} | Sort-Object {[Version]$_}
|
||||||
@@ -21,7 +23,8 @@ function Get-FortranVersions {
|
|||||||
|
|
||||||
function Get-ClangVersions {
|
function Get-ClangVersions {
|
||||||
$clangVersions = @()
|
$clangVersions = @()
|
||||||
$clangVersions = apt list --installed 2>&1 | Where-Object { $_ -match "^clang-\d+"} | ForEach-Object {
|
$result = Get-CommandResult "apt list --installed" -Multiline
|
||||||
|
$clangVersions = $result.Output | Where-Object { $_ -match "^clang-\d+"} | ForEach-Object {
|
||||||
$clangCommand = ($_ -Split "/")[0]
|
$clangCommand = ($_ -Split "/")[0]
|
||||||
Invoke-Expression "$clangCommand --version" | Where-Object { $_ -match "clang version" } | ForEach-Object {
|
Invoke-Expression "$clangCommand --version" | Where-Object { $_ -match "clang version" } | ForEach-Object {
|
||||||
$_ -match "clang version (?<version>\d+\.\d+\.\d+)-" | Out-Null
|
$_ -match "clang version (?<version>\d+\.\d+\.\d+)-" | Out-Null
|
||||||
@@ -32,9 +35,7 @@ function Get-ClangVersions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-ErlangVersion {
|
function Get-ErlangVersion {
|
||||||
$result = Get-CommandResult "erl -version"
|
$version = (erl -eval 'erlang:display(erlang:system_info(version)), halt().' -noshell).Trim('"')
|
||||||
$result.Output -match "version (?<version>\d+\.\d+\.\d+)" | Out-Null
|
|
||||||
$version = $Matches.version
|
|
||||||
return "Erlang $version"
|
return "Erlang $version"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,26 +144,27 @@ function Get-AntVersion {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-GradleVersion {
|
function Get-GradleVersion {
|
||||||
$result = gradle -v | Out-String
|
$gradleVersion = (gradle -v) -match "^Gradle \d" | Take-OutputPart -Part 1
|
||||||
$result -match "Gradle (?<version>\d+\.\d+\.\d+)" | Out-Null
|
|
||||||
$gradleVersion = $Matches.version
|
|
||||||
return "Gradle $gradleVersion"
|
return "Gradle $gradleVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-MavenVersion {
|
function Get-MavenVersion {
|
||||||
$result = mvn -version | Out-String
|
$result = mvn -version | Out-String
|
||||||
$result -match "Apache Maven (?<version>\d+\.\d+\.\d+)" | Out-Null
|
$result -match "Apache Maven (?<version>\d+\.\d+\.\d+)" | Out-Null
|
||||||
$mavenVersion = $Matches.version
|
$mavenVersion = $Matches.version
|
||||||
return "Maven $mavenVersion"
|
return "Maven $mavenVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-SbtVersion {
|
function Get-SbtVersion {
|
||||||
$result = sbt -version 2>&1 | Out-String
|
$result = Get-CommandResult "sbt -version"
|
||||||
$result -match "sbt script version: (?<version>\d+\.\d+\.\d+)" | Out-Null
|
$result.Output -match "sbt script version: (?<version>\d+\.\d+\.\d+)" | Out-Null
|
||||||
$sbtVersion = $Matches.version
|
$sbtVersion = $Matches.version
|
||||||
return "Sbt $sbtVersion"
|
return "Sbt $sbtVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-PHPVersions {
|
function Get-PHPVersions {
|
||||||
return $(apt list --installed 2>&1) | Where-Object { $_ -match "^php\d+\.\d+/"} | ForEach-Object {
|
$result = Get-CommandResult "apt list --installed" -Multiline
|
||||||
|
return $result.Output | Where-Object { $_ -match "^php\d+\.\d+/"} | ForEach-Object {
|
||||||
$_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null
|
$_ -match "now (?<version>\d+\.\d+\.\d+)-" | Out-Null
|
||||||
$Matches.version
|
$Matches.version
|
||||||
}
|
}
|
||||||
@@ -243,4 +245,11 @@ function Get-AptPackages {
|
|||||||
$apt = $toolsetJson.apt
|
$apt = $toolsetJson.apt
|
||||||
$pkgs = ($apt.common_packages + $apt.cmd_packages | Sort-Object) -join ", "
|
$pkgs = ($apt.common_packages + $apt.cmd_packages | Sort-Object) -join ", "
|
||||||
return $pkgs
|
return $pkgs
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-PipxVersion {
|
||||||
|
$result = (Get-CommandResult "pipx --version").Output
|
||||||
|
$result -match "(?<version>\d+\.\d+\.\d+\.?\d*)" | Out-Null
|
||||||
|
$pipxVersion = $Matches.Version
|
||||||
|
return "Pipx $pipxVersion"
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,8 @@ param (
|
|||||||
$OutputDirectory
|
$OutputDirectory
|
||||||
)
|
)
|
||||||
|
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
Import-Module MarkdownPS
|
Import-Module MarkdownPS
|
||||||
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Android.psm1") -DisableNameChecking
|
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Android.psm1") -DisableNameChecking
|
||||||
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Browsers.psm1") -DisableNameChecking
|
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Browsers.psm1") -DisableNameChecking
|
||||||
@@ -14,6 +16,9 @@ Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Java.psm1") -DisableNameC
|
|||||||
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Rust.psm1") -DisableNameChecking
|
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Rust.psm1") -DisableNameChecking
|
||||||
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Tools.psm1") -DisableNameChecking
|
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Tools.psm1") -DisableNameChecking
|
||||||
|
|
||||||
|
# Restore file owner in user profile
|
||||||
|
Restore-UserOwner
|
||||||
|
|
||||||
$markdown = ""
|
$markdown = ""
|
||||||
|
|
||||||
if ($env:ANNOUNCEMENTS) {
|
if ($env:ANNOUNCEMENTS) {
|
||||||
@@ -49,7 +54,8 @@ $markdown += New-MDList -Style Unordered -Lines @(
|
|||||||
)
|
)
|
||||||
|
|
||||||
$markdown += New-MDHeader "Package Management" -Level 3
|
$markdown += New-MDHeader "Package Management" -Level 3
|
||||||
$markdown += New-MDList -Style Unordered -Lines @(
|
|
||||||
|
$packageManagementList = @(
|
||||||
(Get-HomebrewVersion),
|
(Get-HomebrewVersion),
|
||||||
(Get-GemVersion),
|
(Get-GemVersion),
|
||||||
(Get-MinicondaVersion),
|
(Get-MinicondaVersion),
|
||||||
@@ -61,6 +67,14 @@ $markdown += New-MDList -Style Unordered -Lines @(
|
|||||||
(Get-VcpkgVersion)
|
(Get-VcpkgVersion)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (-not (Test-IsUbuntu16)) {
|
||||||
|
$packageManagementList += @(
|
||||||
|
(Get-PipxVersion)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
$markdown += New-MDList -Style Unordered -Lines ($packageManagementList | Sort-Object)
|
||||||
|
|
||||||
$markdown += New-MDHeader "Project Management" -Level 3
|
$markdown += New-MDHeader "Project Management" -Level 3
|
||||||
$markdown += New-MDList -Style Unordered -Lines @(
|
$markdown += New-MDList -Style Unordered -Lines @(
|
||||||
(Get-AntVersion),
|
(Get-AntVersion),
|
||||||
@@ -73,6 +87,7 @@ $markdown += New-MDHeader "Tools" -Level 3
|
|||||||
$toolsList = @(
|
$toolsList = @(
|
||||||
(Get-7zipVersion),
|
(Get-7zipVersion),
|
||||||
(Get-AnsibleVersion),
|
(Get-AnsibleVersion),
|
||||||
|
(Get-AptFastVersion),
|
||||||
(Get-AzCopy7Version),
|
(Get-AzCopy7Version),
|
||||||
(Get-AzCopy10Version),
|
(Get-AzCopy10Version),
|
||||||
(Get-BazelVersion),
|
(Get-BazelVersion),
|
||||||
@@ -110,6 +125,7 @@ $toolsList = @(
|
|||||||
(Get-TerraformVersion),
|
(Get-TerraformVersion),
|
||||||
(Get-UnZipVersion),
|
(Get-UnZipVersion),
|
||||||
(Get-WgetVersion),
|
(Get-WgetVersion),
|
||||||
|
(Get-YamllintVersion),
|
||||||
(Get-ZipVersion),
|
(Get-ZipVersion),
|
||||||
(Get-ZstdVersion)
|
(Get-ZstdVersion)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -49,3 +49,7 @@ function New-MDNewLine {
|
|||||||
$newLineSymbol = [System.Environment]::NewLine
|
$newLineSymbol = [System.Environment]::NewLine
|
||||||
return $newLineSymbol * $Count
|
return $newLineSymbol * $Count
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Restore-UserOwner {
|
||||||
|
sudo chown -R ${env:USER}: $env:HOME
|
||||||
|
}
|
||||||
@@ -4,10 +4,15 @@ function Get-7zipVersion {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-AnsibleVersion {
|
function Get-AnsibleVersion {
|
||||||
$ansibleVersion = sudo ansible --version | Select-Object -First 1 | Take-OutputPart -Part 1
|
$ansibleVersion = ansible --version | Select-Object -First 1 | Take-OutputPart -Part 1
|
||||||
return "Ansible $ansibleVersion"
|
return "Ansible $ansibleVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Get-AptFastVersion {
|
||||||
|
$aptFastVersion = (dpkg-query --showformat='${Version}' --show apt-fast).Split('-')[0]
|
||||||
|
return "apt-fast $aptFastVersion"
|
||||||
|
}
|
||||||
|
|
||||||
function Get-AzCopy7Version {
|
function Get-AzCopy7Version {
|
||||||
$azcopy7Version = azcopy --version | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "-"
|
$azcopy7Version = azcopy --version | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "-"
|
||||||
return "AzCopy7 $azcopy7Version (available by ``azcopy`` alias)"
|
return "AzCopy7 $azcopy7Version (available by ``azcopy`` alias)"
|
||||||
@@ -19,17 +24,18 @@ function Get-AzCopy10Version {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-BazelVersion {
|
function Get-BazelVersion {
|
||||||
$bazelVersion = sudo bazel --version | Select-String "bazel" | Take-OutputPart -Part 1
|
$bazelVersion = bazel --version | Select-String "bazel" | Take-OutputPart -Part 1
|
||||||
return "Bazel $bazelVersion"
|
return "Bazel $bazelVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-BazeliskVersion {
|
function Get-BazeliskVersion {
|
||||||
$bazeliskVersion = sudo bazelisk version 2>&1 | Select-String "Bazelisk version:" | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "v"
|
$result = Get-CommandResult "bazelisk version" -Multiline
|
||||||
|
$bazeliskVersion = $result.Output | Select-String "Bazelisk version:" | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "v"
|
||||||
return "Bazelisk $bazeliskVersion"
|
return "Bazelisk $bazeliskVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-CodeQLBundleVersion {
|
function Get-CodeQLBundleVersion {
|
||||||
$CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "codeql" | Join-Path -ChildPath "*"
|
$CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
|
||||||
$CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName
|
$CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName
|
||||||
$CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql"
|
$CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql"
|
||||||
$CodeQLVersion = & $CodeQLPath version --quiet
|
$CodeQLVersion = & $CodeQLPath version --quiet
|
||||||
@@ -77,12 +83,14 @@ function Get-DockerBuildxVersion {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-GitVersion {
|
function Get-GitVersion {
|
||||||
$gitVersion = git --version 2>&1 | Take-OutputPart -Part 2
|
$result = Get-CommandResult "git --version"
|
||||||
|
$gitVersion = $result.Output | Take-OutputPart -Part 2
|
||||||
return "Git $gitVersion"
|
return "Git $gitVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-GitLFSVersion {
|
function Get-GitLFSVersion {
|
||||||
$gitlfsversion = git-lfs --version 2>&1 | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
|
$result = Get-CommandResult "git-lfs --version"
|
||||||
|
$gitlfsversion = $result.Output | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
|
||||||
return "Git LFS $gitlfsversion"
|
return "Git LFS $gitlfsversion"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +100,7 @@ function Get-GitFTPVersion {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-GoogleCloudSDKVersion {
|
function Get-GoogleCloudSDKVersion {
|
||||||
return "$(sudo gcloud --version | Select-Object -First 1)"
|
return "$(gcloud --version | Select-Object -First 1)"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-HavegedVersion {
|
function Get-HavegedVersion {
|
||||||
@@ -101,7 +109,7 @@ function Get-HavegedVersion {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-HerokuVersion {
|
function Get-HerokuVersion {
|
||||||
$herokuVersion = sudo heroku version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
|
$herokuVersion = heroku version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
|
||||||
return "Heroku $herokuVersion"
|
return "Heroku $herokuVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -201,12 +209,12 @@ function Get-JqVersion {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-AzureCliVersion {
|
function Get-AzureCliVersion {
|
||||||
$azcliVersion = sudo az -v | Select-String "azure-cli" | Take-OutputPart -Part -1
|
$azcliVersion = az -v | Select-String "azure-cli" | Take-OutputPart -Part -1
|
||||||
return "Azure CLI (azure-cli) $azcliVersion"
|
return "Azure CLI (azure-cli) $azcliVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-AzureDevopsVersion {
|
function Get-AzureDevopsVersion {
|
||||||
$azdevopsVersion = sudo az -v | Select-String "azure-devops" | Take-OutputPart -Part -1
|
$azdevopsVersion = az -v | Select-String "azure-devops" | Take-OutputPart -Part -1
|
||||||
return "Azure CLI (azure-devops) $azdevopsVersion"
|
return "Azure CLI (azure-devops) $azdevopsVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,12 +223,14 @@ function Get-AlibabaCloudCliVersion {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-AWSCliVersion {
|
function Get-AWSCliVersion {
|
||||||
$awsVersion = aws --version 2>&1 | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
|
$result = Get-CommandResult "aws --version"
|
||||||
|
$awsVersion = $result.Output | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
|
||||||
return "AWS CLI $awsVersion"
|
return "AWS CLI $awsVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-AWSCliSessionManagerPluginVersion {
|
function Get-AWSCliSessionManagerPluginVersion {
|
||||||
return "AWS CLI Session manager plugin $(session-manager-plugin --version 2>&1)"
|
$result = (Get-CommandResult "session-manager-plugin --version").Output
|
||||||
|
return "AWS CLI Session manager plugin $result"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-AWSSAMVersion {
|
function Get-AWSSAMVersion {
|
||||||
@@ -238,7 +248,7 @@ function Get-GitHubCliVersion {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-NetlifyCliVersion {
|
function Get-NetlifyCliVersion {
|
||||||
$netlifyVersion = sudo netlify --version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
|
$netlifyVersion = netlify --version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
|
||||||
return "Netlify CLI $netlifyVersion"
|
return "Netlify CLI $netlifyVersion"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -253,7 +263,8 @@ function Get-ORASCliVersion {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-VerselCliversion {
|
function Get-VerselCliversion {
|
||||||
return "$(vercel --version 2>&1 | Select-Object -First 1)"
|
$result = Get-CommandResult "vercel --version" -Multiline
|
||||||
|
return $result.Output | Select-Object -First 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-PulumiVersion {
|
function Get-PulumiVersion {
|
||||||
@@ -269,4 +280,8 @@ function Get-RVersion {
|
|||||||
function Get-SphinxVersion {
|
function Get-SphinxVersion {
|
||||||
$sphinxVersion = searchd -h | Select-Object -First 1 | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "-"
|
$sphinxVersion = searchd -h | Select-Object -First 1 | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "-"
|
||||||
return "Sphinx Open Source Search Server $sphinxVersion"
|
return "Sphinx Open Source Search Server $sphinxVersion"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-YamllintVersion {
|
||||||
|
return "$(yamllint --version)"
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
|
|
||||||
echo '* soft nofile 65536' >> /etc/security/limits.conf
|
echo '* soft nofile 65536' >> /etc/security/limits.conf
|
||||||
echo '* hard nofile 65536' >> /etc/security/limits.conf
|
echo '* hard nofile 65536' >> /etc/security/limits.conf
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: reboot.sh
|
## File: reboot.sh
|
||||||
## Desc: Reboot VM
|
## Desc: Reboot VM
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
echo "Reboot VM"
|
echo "Reboot VM"
|
||||||
sudo reboot
|
sudo reboot
|
||||||
|
|||||||
@@ -42,4 +42,9 @@ download_with_retries() {
|
|||||||
## fi
|
## fi
|
||||||
function IsPackageInstalled {
|
function IsPackageInstalled {
|
||||||
dpkg -S $1 &> /dev/null
|
dpkg -S $1 &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
verlte() {
|
||||||
|
sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
|
||||||
|
[ "$1" = "$sortedVersion" ]
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: 7-zip.sh
|
## File: 7-zip.sh
|
||||||
## Desc: Installs 7-zip
|
## Desc: Installs 7-zip
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install 7-Zip
|
# Install 7-Zip
|
||||||
apt-get update -y
|
apt-get update -y
|
||||||
apt-get install -y p7zip p7zip-full p7zip-rar
|
apt-get install -y p7zip p7zip-full p7zip-rar
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: aliyun-cli.sh
|
## File: aliyun-cli.sh
|
||||||
## Desc: Installs Alibaba Cloud CLI
|
## Desc: Installs Alibaba Cloud CLI
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install 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"))')
|
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
|
wget -P /tmp $URL
|
||||||
|
|||||||
@@ -1,13 +1,28 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: android.sh
|
## File: android.sh
|
||||||
## Desc: Installs Android SDK
|
## Desc: Installs Android SDK
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Source the helpers for use with the script
|
# Source the helpers for use with the script
|
||||||
source $HELPER_SCRIPTS/os.sh
|
source $HELPER_SCRIPTS/os.sh
|
||||||
|
source $HELPER_SCRIPTS/install.sh
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
# Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables)
|
# Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables)
|
||||||
ANDROID_ROOT=/usr/local/lib/android
|
ANDROID_ROOT=/usr/local/lib/android
|
||||||
@@ -42,22 +57,23 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||||
platforms=$(jq -r '.android.platform_list[]|"platforms;" + .' $toolset)
|
minimumBuildToolVersion=$(jq -r '.android.build_tools_min_version' $toolset)
|
||||||
buildtools=$(jq -r '.android.build_tools[]|"build-tools;" + .' $toolset)
|
minimumPlatformVersion=$(jq -r '.android.platform_min_version' $toolset)
|
||||||
extras=$(jq -r '.android.extra_list[]|"extras;" + .' $toolset)
|
extras=$(jq -r '.android.extra_list[]|"extras;" + .' $toolset)
|
||||||
addons=$(jq -r '.android.addon_list[]|"add-ons;" + .' $toolset)
|
addons=$(jq -r '.android.addon_list[]|"add-ons;" + .' $toolset)
|
||||||
additional=$(jq -r '.android.additional_tools[]' $toolset)
|
additional=$(jq -r '.android.additional_tools[]' $toolset)
|
||||||
|
|
||||||
# Install the following SDKs and build tools, passing in "y" to accept licenses.
|
# Install the following SDKs and build tools, passing in "y" to accept licenses.
|
||||||
echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager $platforms $buildtools $extras $google_api_list $addons $additional
|
components=( "${extras[@]}" "${addons[@]}" "${additional[@]}" )
|
||||||
|
|
||||||
# Document what was added to the image
|
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 | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
|
||||||
|
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
|
||||||
|
|
||||||
google_api_versions_list=$(echo "$addons"|awk -F- '/addon-google_apis-google/ {print $5}')
|
filter_components_by_version $minimumPlatformVersion "${availablePlatforms[@]}"
|
||||||
constraint_layout_versions_list=$(echo "$extras"|awk -F';' '/constraint-layout;/ {print $8}')
|
filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]}"
|
||||||
constraint_layout_solver_versions_list=$(echo "$extras"|awk -F';' '/constraint-layout-solver;/ {print $8}')
|
|
||||||
platform_versions_list=$(echo "$platforms"|awk -F- '{print $2}')
|
echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager ${components[@]}
|
||||||
buildtools_versions_list=$(echo "$buildtools"|awk -F';' '{print $2}')
|
|
||||||
|
|
||||||
# Add required permissions
|
# Add required permissions
|
||||||
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: ansible.sh
|
## File: ansible.sh
|
||||||
## Desc: Installs Ansible
|
## Desc: Installs Ansible
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: aws-sam-cli.sh
|
## File: aws-sam-cli.sh
|
||||||
## Desc: Installs AWS SAM CLI
|
## Desc: Installs AWS SAM CLI
|
||||||
## Requires Python >=3.6, must be run as non-root user after toolset installation
|
## Requires Python >=3.6, must be run as non-root user after toolset installation
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Download latest aws sam cli sources
|
# Download latest aws sam cli sources
|
||||||
TarballUrl=$(curl -s https://api.github.com/repos/aws/aws-sam-cli/releases/latest | jq -r '.tarball_url')
|
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"
|
TarballPath="/tmp/aws-sam-cli.tar.gz"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: aws.sh
|
## File: aws.sh
|
||||||
## Desc: Installs the AWS CLI
|
## Desc: Installs the AWS CLI
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: azcopy.sh
|
## File: azcopy.sh
|
||||||
## Desc: Installs AzCopy
|
## Desc: Installs AzCopy
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install AzCopy7
|
# Install AzCopy7
|
||||||
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
|
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
|
||||||
tar -xf azcopy.tar.gz
|
tar -xf azcopy.tar.gz
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: azpowershell.sh
|
## File: azpowershell.sh
|
||||||
## Desc: Installed Azure PowerShell
|
## Desc: Installed Azure PowerShell
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: azure-cli.sh
|
## File: azure-cli.sh
|
||||||
## Desc: Installed Azure CLI (az)
|
## Desc: Installed Azure CLI (az)
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
|
# 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
|
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: azure-devops-cli.sh
|
## File: azure-devops-cli.sh
|
||||||
## Desc: Installed Azure DevOps CLI (az devops)
|
## Desc: Installed Azure DevOps CLI (az devops)
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# AZURE_EXTENSION_DIR shell variable defines where modules are installed
|
# AZURE_EXTENSION_DIR shell variable defines where modules are installed
|
||||||
# https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-overview
|
# https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-overview
|
||||||
export AZURE_EXTENSION_DIR=/opt/az/azcliextensions
|
export AZURE_EXTENSION_DIR=/opt/az/azcliextensions
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: basic.sh
|
## File: basic.sh
|
||||||
## Desc: Installs basic command line utilities and dev packages
|
## Desc: Installs basic command line utilities and dev packages
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||||
common_packages=$(jq -r ".apt.common_packages[]" $toolset)
|
common_packages=$(jq -r ".apt.common_packages[]" $toolset)
|
||||||
cmd_packages=$(jq -r ".apt.cmd_packages[]" $toolset)
|
cmd_packages=$(jq -r ".apt.cmd_packages[]" $toolset)
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: bazel.sh
|
## File: bazel.sh
|
||||||
## Desc: Installs Bazel and Bazelisk (A user-friendly launcher for Bazel)
|
## Desc: Installs Bazel and Bazelisk (A user-friendly launcher for Bazel)
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install bazel
|
# Install bazel
|
||||||
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
|
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
|
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: build-essential.sh
|
## File: build-essential.sh
|
||||||
## Desc: Installs build-essential package
|
## Desc: Installs build-essential package
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
source $HELPER_SCRIPTS/install.sh
|
source $HELPER_SCRIPTS/install.sh
|
||||||
|
|
||||||
PACKAGE=build-essential
|
PACKAGE=build-essential
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: clang.sh
|
## File: clang.sh
|
||||||
## Desc: Installs Clang compiler
|
## Desc: Installs Clang compiler
|
||||||
################################################################################
|
################################################################################
|
||||||
set -e
|
|
||||||
|
|
||||||
# Source the helpers for use with the script
|
# Source the helpers for use with the script
|
||||||
source $HELPER_SCRIPTS/os.sh
|
source $HELPER_SCRIPTS/os.sh
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
|
|
||||||
# before cleanup
|
# before cleanup
|
||||||
before=$(df / -Pm | awk 'NR==2{print $4}')
|
before=$(df / -Pm | awk 'NR==2{print $4}')
|
||||||
@@ -27,4 +27,4 @@ after=$(df / -Pm | awk 'NR==2{print $4}')
|
|||||||
# display size
|
# display size
|
||||||
echo "Before: $before MB"
|
echo "Before: $before MB"
|
||||||
echo "After : $after MB"
|
echo "After : $after MB"
|
||||||
echo "Delta : $(($after-$before)) MB"
|
echo "Delta : $(($after-$before)) MB"
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: cmake.sh
|
## File: cmake.sh
|
||||||
## Desc: Installs CMake
|
## Desc: Installs CMake
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Test to see if the software in question is already installed, if not install it
|
# 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"
|
echo "Checking to see if the installer script has already been run"
|
||||||
if command -v cmake; then
|
if command -v cmake; then
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: codeql-bundle.sh
|
## File: codeql-bundle.sh
|
||||||
## Desc: Install the CodeQL CLI Bundle to the toolcache.
|
## Desc: Install the CodeQL CLI Bundle to the toolcache.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: snap-environment.sh
|
## File: snap-environment.sh
|
||||||
## Desc: Update /etc/environment to include /snap/bin in PATH
|
## Desc: Update /etc/environment to include /snap/bin in PATH
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
#Set ImageVersion and ImageOS env variables
|
#Set ImageVersion and ImageOS env variables
|
||||||
echo ImageVersion=$IMAGE_VERSION | tee -a /etc/environment
|
echo ImageVersion=$IMAGE_VERSION | tee -a /etc/environment
|
||||||
echo ImageOS=$IMAGE_OS | 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.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
|
||||||
# https://www.suse.com/support/kb/doc/?id=000016692
|
# https://www.suse.com/support/kb/doc/?id=000016692
|
||||||
echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf
|
echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: containers.sh
|
## File: containers.sh
|
||||||
## Desc: Installs container tools: podman, buildah and skopeo onto the image
|
## Desc: Installs container tools: podman, buildah and skopeo onto the image
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
source /etc/os-release
|
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"
|
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
|
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: docker-compose.sh
|
## File: docker-compose.sh
|
||||||
## Desc: Installs Docker Compose
|
## 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)
|
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
|
# Install latest docker-compose from releases
|
||||||
|
|||||||
@@ -1,18 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: docker-moby.sh
|
## File: docker-moby.sh
|
||||||
## Desc: Installs docker onto the image
|
## Desc: Installs docker onto the image
|
||||||
################################################################################
|
################################################################################
|
||||||
set -e
|
|
||||||
|
|
||||||
# Source the helpers for use with the script
|
# Source the helpers for use with the script
|
||||||
source $HELPER_SCRIPTS/install.sh
|
source $HELPER_SCRIPTS/install.sh
|
||||||
source $HELPER_SCRIPTS/os.sh
|
|
||||||
|
|
||||||
# There is no stable docker-moby for Ubuntu 20 at the moment
|
|
||||||
if isUbuntu20 ; then
|
|
||||||
add-apt-repository "deb [arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/20.04/prod testing main"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check to see if docker is already installed
|
# Check to see if docker is already installed
|
||||||
docker_package=moby
|
docker_package=moby
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: dotnetcore-sdk.sh
|
## File: dotnetcore-sdk.sh
|
||||||
## Desc: Installs .NET Core SDK
|
## Desc: Installs .NET Core SDK
|
||||||
@@ -25,7 +25,6 @@ mksamples()
|
|||||||
sample=$2
|
sample=$2
|
||||||
mkdir "$sdk"
|
mkdir "$sdk"
|
||||||
cd "$sdk" || exit
|
cd "$sdk" || exit
|
||||||
set -e
|
|
||||||
dotnet help
|
dotnet help
|
||||||
dotnet new globaljson --sdk-version "$sdk"
|
dotnet new globaljson --sdk-version "$sdk"
|
||||||
dotnet new "$sample"
|
dotnet new "$sample"
|
||||||
@@ -36,8 +35,6 @@ mksamples()
|
|||||||
rm -rf "$sdk"
|
rm -rf "$sdk"
|
||||||
}
|
}
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Disable telemetry
|
# Disable telemetry
|
||||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
|
|
||||||
# This is the anti-frontend. It never interacts with you at all,
|
# This is the anti-frontend. It never interacts with you at all,
|
||||||
# and makes the default answers be used for all questions. It
|
# and makes the default answers be used for all questions. It
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: erlang.sh
|
## File: erlang.sh
|
||||||
## Desc: Installs erlang
|
## Desc: Installs erlang
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
source_list=/etc/apt/sources.list.d/eslerlang.list
|
source_list=/etc/apt/sources.list.d/eslerlang.list
|
||||||
|
|
||||||
# Install Erlang
|
# Install Erlang
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: example.sh
|
## File: example.sh
|
||||||
## Desc: This is an example script that can be copied to add a new software
|
## Desc: This is an example script that can be copied to add a new software
|
||||||
## installer to the image
|
## installer to the image
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Test to see if the software in question is already installed, if not install it
|
# 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"
|
echo "Checking to see if the installer script has already been run"
|
||||||
if [ -z $EXAMPLE_VAR ]; then
|
if [ -z $EXAMPLE_VAR ]; then
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: firefox.sh
|
## File: firefox.sh
|
||||||
## Desc: Installs Firefox
|
## Desc: Installs Firefox
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install Firefox
|
# Install Firefox
|
||||||
apt-get install -y firefox
|
apt-get install -y firefox
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: gcc.sh
|
## File: gcc.sh
|
||||||
## Desc: Installs GNU C++
|
## Desc: Installs GNU C++
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Source the helpers for use with the script
|
# Source the helpers for use with the script
|
||||||
source $HELPER_SCRIPTS/os.sh
|
source $HELPER_SCRIPTS/os.sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: gfortran.sh
|
## File: gfortran.sh
|
||||||
## Desc: Installs GNU Fortran
|
## Desc: Installs GNU Fortran
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
function InstallFortran {
|
function InstallFortran {
|
||||||
version=$1
|
version=$1
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: git.sh
|
## File: git.sh
|
||||||
## Desc: Installs Git
|
## Desc: Installs Git
|
||||||
################################################################################
|
################################################################################
|
||||||
set -e
|
|
||||||
|
|
||||||
# Source the helpers for use with the script
|
# Source the helpers for use with the script
|
||||||
source "$HELPER_SCRIPTS"/install.sh
|
source "$HELPER_SCRIPTS"/install.sh
|
||||||
@@ -52,3 +51,7 @@ else
|
|||||||
echo "[!] Hub CLI was not installed"
|
echo "[!] Hub CLI was not installed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
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
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: github-cli.sh
|
## File: github-cli.sh
|
||||||
## Desc: Installs GitHub CLI
|
## Desc: Installs GitHub CLI
|
||||||
## Must be run as non-root user after homebrew
|
## Must be run as non-root user after homebrew
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install GitHub CLI
|
# 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"))')
|
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
|
wget $url
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: google-chrome.sh
|
## File: google-chrome.sh
|
||||||
## Desc: Installs google-chrome and chromedriver
|
## Desc: Installs google-chrome and chromedriver
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
LSB_RELEASE=$(lsb_release -rs)
|
LSB_RELEASE=$(lsb_release -rs)
|
||||||
|
|
||||||
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
|
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: google-cloud-sdk.sh
|
## File: google-cloud-sdk.sh
|
||||||
## Desc: Installs the Google Cloud SDK
|
## Desc: Installs the Google Cloud SDK
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install 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
|
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 -
|
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: haskell.sh
|
## File: haskell.sh
|
||||||
## Desc: Installs Haskell
|
## Desc: Installs Haskell
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: heroku.sh
|
## File: heroku.sh
|
||||||
## Desc: Installs Heroku CLI
|
## Desc: Installs Heroku CLI
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install Heroku CLI
|
# Install Heroku CLI
|
||||||
curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
|
curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: hhvm.sh
|
## File: hhvm.sh
|
||||||
## Desc: Installs hhvm
|
## Desc: Installs hhvm
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: homebrew-validate.sh
|
## File: homebrew-validate.sh
|
||||||
## Desc: Validate the Homebrew can run after reboot without extra configuring
|
## Desc: Validate the Homebrew can run after reboot without extra configuring
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: homebrew.sh
|
## File: homebrew.sh
|
||||||
## Desc: Installs the Homebrew on Linux
|
## Desc: Installs the Homebrew on Linux
|
||||||
@@ -12,9 +12,6 @@ source $HELPER_SCRIPTS/etc-environment.sh
|
|||||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
|
||||||
eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
|
eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
|
||||||
|
|
||||||
# Make brew files and directories writable by any user
|
|
||||||
sudo chmod -R o+w $HOMEBREW_PREFIX
|
|
||||||
|
|
||||||
# Update /etc/environemnt
|
# Update /etc/environemnt
|
||||||
## Put HOMEBREW_* variables
|
## Put HOMEBREW_* variables
|
||||||
brew shellenv|grep 'export HOMEBREW'|sed -E 's/^export (.*);$/\1/' | sudo tee -a /etc/environment
|
brew shellenv|grep 'export HOMEBREW'|sed -E 's/^export (.*);$/\1/' | sudo tee -a /etc/environment
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: hosted-tool-cache.sh
|
## File: hosted-tool-cache.sh
|
||||||
## Desc: Downloads and installs hosted tools cache
|
## Desc: Downloads and installs hosted tools cache
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Fail out if any setups fail
|
|
||||||
set -e
|
|
||||||
|
|
||||||
TOOLCACHE_REGISTRY="npm.pkg.github.com"
|
TOOLCACHE_REGISTRY="npm.pkg.github.com"
|
||||||
|
|
||||||
echo "Configure npm to use github package registry for '@actions' scope"
|
echo "Configure npm to use github package registry for '@actions' scope"
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: image-magick.sh
|
## File: image-magick.sh
|
||||||
## Desc: Installs ImageMagick
|
## Desc: Installs ImageMagick
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install ImageMagick
|
# Install ImageMagick
|
||||||
apt-get install -y --no-install-recommends --fix-missing \
|
apt-get install -y --no-install-recommends --fix-missing \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: java-tools.sh
|
## File: java-tools.sh
|
||||||
## Desc: Installs Java and related tooling (Ant, Gradle, Maven)
|
## Desc: Installs Java and related tooling (Ant, Gradle, Maven)
|
||||||
@@ -6,8 +6,6 @@
|
|||||||
|
|
||||||
source $HELPER_SCRIPTS/os.sh
|
source $HELPER_SCRIPTS/os.sh
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
function javaTool {
|
function javaTool {
|
||||||
if [[ "$2" =~ ([1]{0,1}.)?$DEFAULT_JDK_VERSION.* ]]; then
|
if [[ "$2" =~ ([1]{0,1}.)?$DEFAULT_JDK_VERSION.* ]]; then
|
||||||
echo "$1 $2 is equal to default one $DEFAULT_JDK_VERSION"
|
echo "$1 $2 is equal to default one $DEFAULT_JDK_VERSION"
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: julia.sh
|
## File: julia.sh
|
||||||
## Desc: Installs Julia, and adds Julia to the path
|
## Desc: Installs Julia, and adds Julia to the path
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# This function fetches the latest Julia release from the GitHub API
|
# This function fetches the latest Julia release from the GitHub API
|
||||||
# Based on https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
|
# Based on https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
|
||||||
function GetLatestJuliaRelease () {
|
function GetLatestJuliaRelease () {
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: kind.sh
|
## File: kind.sh
|
||||||
## Desc: Installs kind
|
## Desc: Installs kind
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install 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"))')
|
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
|
curl -L -o /usr/local/bin/kind $URL
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: kubernetes-tools.sh
|
## File: kubernetes-tools.sh
|
||||||
## Desc: Installs kubectl, helm, kustomize
|
## Desc: Installs kubectl, helm, kustomize
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
## Install kubectl
|
## Install kubectl
|
||||||
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
|
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
|
||||||
touch /etc/apt/sources.list.d/kubernetes.list
|
touch /etc/apt/sources.list.d/kubernetes.list
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: leiningen.sh
|
## File: leiningen.sh
|
||||||
## Desc: Installs Leiningen
|
## Desc: Installs Leiningen
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
LEIN_BIN=/usr/local/bin/lein
|
LEIN_BIN=/usr/local/bin/lein
|
||||||
curl -s https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein > $LEIN_BIN
|
curl -s https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein > $LEIN_BIN
|
||||||
chmod 0755 $LEIN_BIN
|
chmod 0755 $LEIN_BIN
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: mercurial.sh
|
## File: mercurial.sh
|
||||||
## Desc: Installs Mercurial
|
## Desc: Installs Mercurial
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: miniconda.sh
|
## File: miniconda.sh
|
||||||
## Desc: Installs miniconda
|
## Desc: Installs miniconda
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install Miniconda
|
# Install Miniconda
|
||||||
curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \
|
curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \
|
||||||
&& chmod +x miniconda.sh \
|
&& chmod +x miniconda.sh \
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: homebrew.sh
|
## File: homebrew.sh
|
||||||
## Desc: Installs Mongo DB
|
## Desc: Installs Mongo DB
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: cmake.sh
|
## File: cmake.sh
|
||||||
## Desc: Installs Mono
|
## Desc: Installs Mono
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
LSB_CODENAME=$(lsb_release -cs)
|
LSB_CODENAME=$(lsb_release -cs)
|
||||||
|
|
||||||
# Test to see if the software in question is already installed, if not install it
|
# Test to see if the software in question is already installed, if not install it
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: mysql.sh
|
## File: mysql.sh
|
||||||
## Desc: Installs MySQL Client
|
## Desc: Installs MySQL Client
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
export ACCEPT_EULA=Y
|
export ACCEPT_EULA=Y
|
||||||
|
|
||||||
if isUbuntu16 || isUbuntu18 ; then
|
if isUbuntu16 || isUbuntu18 ; then
|
||||||
@@ -44,7 +43,6 @@ if ! command -v mysql; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -e
|
|
||||||
mysql -vvv -e 'CREATE DATABASE smoke_test' -uroot -proot
|
mysql -vvv -e 'CREATE DATABASE smoke_test' -uroot -proot
|
||||||
mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot
|
mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot
|
||||||
set +e
|
set +e
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: netlify.sh
|
## File: netlify.sh
|
||||||
## Desc: Installs the Netlify CLI
|
## Desc: Installs the Netlify CLI
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install the Netlify CLI
|
# Install the Netlify CLI
|
||||||
npm i -g netlify-cli
|
npm i -g netlify-cli
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: nodejs.sh
|
## File: nodejs.sh
|
||||||
## Desc: Installs Node.js LTS and related tooling (Gulp, Grunt)
|
## Desc: Installs Node.js LTS and related tooling (Gulp, Grunt)
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install LTS Node.js and related build tools
|
# Install LTS Node.js and related build tools
|
||||||
curl -sL https://raw.githubusercontent.com/mklement0/n-install/stable/bin/n-install | bash -s -- -ny -
|
curl -sL https://raw.githubusercontent.com/mklement0/n-install/stable/bin/n-install | bash -s -- -ny -
|
||||||
~/n/bin/n lts
|
~/n/bin/n lts
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: nvm.sh
|
## File: nvm.sh
|
||||||
## Desc: Installs Nvm
|
## Desc: Installs Nvm
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
export NVM_DIR="/etc/skel/.nvm"
|
export NVM_DIR="/etc/skel/.nvm"
|
||||||
mkdir $NVM_DIR
|
mkdir $NVM_DIR
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
|
VERSION=$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
|
||||||
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION/install.sh | bash
|
||||||
echo 'export NVM_DIR=$HOME/.nvm' | tee -a /etc/skel/.bash_profile
|
echo 'export NVM_DIR=$HOME/.nvm' | tee -a /etc/skel/.bash_profile
|
||||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' | tee -a /etc/skel/.bash_profile
|
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' | tee -a /etc/skel/.bash_profile
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: oc.sh
|
## File: oc.sh
|
||||||
## Desc: Installs the OC CLI
|
## Desc: Installs the OC CLI
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install 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
|
curl "https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz" > oc.tar.gz
|
||||||
tar xvzf oc.tar.gz
|
tar xvzf oc.tar.gz
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: oras-cli.sh
|
## File: oras-cli.sh
|
||||||
## Desc: Installs ORAS CLI
|
## Desc: Installs ORAS CLI
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: packer.sh
|
## File: packer.sh
|
||||||
## Desc: Installs packer
|
## Desc: Installs packer
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install Packer
|
# Install Packer
|
||||||
PACKER_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | jq -r .current_version)
|
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"
|
curl -LO "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip"
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: phantomjs.sh
|
## File: phantomjs.sh
|
||||||
## Desc: Installs PhantomJS
|
## Desc: Installs PhantomJS
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Install PhantomJS
|
# Install PhantomJS
|
||||||
apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev
|
apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev
|
||||||
PHANTOM_JS=phantomjs-2.1.1-linux-x86_64
|
PHANTOM_JS=phantomjs-2.1.1-linux-x86_64
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: php.sh
|
## File: php.sh
|
||||||
## Desc: Installs php
|
## Desc: Installs php
|
||||||
@@ -8,8 +8,6 @@
|
|||||||
source $HELPER_SCRIPTS/etc-environment.sh
|
source $HELPER_SCRIPTS/etc-environment.sh
|
||||||
source $HELPER_SCRIPTS/os.sh
|
source $HELPER_SCRIPTS/os.sh
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# add repository
|
# add repository
|
||||||
apt-add-repository ppa:ondrej/php -y
|
apt-add-repository ppa:ondrej/php -y
|
||||||
apt-get update
|
apt-get update
|
||||||
|
|||||||
30
images/linux/scripts/installers/pipx-packages.sh
Normal file
30
images/linux/scripts/installers/pipx-packages.sh
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
################################################################################
|
||||||
|
## File: pipx-packages.sh
|
||||||
|
## Desc: Install tools via pipx
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
export PATH="$PATH:/opt/pipx_bin"
|
||||||
|
|
||||||
|
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||||
|
pipx_packages=$(jq -r ".pipx[] .package" $toolset)
|
||||||
|
|
||||||
|
for package in $pipx_packages; do
|
||||||
|
python_version=$(jq -r ".pipx[] | select(.package == \"$package\") .python" $toolset)
|
||||||
|
if [ "$python_version" != "null" ]; then
|
||||||
|
python_path="/opt/hostedtoolcache/Python/$python_version*/x64/bin/python$python_version"
|
||||||
|
echo "Install $package into python $python_path"
|
||||||
|
pipx install $package --python $python_path
|
||||||
|
else
|
||||||
|
echo "Install $package into default python"
|
||||||
|
pipx install $package
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run tests to determine that the software installed as expected
|
||||||
|
cmd=$(jq -r ".pipx[] | select(.package == \"$package\") .cmd" $toolset)
|
||||||
|
if ! command -v $cmd; then
|
||||||
|
echo "$package was not installed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: pollinate.sh
|
## File: pollinate.sh
|
||||||
## Desc: Installs Pollinate
|
## Desc: Installs Pollinate
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install Pollinate
|
# Install Pollinate
|
||||||
apt-get install -y --no-install-recommends pollinate
|
apt-get install -y --no-install-recommends pollinate
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: post-deployment.sh
|
## File: post-deployment.sh
|
||||||
## Desc: Post deployment actions
|
## Desc: Post deployment actions
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
mv -f /imagegeneration/post-generation /opt
|
||||||
|
|
||||||
# set chmod -R 777 /opt
|
# set chmod -R 777 /opt
|
||||||
if [[ -d "/opt" ]]; then
|
if [[ -d "/opt" ]]; then
|
||||||
echo "chmod -R 777 /opt"
|
echo "chmod -R 777 /opt"
|
||||||
@@ -14,3 +16,11 @@ fi
|
|||||||
rm -rf $HELPER_SCRIPT_FOLDER
|
rm -rf $HELPER_SCRIPT_FOLDER
|
||||||
rm -rf $INSTALLER_SCRIPT_FOLDER
|
rm -rf $INSTALLER_SCRIPT_FOLDER
|
||||||
chmod 755 $IMAGE_FOLDER
|
chmod 755 $IMAGE_FOLDER
|
||||||
|
|
||||||
|
# Check PATH
|
||||||
|
if [[ $PATH == \"*\" ]]
|
||||||
|
then
|
||||||
|
echo "ERROR: PATH contains quotes"
|
||||||
|
echo "PATH = $PATH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: postgresql.sh
|
## File: postgresql.sh
|
||||||
## Desc: Installs Postgresql
|
## Desc: Installs Postgresql
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
#Preparing repo for PostgreSQL 12.
|
#Preparing repo for PostgreSQL 12.
|
||||||
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
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
|
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
|
# Disable postgresql.service
|
||||||
systemctl is-active --quiet postgresql.service && systemctl stop postgresql.service
|
systemctl is-active --quiet postgresql.service && systemctl stop postgresql.service
|
||||||
systemctl disable postgresql.service
|
systemctl disable postgresql.service
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: powershellcore.sh
|
## File: powershellcore.sh
|
||||||
## Desc: Installs powershellcore
|
## Desc: Installs powershellcore
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
|
|
||||||
imagedata_file=$IMAGEDATA_FILE
|
imagedata_file=$IMAGEDATA_FILE
|
||||||
image_version=$IMAGE_VERSION
|
image_version=$IMAGE_VERSION
|
||||||
@@ -29,4 +29,4 @@ cat <<EOF > $imagedata_file
|
|||||||
"detail": "Environment: ${image_label}\nVersion: ${image_version}\nIncluded Software: ${software_url}"
|
"detail": "Environment: ${image_label}\nVersion: ${image_version}\nIncluded Software: ${software_url}"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: pulumi.sh
|
## File: pulumi.sh
|
||||||
## Desc: Installs Pulumi
|
## Desc: Installs Pulumi
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: pypy.sh
|
## File: pypy.sh
|
||||||
## Desc: Installs PyPy
|
## 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"
|
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||||
toolsetVersions=$(jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]' $toolset)
|
toolsetVersions=$(jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]' $toolset)
|
||||||
|
|
||||||
# Fail out if any setups fail
|
|
||||||
set -e
|
|
||||||
|
|
||||||
for toolsetVersion in $toolsetVersions; do
|
for toolsetVersion in $toolsetVersions; do
|
||||||
latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[0-9]+\.[0-9]+\.[0-9]+-" | head -1)
|
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
|
InstallPyPy $latestMajorPyPyVersion
|
||||||
done
|
done
|
||||||
|
|
||||||
chown -R "$SUDO_USER:$SUDO_USER" "$AGENT_TOOLSDIRECTORY/PyPy"
|
chown -R "$SUDO_USER:$SUDO_USER" "$AGENT_TOOLSDIRECTORY/PyPy"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: python.sh
|
## File: python.sh
|
||||||
## Desc: Installs Python 2/3
|
## Desc: Installs Python 2/3
|
||||||
@@ -6,18 +6,40 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
# Source the helpers for use with the script
|
# Source the helpers for use with the script
|
||||||
|
source $HELPER_SCRIPTS/etc-environment.sh
|
||||||
source $HELPER_SCRIPTS/os.sh
|
source $HELPER_SCRIPTS/os.sh
|
||||||
|
|
||||||
# Install Python, Python 3, pip, pip3
|
# Install Python, Python 3, pip, pip3
|
||||||
if isUbuntu16 || isUbuntu18; then
|
if isUbuntu16 || isUbuntu18; then
|
||||||
apt-get install -y --no-install-recommends python python-dev python-pip python3 python3-dev python3-pip
|
apt-get install -y --no-install-recommends python python-dev python-pip python3 python3-dev python3-pip python3-venv
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if isUbuntu20; then
|
if isUbuntu20; then
|
||||||
apt-get install -y --no-install-recommends python3 python3-dev python3-pip
|
apt-get install -y --no-install-recommends python3 python3-dev python3-pip python3-venv
|
||||||
ln -s /usr/bin/pip3 /usr/bin/pip
|
ln -s /usr/bin/pip3 /usr/bin/pip
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if isUbuntu18 || isUbuntu20 ; then
|
||||||
|
# Install pipx
|
||||||
|
# Set pipx custom directory
|
||||||
|
export PIPX_BIN_DIR=/opt/pipx_bin
|
||||||
|
export PIPX_HOME=/opt/pipx
|
||||||
|
|
||||||
|
python3 -m pip install pipx
|
||||||
|
python3 -m pipx ensurepath
|
||||||
|
|
||||||
|
# Update /etc/environment
|
||||||
|
setEtcEnvironmentVariable "PIPX_BIN_DIR" $PIPX_BIN_DIR
|
||||||
|
setEtcEnvironmentVariable "PIPX_HOME" $PIPX_HOME
|
||||||
|
prependEtcEnvironmentPath $PIPX_BIN_DIR
|
||||||
|
|
||||||
|
# Test pipx
|
||||||
|
if ! command -v pipx; then
|
||||||
|
echo "pipx was not installed or not found on PATH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Run tests to determine that the software installed as expected
|
# Run tests to determine that the software installed as expected
|
||||||
echo "Testing to make sure that script performed as expected, and basic scenarios work"
|
echo "Testing to make sure that script performed as expected, and basic scenarios work"
|
||||||
for cmd in python pip python3 pip3; do
|
for cmd in python pip python3 pip3; do
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
|
|
||||||
# Source the helpers for use with the script
|
# Source the helpers for use with the script
|
||||||
source $HELPER_SCRIPTS/os.sh
|
source $HELPER_SCRIPTS/os.sh
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: rndgenerator.sh
|
## File: rndgenerator.sh
|
||||||
## Desc: Install random number generator
|
## Desc: Install random number generator
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install haveged
|
# Install haveged
|
||||||
apt-get -y install haveged
|
apt-get -y install haveged
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: ruby.sh
|
## File: ruby.sh
|
||||||
## Desc: Installs Ruby requirements
|
## Desc: Installs Ruby requirements
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
sudo apt-get install ruby-full
|
sudo apt-get install ruby-full
|
||||||
sudo gem update --system
|
sudo gem update --system
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: rust.sh
|
## File: rust.sh
|
||||||
## Desc: Installs Rust
|
## Desc: Installs Rust
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: scala.sh
|
## File: scala.sh
|
||||||
## Desc: Installs sbt
|
## Desc: Installs sbt
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install sbt
|
# Install sbt
|
||||||
# https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html
|
# 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
|
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: selenium.sh
|
## File: selenium.sh
|
||||||
## Desc: Installs selenium server
|
## Desc: Installs selenium server
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Determine latest selenium standalone server version
|
# Determine latest selenium standalone server version
|
||||||
SELENIUM_LATEST_VERSION_URL=https://api.github.com/repos/SeleniumHQ/selenium/releases/latest
|
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)
|
SELENIUM_VERSION=$(curl $SELENIUM_LATEST_VERSION_URL | jq '.name' | tr -d '"' | cut -d ' ' -f 2)
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: sphinx.sh
|
## File: sphinx.sh
|
||||||
## Desc: Installs Sphinx
|
## Desc: Installs Sphinx
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install Sphinx
|
# Install Sphinx
|
||||||
apt-get install -y sphinxsearch
|
apt-get install -y sphinxsearch
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: subversion.sh
|
## File: subversion.sh
|
||||||
## Desc: Installs Subversion client
|
## Desc: Installs Subversion client
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install Subversion
|
# Install Subversion
|
||||||
apt-get install -y --no-install-recommends subversion
|
apt-get install -y --no-install-recommends subversion
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,23 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: swift.sh
|
## File: swift.sh
|
||||||
## Desc: Installs Swift
|
## Desc: Installs Swift
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install
|
# Install
|
||||||
image_label="$(lsb_release -rs)"
|
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
|
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
|
tar xzf /tmp/swift-$swift_version-RELEASE-ubuntu$image_label.tar.gz
|
||||||
mv swift-$swift_version-RELEASE-ubuntu$image_label /usr/share/swift
|
mv swift-$swift_version-RELEASE-ubuntu$image_label /usr/share/swift
|
||||||
|
|
||||||
SWIFT_PATH="/usr/share/swift/usr/bin"
|
SWIFT_PATH="/usr/share/swift/usr/bin"
|
||||||
SWIFT_BIN="$SWIFT_PATH/swift"
|
SWIFT_BIN="$SWIFT_PATH/swift"
|
||||||
|
SWIFTC_BIN="$SWIFT_PATH/swiftc"
|
||||||
ln -s "$SWIFT_BIN" /usr/local/bin/swift
|
ln -s "$SWIFT_BIN" /usr/local/bin/swift
|
||||||
|
ln -s "$SWIFTC_BIN" /usr/local/bin/swiftc
|
||||||
echo "SWIFT_PATH=$SWIFT_PATH" | tee -a /etc/environment
|
echo "SWIFT_PATH=$SWIFT_PATH" | tee -a /etc/environment
|
||||||
|
|
||||||
# Run tests to determine that the software installed as expected
|
# Run tests to determine that the software installed as expected
|
||||||
@@ -24,3 +26,8 @@ if ! command -v swift; then
|
|||||||
echo "Swift was not installed"
|
echo "Swift was not installed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! command -v swiftc; then
|
||||||
|
echo "Swiftc is not linked to swift binary"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
|
||||||
# Install Swig
|
# Install Swig
|
||||||
sudo apt-get install -y swig
|
sudo apt-get install -y swig
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
################################################################################
|
################################################################################
|
||||||
## File: terraform.sh
|
## File: terraform.sh
|
||||||
## Desc: Installs terraform
|
## Desc: Installs terraform
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
# Install Terraform
|
# Install Terraform
|
||||||
TERRAFORM_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r .current_version)
|
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"
|
curl -LO "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip"
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user