mirror of
https://github.com/actions/runner-images.git
synced 2025-12-15 14:17:22 +00:00
Merge branch 'master' of https://github.com/nikita-bykov/virtual-environments into pipx-windows
This commit is contained in:
2
.github/workflows/issue-triager.yml
vendored
2
.github/workflows/issue-triager.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
||||
|
||||
const isAnnouncement = issueLabels.data && issueLabels.data
|
||||
.map(label => label.name)
|
||||
.includes('announcement');
|
||||
.includes('Announcement');
|
||||
|
||||
if (!isAnnouncement) {
|
||||
github.issues.addLabels({
|
||||
|
||||
@@ -42,6 +42,15 @@ jobs:
|
||||
SourceFolder: 'images/macos/provision/log/'
|
||||
RemoveSourceFolder: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Select datastore'
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: ./images.CI/macos/select-datastore.ps1
|
||||
arguments: -VIServer "$(vcenter-server-v2)" `
|
||||
-VIUserName "$(vcenter-username-v2)" `
|
||||
-VIPassword "$(vcenter-password-v2)"
|
||||
|
||||
- pwsh: |
|
||||
$SensitiveData = @(
|
||||
'IP address:',
|
||||
@@ -54,7 +63,7 @@ jobs:
|
||||
-var="vcenter_password=$(vcenter-password-v2)" `
|
||||
-var="vcenter_datacenter=$(vcenter-datacenter-v2)" `
|
||||
-var="cluster_or_esxi_host=$(esxi-cluster-v2)" `
|
||||
-var="esxi_datastore=${{ parameters.target_datastore }}" `
|
||||
-var="esxi_datastore=$(buildDatastore)" `
|
||||
-var="output_folder=$(output-folder)" `
|
||||
-var="vm_username=$(vm-username)" `
|
||||
-var="vm_password=$(vm-password)" `
|
||||
@@ -106,6 +115,18 @@ jobs:
|
||||
displayName: Publish test results
|
||||
condition: always()
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Move vm to cold storage'
|
||||
condition: succeededOrFailed()
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: ./images.CI/macos/move-vm.ps1
|
||||
arguments: -VMName "${{ variables.VirtualMachineName }}" `
|
||||
-TargetDataStore "${{ parameters.target_datastore }}" `
|
||||
-VIServer "$(vcenter-server-v2)" `
|
||||
-VIUserName "$(vcenter-username-v2)" `
|
||||
-VIPassword "$(vcenter-password-v2)"
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Destroy VM (if build canceled only)'
|
||||
condition: eq(variables['Agent.JobStatus'], 'Canceled')
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
This script deletes vm from vCenter
|
||||
|
||||
.PARAMETER VMName
|
||||
VM name to delete (Example "macOS-10.15_20201012.4")
|
||||
|
||||
.PARAMETER VIServer
|
||||
vCenter address (Example "10.0.1.16")
|
||||
|
||||
.PARAMETER VIUserName
|
||||
vCenter username (Example "Administrator")
|
||||
|
||||
.PARAMETER VIPassword
|
||||
vCenter password (Example "12345678")
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -17,25 +35,13 @@ param(
|
||||
[string]$VIPassword
|
||||
)
|
||||
|
||||
$ProgressPreference = "SilentlyContinue"
|
||||
$WarningPreference = "SilentlyContinue"
|
||||
# Import helpers module
|
||||
Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
|
||||
|
||||
# connection to a vCenter Server system
|
||||
try
|
||||
{
|
||||
$null = Set-PowerCLIConfiguration -Scope Session -InvalidCertificateAction Ignore -ParticipateInCEIP $false -Confirm:$false -WebOperationTimeoutSeconds 600
|
||||
$securePassword = ConvertTo-SecureString -String $VIPassword -AsPlainText -Force
|
||||
$cred = New-Object System.Management.Automation.PSCredential($VIUserName, $securePassword)
|
||||
$null = Connect-VIServer -Server $VIServer -Credential $cred -ErrorAction Stop
|
||||
Write-Host "Connection to the vSphere server has been established"
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to connect to the vSphere server"
|
||||
exit 1
|
||||
}
|
||||
# Connection to a vCenter Server system
|
||||
Connect-VCServer
|
||||
|
||||
# check vm clone status
|
||||
# Check vm clone status
|
||||
$chainId = (Get-VIEvent -Entity $VMName).ChainId
|
||||
if ($chainId)
|
||||
{
|
||||
@@ -45,7 +51,7 @@ if ($chainId)
|
||||
try
|
||||
{
|
||||
Stop-Task -Task $task -Confirm:$false -ErrorAction Stop
|
||||
Write-Host "The vm '$VMName' clone task has been cancelled"
|
||||
Write-Host "The vm '$VMName' clone task has been canceled"
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -54,7 +60,7 @@ if ($chainId)
|
||||
}
|
||||
}
|
||||
|
||||
# remove a vm
|
||||
# Remove a vm
|
||||
$vm = Get-VM -Name $VMName -ErrorAction SilentlyContinue
|
||||
|
||||
if ($vm)
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
59
images.CI/macos/move-vm.ps1
Normal file
59
images.CI/macos/move-vm.ps1
Normal file
@@ -0,0 +1,59 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
This script migrates given VM to another datastore
|
||||
|
||||
.PARAMETER VMName
|
||||
VM name to migrate (Example "macOS-10.15_20201012.4")
|
||||
|
||||
.PARAMETER TargetDataStore
|
||||
Target datastore (Example "ds-image")
|
||||
|
||||
.PARAMETER VIServer
|
||||
vCenter address (Example "10.0.1.16")
|
||||
|
||||
.PARAMETER VIUserName
|
||||
vCenter username (Example "Administrator")
|
||||
|
||||
.PARAMETER VIPassword
|
||||
vCenter password (Example "12345678")
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VMName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$TargetDataStore,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIServer,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIUserName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIPassword
|
||||
)
|
||||
|
||||
# Import helpers module
|
||||
Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
|
||||
|
||||
# Connection to a vCenter Server system
|
||||
Connect-VCServer
|
||||
|
||||
try
|
||||
{
|
||||
Get-VM $VMName | Move-VM -Datastore $TargetDataStore -ErrorAction Stop
|
||||
Write-Host "VM has been moved successfully to target datastore '$TargetDataStore'"
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to move VM '$VMName' to target datastore '$TargetDataStore'"
|
||||
}
|
||||
64
images.CI/macos/select-datastore.ps1
Normal file
64
images.CI/macos/select-datastore.ps1
Normal file
@@ -0,0 +1,64 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
This script selects local datastore based on the following rules:
|
||||
|
||||
- Name starts with ds-local-Datastore
|
||||
- Datastore FreespaceGB > 400 Gb
|
||||
- VM count on the datastore < 2
|
||||
|
||||
.PARAMETER VIServer
|
||||
vCenter address (Example "10.0.1.16")
|
||||
|
||||
.PARAMETER VIUserName
|
||||
vCenter username (Example "Administrator")
|
||||
|
||||
.PARAMETER VIPassword
|
||||
vCenter password (Example "12345678")
|
||||
#>
|
||||
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIServer,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIUserName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIPassword
|
||||
)
|
||||
|
||||
# Import helpers module
|
||||
Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
|
||||
|
||||
# Connection to a vCenter Server system
|
||||
Connect-VCServer
|
||||
|
||||
# Get a target datastore for current deployment
|
||||
# 1. Name starts with ds-local-Datastore
|
||||
# 2. FreespaceGB > 400 Gb
|
||||
# 3. VM count on a datastore < 2
|
||||
$templateDatastore = "ds-local-Datastore-*"
|
||||
$thresholdInGb = 400
|
||||
$vmCount = 2
|
||||
$allDatastores = Get-Datastore -Name $templateDatastore | Where-Object { $_.State -eq "Available" }
|
||||
$buildDatastore = $allDatastores | Where-Object { $_.FreeSpaceGB -ge $thresholdInGb } | Where-Object {
|
||||
$vmOnDatastore = @((Get-ChildItem -Path $_.DatastoreBrowserPath).Name -notmatch "^\.").Count
|
||||
$vmOnDatastore -lt $vmCount
|
||||
} | Select-Object -ExpandProperty Name -First 1
|
||||
|
||||
if ($buildDatastore)
|
||||
{
|
||||
Write-Host "Datastore selected successfully"
|
||||
Write-Host "##vso[task.setvariable variable=buildDatastore;issecret=true]$buildDatastore"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "##vso[task.LogIssue type=error;]No datastores found for the condition"
|
||||
exit 1
|
||||
}
|
||||
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
|
||||
@@ -249,5 +249,7 @@ function Get-AptPackages {
|
||||
|
||||
function Get-PipxVersion {
|
||||
$result = (Get-CommandResult "pipx --version").Output
|
||||
return "Pipx $result"
|
||||
$result -match "(?<version>\d+\.\d+\.\d+\.?\d*)" | Out-Null
|
||||
$pipxVersion = $Matches.Version
|
||||
return "Pipx $pipxVersion"
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
|
||||
echo '* soft nofile 65536' >> /etc/security/limits.conf
|
||||
echo '* hard nofile 65536' >> /etc/security/limits.conf
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: reboot.sh
|
||||
## Desc: Reboot VM
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: 7-zip.sh
|
||||
## Desc: Installs 7-zip
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install 7-Zip
|
||||
apt-get update -y
|
||||
apt-get install -y p7zip p7zip-full p7zip-rar
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: aliyun-cli.sh
|
||||
## Desc: Installs Alibaba Cloud CLI
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Alibaba Cloud CLI
|
||||
URL=$(curl -s https://api.github.com/repos/aliyun/aliyun-cli/releases/latest | jq -r '.assets[].browser_download_url | select(contains("aliyun-cli-linux"))')
|
||||
wget -P /tmp $URL
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: android.sh
|
||||
## Desc: Installs Android SDK
|
||||
################################################################################
|
||||
|
||||
set -e
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: ansible.sh
|
||||
## Desc: Installs Ansible
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: aws-sam-cli.sh
|
||||
## Desc: Installs AWS SAM CLI
|
||||
## Requires Python >=3.6, must be run as non-root user after toolset installation
|
||||
################################################################################
|
||||
|
||||
|
||||
# Download latest aws sam cli sources
|
||||
TarballUrl=$(curl -s https://api.github.com/repos/aws/aws-sam-cli/releases/latest | jq -r '.tarball_url')
|
||||
TarballPath="/tmp/aws-sam-cli.tar.gz"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: aws.sh
|
||||
## Desc: Installs the AWS CLI
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: azcopy.sh
|
||||
## Desc: Installs AzCopy
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install AzCopy7
|
||||
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
|
||||
tar -xf azcopy.tar.gz
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: azpowershell.sh
|
||||
## Desc: Installed Azure PowerShell
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: azure-cli.sh
|
||||
## Desc: Installed Azure CLI (az)
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
|
||||
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: azure-devops-cli.sh
|
||||
## Desc: Installed Azure DevOps CLI (az devops)
|
||||
################################################################################
|
||||
|
||||
|
||||
# AZURE_EXTENSION_DIR shell variable defines where modules are installed
|
||||
# https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-overview
|
||||
export AZURE_EXTENSION_DIR=/opt/az/azcliextensions
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: basic.sh
|
||||
## Desc: Installs basic command line utilities and dev packages
|
||||
################################################################################
|
||||
|
||||
set -e
|
||||
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
common_packages=$(jq -r ".apt.common_packages[]" $toolset)
|
||||
cmd_packages=$(jq -r ".apt.cmd_packages[]" $toolset)
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: bazel.sh
|
||||
## Desc: Installs Bazel and Bazelisk (A user-friendly launcher for Bazel)
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install bazel
|
||||
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
|
||||
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: build-essential.sh
|
||||
## Desc: Installs build-essential package
|
||||
################################################################################
|
||||
|
||||
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
PACKAGE=build-essential
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: clang.sh
|
||||
## Desc: Installs Clang compiler
|
||||
################################################################################
|
||||
set -e
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
|
||||
# before cleanup
|
||||
before=$(df / -Pm | awk 'NR==2{print $4}')
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: cmake.sh
|
||||
## Desc: Installs CMake
|
||||
################################################################################
|
||||
|
||||
|
||||
# Test to see if the software in question is already installed, if not install it
|
||||
echo "Checking to see if the installer script has already been run"
|
||||
if command -v cmake; then
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: codeql-bundle.sh
|
||||
## Desc: Install the CodeQL CLI Bundle to the toolcache.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: snap-environment.sh
|
||||
## Desc: Update /etc/environment to include /snap/bin in PATH
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
#Set ImageVersion and ImageOS env variables
|
||||
echo ImageVersion=$IMAGE_VERSION | tee -a /etc/environment
|
||||
echo ImageOS=$IMAGE_OS | tee -a /etc/environment
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: containers.sh
|
||||
## Desc: Installs container tools: podman, buildah and skopeo onto the image
|
||||
################################################################################
|
||||
|
||||
|
||||
source /etc/os-release
|
||||
sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
|
||||
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: docker-compose.sh
|
||||
## Desc: Installs Docker Compose
|
||||
################################################################################
|
||||
|
||||
|
||||
URL=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r '.assets[].browser_download_url | select(contains("docker-compose-Linux-x86_64"))' | head -1)
|
||||
|
||||
# Install latest docker-compose from releases
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: docker-moby.sh
|
||||
## Desc: Installs docker onto the image
|
||||
################################################################################
|
||||
set -e
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: dotnetcore-sdk.sh
|
||||
## Desc: Installs .NET Core SDK
|
||||
@@ -25,7 +25,6 @@ mksamples()
|
||||
sample=$2
|
||||
mkdir "$sdk"
|
||||
cd "$sdk" || exit
|
||||
set -e
|
||||
dotnet help
|
||||
dotnet new globaljson --sdk-version "$sdk"
|
||||
dotnet new "$sample"
|
||||
@@ -36,8 +35,6 @@ mksamples()
|
||||
rm -rf "$sdk"
|
||||
}
|
||||
|
||||
set -e
|
||||
|
||||
# Disable telemetry
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
|
||||
# This is the anti-frontend. It never interacts with you at all,
|
||||
# and makes the default answers be used for all questions. It
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: erlang.sh
|
||||
## Desc: Installs erlang
|
||||
################################################################################
|
||||
|
||||
|
||||
source_list=/etc/apt/sources.list.d/eslerlang.list
|
||||
|
||||
# Install Erlang
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: example.sh
|
||||
## Desc: This is an example script that can be copied to add a new software
|
||||
## installer to the image
|
||||
################################################################################
|
||||
|
||||
|
||||
# Test to see if the software in question is already installed, if not install it
|
||||
echo "Checking to see if the installer script has already been run"
|
||||
if [ -z $EXAMPLE_VAR ]; then
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: firefox.sh
|
||||
## Desc: Installs Firefox
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Firefox
|
||||
apt-get install -y firefox
|
||||
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: gcc.sh
|
||||
## Desc: Installs GNU C++
|
||||
################################################################################
|
||||
|
||||
set -e
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: gfortran.sh
|
||||
## Desc: Installs GNU Fortran
|
||||
################################################################################
|
||||
|
||||
|
||||
function InstallFortran {
|
||||
version=$1
|
||||
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: git.sh
|
||||
## Desc: Installs Git
|
||||
################################################################################
|
||||
set -e
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source "$HELPER_SCRIPTS"/install.sh
|
||||
@@ -52,3 +51,7 @@ else
|
||||
echo "[!] Hub CLI was not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Add well-known SSH host keys to known_hosts
|
||||
ssh-keyscan -t rsa github.com >> /etc/ssh/ssh_known_hosts
|
||||
ssh-keyscan -t rsa ssh.dev.azure.com >> /etc/ssh/ssh_known_hosts
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: github-cli.sh
|
||||
## Desc: Installs GitHub CLI
|
||||
## Must be run as non-root user after homebrew
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install GitHub CLI
|
||||
url=$(curl -s https://api.github.com/repos/cli/cli/releases/latest | jq -r '.assets[].browser_download_url|select(contains("linux") and contains("amd64") and contains(".deb"))')
|
||||
wget $url
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: google-chrome.sh
|
||||
## Desc: Installs google-chrome and chromedriver
|
||||
################################################################################
|
||||
|
||||
|
||||
LSB_RELEASE=$(lsb_release -rs)
|
||||
|
||||
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: google-cloud-sdk.sh
|
||||
## Desc: Installs the Google Cloud SDK
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install the Google Cloud SDK
|
||||
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
|
||||
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: haskell.sh
|
||||
## Desc: Installs Haskell
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: heroku.sh
|
||||
## Desc: Installs Heroku CLI
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Heroku CLI
|
||||
curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: hhvm.sh
|
||||
## Desc: Installs hhvm
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: homebrew-validate.sh
|
||||
## Desc: Validate the Homebrew can run after reboot without extra configuring
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: homebrew.sh
|
||||
## Desc: Installs the Homebrew on Linux
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: hosted-tool-cache.sh
|
||||
## Desc: Downloads and installs hosted tools cache
|
||||
################################################################################
|
||||
|
||||
|
||||
# Fail out if any setups fail
|
||||
set -e
|
||||
|
||||
TOOLCACHE_REGISTRY="npm.pkg.github.com"
|
||||
|
||||
echo "Configure npm to use github package registry for '@actions' scope"
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: image-magick.sh
|
||||
## Desc: Installs ImageMagick
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install ImageMagick
|
||||
apt-get install -y --no-install-recommends --fix-missing \
|
||||
imagemagick \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: java-tools.sh
|
||||
## Desc: Installs Java and related tooling (Ant, Gradle, Maven)
|
||||
@@ -6,8 +6,6 @@
|
||||
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
set -e
|
||||
|
||||
function javaTool {
|
||||
if [[ "$2" =~ ([1]{0,1}.)?$DEFAULT_JDK_VERSION.* ]]; then
|
||||
echo "$1 $2 is equal to default one $DEFAULT_JDK_VERSION"
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: julia.sh
|
||||
## Desc: Installs Julia, and adds Julia to the path
|
||||
################################################################################
|
||||
|
||||
|
||||
# This function fetches the latest Julia release from the GitHub API
|
||||
# Based on https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
|
||||
function GetLatestJuliaRelease () {
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: kind.sh
|
||||
## Desc: Installs kind
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install KIND
|
||||
URL=$(curl -s https://api.github.com/repos/kubernetes-sigs/kind/releases/latest | jq -r '.assets[].browser_download_url | select(contains("kind-linux-amd64"))')
|
||||
curl -L -o /usr/local/bin/kind $URL
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: kubernetes-tools.sh
|
||||
## Desc: Installs kubectl, helm, kustomize
|
||||
################################################################################
|
||||
|
||||
|
||||
## Install kubectl
|
||||
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
|
||||
touch /etc/apt/sources.list.d/kubernetes.list
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: leiningen.sh
|
||||
## Desc: Installs Leiningen
|
||||
################################################################################
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
LEIN_BIN=/usr/local/bin/lein
|
||||
curl -s https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein > $LEIN_BIN
|
||||
chmod 0755 $LEIN_BIN
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: mercurial.sh
|
||||
## Desc: Installs Mercurial
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: miniconda.sh
|
||||
## Desc: Installs miniconda
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Miniconda
|
||||
curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \
|
||||
&& chmod +x miniconda.sh \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: homebrew.sh
|
||||
## Desc: Installs Mongo DB
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: cmake.sh
|
||||
## Desc: Installs Mono
|
||||
################################################################################
|
||||
|
||||
|
||||
LSB_CODENAME=$(lsb_release -cs)
|
||||
|
||||
# Test to see if the software in question is already installed, if not install it
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: mysql.sh
|
||||
## Desc: Installs MySQL Client
|
||||
################################################################################
|
||||
|
||||
|
||||
export ACCEPT_EULA=Y
|
||||
|
||||
if isUbuntu16 || isUbuntu18 ; then
|
||||
@@ -44,7 +43,6 @@ if ! command -v mysql; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -e
|
||||
mysql -vvv -e 'CREATE DATABASE smoke_test' -uroot -proot
|
||||
mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot
|
||||
set +e
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: netlify.sh
|
||||
## Desc: Installs the Netlify CLI
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install the Netlify CLI
|
||||
npm i -g netlify-cli
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: nodejs.sh
|
||||
## Desc: Installs Node.js LTS and related tooling (Gulp, Grunt)
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install LTS Node.js and related build tools
|
||||
curl -sL https://raw.githubusercontent.com/mklement0/n-install/stable/bin/n-install | bash -s -- -ny -
|
||||
~/n/bin/n lts
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: nvm.sh
|
||||
## Desc: Installs Nvm
|
||||
################################################################################
|
||||
|
||||
|
||||
export NVM_DIR="/etc/skel/.nvm"
|
||||
mkdir $NVM_DIR
|
||||
VERSION=$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: oc.sh
|
||||
## Desc: Installs the OC CLI
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install the oc CLI
|
||||
curl "https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz" > oc.tar.gz
|
||||
tar xvzf oc.tar.gz
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: oras-cli.sh
|
||||
## Desc: Installs ORAS CLI
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: packer.sh
|
||||
## Desc: Installs packer
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Packer
|
||||
PACKER_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | jq -r .current_version)
|
||||
curl -LO "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip"
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: phantomjs.sh
|
||||
## Desc: Installs PhantomJS
|
||||
################################################################################
|
||||
|
||||
set -e
|
||||
|
||||
# Install PhantomJS
|
||||
apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev
|
||||
PHANTOM_JS=phantomjs-2.1.1-linux-x86_64
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: php.sh
|
||||
## Desc: Installs php
|
||||
@@ -8,8 +8,6 @@
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
set -e
|
||||
|
||||
# add repository
|
||||
apt-add-repository ppa:ondrej/php -y
|
||||
apt-get update
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: pollinate.sh
|
||||
## Desc: Installs Pollinate
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Pollinate
|
||||
apt-get install -y --no-install-recommends pollinate
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: post-deployment.sh
|
||||
## Desc: Post deployment actions
|
||||
################################################################################
|
||||
|
||||
mv -f /imagegeneration/post-generation /opt
|
||||
|
||||
# set chmod -R 777 /opt
|
||||
if [[ -d "/opt" ]]; then
|
||||
echo "chmod -R 777 /opt"
|
||||
@@ -14,3 +16,11 @@ fi
|
||||
rm -rf $HELPER_SCRIPT_FOLDER
|
||||
rm -rf $INSTALLER_SCRIPT_FOLDER
|
||||
chmod 755 $IMAGE_FOLDER
|
||||
|
||||
# Check PATH
|
||||
if [[ $PATH == \"*\" ]]
|
||||
then
|
||||
echo "ERROR: PATH contains quotes"
|
||||
echo "PATH = $PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: postgresql.sh
|
||||
## Desc: Installs Postgresql
|
||||
################################################################################
|
||||
|
||||
|
||||
#Preparing repo for PostgreSQL 12.
|
||||
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
||||
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: powershellcore.sh
|
||||
## Desc: Installs powershellcore
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
|
||||
imagedata_file=$IMAGEDATA_FILE
|
||||
image_version=$IMAGE_VERSION
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: pulumi.sh
|
||||
## Desc: Installs Pulumi
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: pypy.sh
|
||||
## Desc: Installs PyPy
|
||||
@@ -76,8 +76,6 @@ pypyVersions="$(cat /tmp/pypyUrls.html | grep 'linux64' | awk -v uri="$uri" -F'>
|
||||
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
|
||||
toolsetVersions=$(jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]' $toolset)
|
||||
|
||||
# Fail out if any setups fail
|
||||
set -e
|
||||
|
||||
for toolsetVersion in $toolsetVersions; do
|
||||
latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[0-9]+\.[0-9]+\.[0-9]+-" | head -1)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: python.sh
|
||||
## Desc: Installs Python 2/3
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: rndgenerator.sh
|
||||
## Desc: Install random number generator
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install haveged
|
||||
apt-get -y install haveged
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: ruby.sh
|
||||
## Desc: Installs Ruby requirements
|
||||
################################################################################
|
||||
|
||||
|
||||
sudo apt-get install ruby-full
|
||||
sudo gem update --system
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: rust.sh
|
||||
## Desc: Installs Rust
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: scala.sh
|
||||
## Desc: Installs sbt
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install sbt
|
||||
# https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html
|
||||
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: selenium.sh
|
||||
## Desc: Installs selenium server
|
||||
################################################################################
|
||||
|
||||
|
||||
# Determine latest selenium standalone server version
|
||||
SELENIUM_LATEST_VERSION_URL=https://api.github.com/repos/SeleniumHQ/selenium/releases/latest
|
||||
SELENIUM_VERSION=$(curl $SELENIUM_LATEST_VERSION_URL | jq '.name' | tr -d '"' | cut -d ' ' -f 2)
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: sphinx.sh
|
||||
## Desc: Installs Sphinx
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Sphinx
|
||||
apt-get install -y sphinxsearch
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: subversion.sh
|
||||
## Desc: Installs Subversion client
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Subversion
|
||||
apt-get install -y --no-install-recommends subversion
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: swift.sh
|
||||
## Desc: Installs Swift
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install
|
||||
image_label="$(lsb_release -rs)"
|
||||
swift_version=$(curl -s https://swift.org/download/ | grep -m1 "id=\"swift-" | awk -F"[ <]" '{print $4}')
|
||||
swift_version=$(curl -s -L -N https://swift.org/download|awk -F"[ <]" '/id="swift-/ {print $4; exit}')
|
||||
|
||||
wget -P /tmp https://swift.org/builds/swift-$swift_version-release/ubuntu${image_label//./}/swift-$swift_version-RELEASE/swift-$swift_version-RELEASE-ubuntu$image_label.tar.gz
|
||||
|
||||
tar xzf /tmp/swift-$swift_version-RELEASE-ubuntu$image_label.tar.gz
|
||||
mv swift-$swift_version-RELEASE-ubuntu$image_label /usr/share/swift
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
#!/bin/bash -e
|
||||
|
||||
# Install Swig
|
||||
sudo apt-get install -y swig
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: terraform.sh
|
||||
## Desc: Installs terraform
|
||||
################################################################################
|
||||
|
||||
|
||||
# Install Terraform
|
||||
TERRAFORM_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r .current_version)
|
||||
curl -LO "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: test-toolcache.sh
|
||||
## Desc: Test Python and Ruby versions in tools cache
|
||||
@@ -51,9 +51,6 @@ Test_Hostedtoolcache_Tool() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Fail out if any tests fail
|
||||
set -e
|
||||
|
||||
# define dictionary for key_alias and its values
|
||||
declare -A TOOLCACHE_KEY_VALUE
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: validate-disk-space.sh
|
||||
## Desc: Validate free disk space
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: vcpkg.sh
|
||||
## Desc: Installs vcpkg
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: vercel.sh
|
||||
## Desc: Installs the Vercel CLI
|
||||
|
||||
@@ -89,6 +89,11 @@
|
||||
"source": "{{template_dir}}/scripts/installers",
|
||||
"destination": "{{user `installer_script_folder`}}"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{ template_dir }}/post-generation",
|
||||
"destination": "{{user `image_folder`}}"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{ template_dir }}/scripts/SoftwareReport",
|
||||
|
||||
@@ -92,6 +92,11 @@
|
||||
"source": "{{template_dir}}/scripts/installers",
|
||||
"destination": "{{user `installer_script_folder`}}"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{ template_dir }}/post-generation",
|
||||
"destination": "{{user `image_folder`}}"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{ template_dir }}/scripts/SoftwareReport",
|
||||
|
||||
@@ -94,6 +94,11 @@
|
||||
"source": "{{template_dir}}/scripts/installers",
|
||||
"destination": "{{user `installer_script_folder`}}"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{ template_dir }}/post-generation",
|
||||
"destination": "{{user `installer_script_folder`}}"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{ template_dir }}/scripts/SoftwareReport",
|
||||
|
||||
@@ -1,8 +1,26 @@
|
||||
#!/bin/bash -e
|
||||
source ~/utils/utils.sh
|
||||
|
||||
ANDROID_PLATFORM_LIST=($(get_toolset_value '.android."platform-list"[]'))
|
||||
ANDROID_BUILD_TOOLS=($(get_toolset_value '.android."build-tools"[]'))
|
||||
function filter_components_by_version {
|
||||
minimumVersion=$1
|
||||
shift
|
||||
toolsArr=("$@")
|
||||
|
||||
for item in ${toolsArr[@]}
|
||||
do
|
||||
# take the last argument after spliting string by ';'' and '-''
|
||||
version=$(echo "${item##*[-;]}")
|
||||
if verlte $minimumVersion $version
|
||||
then
|
||||
components+=($item)
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
components=()
|
||||
|
||||
ANDROID_PLATFORM=($(get_toolset_value '.android.platform_min_version'))
|
||||
ANDROID_BUILD_TOOL=($(get_toolset_value '.android.build_tools_min_version'))
|
||||
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]'))
|
||||
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]'))
|
||||
|
||||
@@ -48,17 +66,14 @@ echo y | $SDKMANAGER "cmake;3.6.4111459"
|
||||
echo "Installing latest ndk..."
|
||||
echo y | $SDKMANAGER "ndk-bundle"
|
||||
|
||||
for platform_name in "${ANDROID_PLATFORM_LIST[@]}"
|
||||
do
|
||||
echo "Installing platform $platform_name ..."
|
||||
echo y | $SDKMANAGER "platforms;$platform_name"
|
||||
done
|
||||
availablePlatforms=($(${ANDROID_HOME}/tools/bin/sdkmanager --list | grep "platforms;android-" | cut -d"|" -f 1 | sort -u))
|
||||
filter_components_by_version $ANDROID_PLATFORM "${availablePlatforms[@]}"
|
||||
|
||||
for build_tools_version in "${ANDROID_BUILD_TOOLS[@]}"
|
||||
do
|
||||
echo "Installing build tools $build_tools_version ..."
|
||||
echo y | $SDKMANAGER "build-tools;$build_tools_version"
|
||||
done
|
||||
allBuildTools=($(${ANDROID_HOME}/tools/bin/sdkmanager --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
|
||||
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
|
||||
filter_components_by_version $ANDROID_BUILD_TOOL "${availableBuildTools[@]}"
|
||||
|
||||
echo "y" | ${ANDROID_HOME}/tools/bin/sdkmanager ${components[@]}
|
||||
|
||||
for extra_name in "${ANDROID_EXTRA_LIST[@]}"
|
||||
do
|
||||
|
||||
@@ -92,3 +92,8 @@ get_latest_xcode_from_toolset() {
|
||||
get_default_xcode_from_toolset() {
|
||||
echo $(get_toolset_value '.xcode.default')
|
||||
}
|
||||
|
||||
verlte() {
|
||||
sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
|
||||
[ "$1" = "$sortedVersion" ]
|
||||
}
|
||||
@@ -28,6 +28,11 @@ function Get-AndroidInstalledPackages {
|
||||
return $androidInstalledPackages
|
||||
}
|
||||
|
||||
function Get-AndroidPackages {
|
||||
$androidSDKManagerPath = Get-AndroidSDKManagerPath
|
||||
$androidPackages = & $androidSDKManagerPath --list --verbose
|
||||
return $androidPackages
|
||||
}
|
||||
|
||||
function Build-AndroidTable {
|
||||
Write-Host "Build-AndroidTable"
|
||||
|
||||
@@ -141,7 +141,7 @@ $aria2Version = Run-Command "aria2c --version" | Select-Object -First 1 | Take-P
|
||||
$azcopyVersion = Run-Command "azcopy --version" | Take-Part -Part 2
|
||||
$zstdVersion = Run-Command "zstd --version" | Take-Part -Part 1 -Delimiter "v" | Take-Part -Part 0 -Delimiter ","
|
||||
$bazelVersion = Run-Command "bazel --version" | Take-Part -Part 0 -Delimiter "-"
|
||||
$bazeliskVersion = Run-Command "bazelisk version" | Select-String "Bazelisk version:" | Take-Part -Part 1 -Delimiter ":"
|
||||
$bazeliskVersion = Run-Command "brew list bazelisk --versions"
|
||||
$packerVersion = Run-Command "packer --version"
|
||||
$helmVersion = Run-Command "helm version --short"
|
||||
$mongo = Run-Command "mongo --version" | Select-String "MongoDB shell version" | Take-Part -Part 3
|
||||
@@ -167,7 +167,7 @@ $markdown += New-MDList -Style Unordered -NoNewLine -Lines @(
|
||||
"azcopy $azcopyVersion",
|
||||
"zstd $zstdVersion",
|
||||
$bazelVersion,
|
||||
"bazelisk $($bazeliskVersion.Trim())",
|
||||
$bazeliskVersion,
|
||||
"helm $helmVersion",
|
||||
"mongo $mongo",
|
||||
"mongod $mongod",
|
||||
|
||||
@@ -1,10 +1,22 @@
|
||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
Import-Module "$PSScriptRoot/../helpers/Tests.Helpers.psm1"
|
||||
Import-Module "$PSScriptRoot/../software-report/SoftwareReport.Android.psm1"
|
||||
|
||||
$os = Get-OSVersion
|
||||
|
||||
Describe "Android" {
|
||||
$androidNdkToolchains = @("mips64el-linux-android-4.9", "mipsel-linux-android-4.9")
|
||||
$androidSdkManagerPackages = Get-AndroidPackages
|
||||
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
|
||||
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
|
||||
|
||||
$platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' |
|
||||
Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique |
|
||||
ForEach-Object { "platforms/${_}" })
|
||||
|
||||
$buildTools = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") }) -replace 'build-tools;', '' |
|
||||
Where-Object { [version]$_ -ge $buildToolsMinVersion } | Sort-Object { [version]$_ } -Unique |
|
||||
ForEach-Object { "build-tools/${_}" })
|
||||
|
||||
$androidPackages = @(
|
||||
"tools",
|
||||
@@ -12,8 +24,8 @@ Describe "Android" {
|
||||
"tools/proguard",
|
||||
"ndk-bundle",
|
||||
"cmake",
|
||||
(Get-ToolsetValue "android.platform-list" | ForEach-Object { "platforms/${_}" }),
|
||||
(Get-ToolsetValue "android.build-tools" | ForEach-Object { "build-tools/${_}" }),
|
||||
$platforms,
|
||||
$buildTools,
|
||||
(Get-ToolsetValue "android.extra-list" | ForEach-Object { "extras/${_}" }),
|
||||
(Get-ToolsetValue "android.addon-list" | ForEach-Object { "add-ons/${_}" })
|
||||
) | ForEach-Object { $_ }
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user