This commit is contained in:
Nikita Bykov
2020-10-14 09:41:10 +03:00
111 changed files with 429 additions and 238 deletions

View File

@@ -32,7 +32,7 @@ jobs:
const isAnnouncement = issueLabels.data && issueLabels.data
.map(label => label.name)
.includes('announcement');
.includes('Announcement');
if (!isAnnouncement) {
github.issues.addLabels({

View File

@@ -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')

View File

@@ -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)

View 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
}
}

View 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'"
}

View 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
}

View 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

View 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

View File

@@ -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"
}

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: reboot.sh
## Desc: Reboot VM

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: ansible.sh
## Desc: Installs Ansible

View File

@@ -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"

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: aws.sh
## Desc: Installs the AWS CLI

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: azpowershell.sh
## Desc: Installed Azure PowerShell

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
# before cleanup
before=$(df / -Pm | awk 'NR==2{print $4}')

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: codeql-bundle.sh
## Desc: Install the CodeQL CLI Bundle to the toolcache.

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: snap-environment.sh
## Desc: Update /etc/environment to include /snap/bin in PATH

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,10 +1,9 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: firefox.sh
## Desc: Installs Firefox
################################################################################
# Install Firefox
apt-get install -y firefox

View File

@@ -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

View File

@@ -1,10 +1,9 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: gfortran.sh
## Desc: Installs GNU Fortran
################################################################################
function InstallFortran {
version=$1

View File

@@ -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

View File

@@ -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

View File

@@ -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 -

View File

@@ -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 -

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: haskell.sh
## Desc: Installs Haskell

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: hhvm.sh
## Desc: Installs hhvm

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: homebrew-validate.sh
## Desc: Validate the Homebrew can run after reboot without extra configuring

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: homebrew.sh
## Desc: Installs the Homebrew on Linux

View File

@@ -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"

View File

@@ -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 \

View File

@@ -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"

View File

@@ -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 () {

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: mercurial.sh
## Desc: Installs Mercurial

View File

@@ -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 \

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: homebrew.sh
## Desc: Installs Mongo DB

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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')

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: oras-cli.sh
## Desc: Installs ORAS CLI

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: powershellcore.sh
## Desc: Installs powershellcore

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
imagedata_file=$IMAGEDATA_FILE
image_version=$IMAGE_VERSION

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: pulumi.sh
## Desc: Installs Pulumi

View File

@@ -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)

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: python.sh
## Desc: Installs Python 2/3

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh

View File

@@ -1,10 +1,9 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: rndgenerator.sh
## Desc: Install random number generator
################################################################################
# Install haveged
apt-get -y install haveged

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: rust.sh
## Desc: Installs Rust

View File

@@ -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

View File

@@ -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)

View File

@@ -1,9 +1,8 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: sphinx.sh
## Desc: Installs Sphinx
################################################################################
# Install Sphinx
apt-get install -y sphinxsearch

View File

@@ -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

View File

@@ -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

View File

@@ -1,5 +1,4 @@
#!/bin/bash
#!/bin/bash -e
# Install Swig
sudo apt-get install -y swig

View File

@@ -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"

View File

@@ -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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: validate-disk-space.sh
## Desc: Validate free disk space

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: vcpkg.sh
## Desc: Installs vcpkg

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash -e
################################################################################
## File: vercel.sh
## Desc: Installs the Vercel CLI

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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

View File

@@ -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" ]
}

View File

@@ -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"

View File

@@ -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",

View File

@@ -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