[Ubuntu] Add Ubuntu Server 22.04 LTS template (#5454)

This commit is contained in:
Aleksandr Chebotov
2022-05-02 10:46:10 +02:00
committed by GitHub
parent 623df76820
commit 9d80842cc3
23 changed files with 833 additions and 89 deletions

View File

@@ -47,17 +47,21 @@ function Build-CachedToolsSection {
$output += New-MDHeader "Go" -Level 4
$output += New-MDList -Lines (Get-ToolcacheGoVersions) -Style Unordered
$output += New-MDHeader "Node.js" -Level 4
$output += New-MDList -Lines (Get-ToolcacheNodeVersions) -Style Unordered
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$output += New-MDHeader "Node.js" -Level 4
$output += New-MDList -Lines (Get-ToolcacheNodeVersions) -Style Unordered
}
$output += New-MDHeader "PyPy" -Level 4
$output += New-MDList -Lines (Get-ToolcachePyPyVersions) -Style Unordered
$output += New-MDHeader "Python" -Level 4
$output += New-MDList -Lines (Get-ToolcachePythonVersions) -Style Unordered
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$output += New-MDHeader "Python" -Level 4
$output += New-MDList -Lines (Get-ToolcachePythonVersions) -Style Unordered
$output += New-MDHeader "Ruby" -Level 4
$output += New-MDList -Lines (Get-ToolcacheRubyVersions) -Style Unordered
$output += New-MDHeader "Ruby" -Level 4
$output += New-MDList -Lines (Get-ToolcacheRubyVersions) -Style Unordered
}
return $output
}

View File

@@ -17,7 +17,7 @@ function Get-SqliteVersion {
function Get-MySQLVersion {
$mySQLVersion = mysqld --version | Take-OutputPart -Part 2
if (-not (Test-IsUbuntu20)) {
if (Test-IsUbuntu18) {
$mySQLVersion = $mySQLVersion | Take-OutputPart -Part 0 -Delimiter "-"
}
return "MySQL $mySQLVersion"

View File

@@ -41,22 +41,27 @@ $runtimesList = @(
(Get-BashVersion),
(Get-CPPVersions),
(Get-FortranVersions),
(Get-ErlangVersion),
(Get-ErlangRebar3Version),
(Get-MonoVersion),
(Get-MsbuildVersion),
(Get-NodeVersion),
(Get-PerlVersion),
(Get-PythonVersion),
(Get-Python3Version),
(Get-RubyVersion),
(Get-SwiftVersion),
(Get-JuliaVersion),
(Get-KotlinVersion),
(Get-ClangVersions),
(Get-ClangFormatVersions)
)
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$runtimesList += @(
(Get-MsbuildVersion),
(Get-KotlinVersion),
(Get-MonoVersion),
(Get-ErlangVersion),
(Get-ErlangRebar3Version),
(Get-SwiftVersion)
)
}
$markdown += New-MDList -Style Unordered -Lines ($runtimesList | Sort-Object)
$markdown += New-MDHeader "Package Management" -Level 3
@@ -81,14 +86,17 @@ $markdown += Build-PackageManagementEnvironmentTable | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Project Management" -Level 3
$projectManagementList = @(
(Get-AntVersion),
(Get-GradleVersion),
(Get-MavenVersion),
(Get-SbtVersion)
)
$projectManagementList = @()
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$projectManagementList += @(
(Get-AntVersion),
(Get-GradleVersion),
(Get-MavenVersion),
(Get-SbtVersion)
)
}
if (Test-IsUbuntu20) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$projectManagementList += @(
(Get-LernaVersion)
)
@@ -103,7 +111,6 @@ $toolsList = @(
(Get-BazelVersion),
(Get-BazeliskVersion),
(Get-BicepVersion),
(Get-BuildahVersion),
(Get-CodeQLBundleVersion),
(Get-CMakeVersion),
(Get-DockerMobyClientVersion),
@@ -116,14 +123,12 @@ $toolsList = @(
(Get-GitFTPVersion),
(Get-HavegedVersion),
(Get-HerokuVersion),
(Get-HHVMVersion),
(Get-SVNVersion),
(Get-JqVersion),
(Get-YqVersion),
(Get-KindVersion),
(Get-KubectlVersion),
(Get-KustomizeVersion),
(Get-LeiningenVersion),
(Get-MediainfoVersion),
(Get-HGVersion),
(Get-MinikubeVersion),
@@ -133,18 +138,26 @@ $toolsList = @(
(Get-OpensslVersion),
(Get-PackerVersion),
(Get-ParcelVersion),
(Get-PhantomJSVersion),
(Get-PodManVersion),
(Get-PulumiVersion),
(Get-RVersion),
(Get-SkopeoVersion),
(Get-SphinxVersion),
(Get-TerraformVersion),
(Get-YamllintVersion),
(Get-ZstdVersion)
)
if (Test-IsUbuntu20) {
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$toolsList += @(
(Get-BuildahVersion),
(Get-PhantomJSVersion),
(Get-LeiningenVersion),
(Get-HHVMVersion),
(Get-PodManVersion),
(Get-SkopeoVersion)
)
}
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$toolsList += (Get-FastlaneVersion)
}
@@ -168,11 +181,13 @@ $markdown += New-MDList -Style Unordered -Lines (@(
) | Sort-Object
)
$markdown += New-MDHeader "Java" -Level 3
$markdown += Get-JavaVersions | New-MDTable
$markdown += New-MDNewLine
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$markdown += New-MDHeader "Java" -Level 3
$markdown += Get-JavaVersions | New-MDTable
$markdown += New-MDNewLine
}
if (Test-IsUbuntu20) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$markdown += New-MDHeader "GraalVM" -Level 3
$markdown += Build-GraalVMTable | New-MDTable
$markdown += New-MDNewLine
@@ -214,12 +229,17 @@ $markdown += New-MDHeader "Browsers and Drivers" -Level 3
$browsersAndDriversList = @(
(Get-ChromeVersion),
(Get-ChromeDriverVersion),
(Get-FirefoxVersion),
(Get-GeckodriverVersion),
(Get-ChromiumVersion),
(Get-SeleniumVersion)
(Get-ChromiumVersion)
)
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$browsersAndDriversList += @(
(Get-FirefoxVersion),
(Get-GeckodriverVersion),
(Get-SeleniumVersion)
)
}
$markdown += New-MDList -Style Unordered -Lines $browsersAndDriversList
$markdown += New-MDHeader "Environment variables" -Level 4
$markdown += Build-BrowserWebdriversEnvironmentTable | New-MDTable
@@ -235,15 +255,23 @@ $tools = Get-DotnetTools
$markdown += New-MDList -Lines $tools -Style Unordered
$markdown += New-MDHeader "Databases" -Level 3
$markdown += New-MDList -Style Unordered -Lines (@(
(Get-MongoDbVersion),
$databaseLists = @(
(Get-SqliteVersion)
) | Sort-Object
)
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$databaseLists += @(
(Get-MongoDbVersion)
)
}
$markdown += New-MDList -Style Unordered -Lines ( $databaseLists | Sort-Object )
$markdown += Build-PostgreSqlSection
$markdown += Build-MySQLSection
$markdown += Build-MSSQLToolsSection
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$markdown += Build-MSSQLToolsSection
}
$markdown += New-MDHeader "Cached Tools" -Level 3
$markdown += Build-CachedToolsSection
@@ -265,12 +293,14 @@ $markdown += New-MDList -Style Unordered -Lines @(
$markdown += Build-WebServersSection
$markdown += New-MDHeader "Android" -Level 3
$markdown += Build-AndroidTable | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Environment variables" -Level 4
$markdown += Build-AndroidEnvironmentTable | New-MDTable
$markdown += New-MDNewLine
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
$markdown += New-MDHeader "Android" -Level 3
$markdown += Build-AndroidTable | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Environment variables" -Level 4
$markdown += Build-AndroidEnvironmentTable | New-MDTable
$markdown += New-MDNewLine
}
$markdown += New-MDHeader "Cached Docker images" -Level 3
$markdown += Get-CachedDockerImagesTableData | New-MDTable

View File

@@ -0,0 +1,4 @@
#!/bin/bash -e
# https://github.com/hashicorp/packer/issues/11656
echo PubkeyAcceptedKeyTypes=+ssh-rsa >> /etc/ssh/sshd_config
systemctl reload sshd.service

View File

@@ -46,6 +46,10 @@ function Test-IsUbuntu20 {
return (lsb_release -rs) -eq "20.04"
}
function Test-IsUbuntu22 {
return (lsb_release -rs) -eq "22.04"
}
function Get-ToolsetContent {
$toolset = Join-Path $env:INSTALLER_SCRIPT_FOLDER "toolset.json"
Get-Content $toolset -Raw | ConvertFrom-Json
@@ -69,7 +73,7 @@ function Get-ToolsetValue {
function Get-AndroidPackages {
$androidSDKManagerPath = "/usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager"
$androidPackages = & $androidSDKManagerPath --list --verbose
$androidPackages = & $androidSDKManagerPath --list --verbose 2>&1
return $androidPackages
}

View File

@@ -14,6 +14,11 @@ function isUbuntu20
lsb_release -d | grep -q 'Ubuntu 20'
}
function isUbuntu22
{
lsb_release -d | grep -q 'Ubuntu 22'
}
function getOSVersionLabel
{
lsb_release -cs

View File

@@ -102,7 +102,7 @@ filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]}
echo "y" | $SDKMANAGER ${components[@]}
# Old skdmanager from sdk tools doesn't work with Java > 8, set version 8 explicitly
if isUbuntu20; then
if isUbuntu20 || isUbuntu22; then
sed -i "2i export JAVA_HOME=${JAVA_HOME_8_X64}" ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager
fi

View File

@@ -8,18 +8,16 @@
source $HELPER_SCRIPTS/os.sh
source $HELPER_SCRIPTS/install.sh
# Install the AWS CLI v1 Ubuntu18 and AWS CLI v2 on Ubuntu20
if isUbuntu20 ; then
download_with_retries "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" "/tmp" "awscliv2.zip"
unzip -qq /tmp/awscliv2.zip -d /tmp
/tmp/aws/install -i /usr/local/aws-cli -b /usr/local/bin
fi
# Install the AWS CLI v1 Ubuntu18 and AWS CLI v2 on Ubuntu20, Ubuntu22
# The installation should be run after python3 is installed as aws-cli V1 dropped python2 support
if isUbuntu18 ; then
download_with_retries "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" "/tmp" "awscli-bundle.zip"
unzip -qq /tmp/awscli-bundle.zip -d /tmp
python3 /tmp/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
else
download_with_retries "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" "/tmp" "awscliv2.zip"
unzip -qq /tmp/awscliv2.zip -d /tmp
/tmp/aws/install -i /usr/local/aws-cli -b /usr/local/bin
fi
download_with_retries "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" "/tmp" "session-manager-plugin.deb"

View File

@@ -103,8 +103,8 @@ mv phpunit /usr/local/bin/phpunit
# ubuntu 20.04 libzip-dev is libzip5 based and is not compatible libzip-dev of ppa:ondrej/php
# see https://github.com/actions/virtual-environments/issues/1084
if isUbuntu20 ; then
rm /etc/apt/sources.list.d/ondrej-ubuntu-php-focal.list
if isUbuntu20 || isUbuntu22; then
rm /etc/apt/sources.list.d/ondrej-*.list
apt-get update
fi

View File

@@ -4,5 +4,19 @@
## Desc: Installs powershellcore
################################################################################
# Install Powershell
apt-get install -y powershell
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
source $HELPER_SCRIPTS/install.sh
if isUbuntu22; then
# Install libssl1.1
download_with_retries "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1l-1ubuntu1.2_amd64.deb" "/tmp"
dpkg -i /tmp/libssl1.1_1.1.1l-1ubuntu1.2_amd64.deb
# Install Powershell
download_with_retries "https://github.com/PowerShell/PowerShell/releases/download/v7.2.3/powershell-lts_7.2.3-1.deb_amd64.deb" "/tmp"
dpkg -i /tmp/powershell-lts_7.2.3-1.deb_amd64.deb
else
# Install Powershell
apt-get install -y powershell
fi

View File

@@ -6,6 +6,7 @@
# Source the helpers for use with the script
source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/os.sh
export RUSTUP_HOME=/etc/skel/.rustup
export CARGO_HOME=/etc/skel/.cargo
@@ -17,7 +18,12 @@ source $CARGO_HOME/env
# Install common tools
rustup component add rustfmt clippy
cargo install --locked bindgen cbindgen cargo-audit cargo-outdated
if isUbuntu22; then
cargo install bindgen cbindgen cargo-audit cargo-outdated
else
cargo install --locked bindgen cbindgen cargo-audit cargo-outdated
fi
# Cleanup Cargo cache
rm -rf ${CARGO_HOME}/registry/*

View File

@@ -1,4 +1,6 @@
Describe "Android" {
if (Test-IsUbuntu22) { return }
$androidSdkManagerPackages = Get-AndroidPackages
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"

View File

@@ -1,4 +1,4 @@
Describe "Firefox" {
Describe "Firefox" -Skip:(Test-IsUbuntu22) {
It "Firefox" {
"sudo -i firefox --version" | Should -ReturnZeroExitCode
}

View File

@@ -29,7 +29,7 @@ Describe "PHP" {
}
}
Describe "Swift" {
Describe "Swift" -Skip:(Test-IsUbuntu22) {
It "swift" {
"swift --version" | Should -ReturnZeroExitCode
}

View File

@@ -1,4 +1,4 @@
Describe "MongoDB" {
Describe "MongoDB" -Skip:(Test-IsUbuntu22) {
It "<ToolName>" -TestCases @(
@{ ToolName = "mongo" }
@{ ToolName = "mongod" }

View File

@@ -1,6 +1,6 @@
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1" -DisableNameChecking
Describe "Java" {
Describe "Java" -Skip:(Test-IsUbuntu22) {
$toolsetJava = (Get-ToolsetContent).java
$defaultVersion = $toolsetJava.default
$defaultVendor = $toolsetJava.default_vendor

View File

@@ -126,7 +126,7 @@ Describe "Cmake" {
}
}
Describe "erlang" {
Describe "erlang" -Skip:(Test-IsUbuntu22) {
$testCases = @("erl -version", "erlc -v", "rebar3 -v") | ForEach-Object { @{ErlangCommand = $_} }
It "erlang <ErlangCommand>" -TestCases $testCases {
@@ -162,7 +162,7 @@ Describe "gfortran" {
}
}
Describe "Mono" {
Describe "Mono" -Skip:(Test-IsUbuntu22) {
It "mono" {
"mono --version" | Should -ReturnZeroExitCode
}
@@ -176,7 +176,7 @@ Describe "Mono" {
}
}
Describe "MSSQLCommandLineTools" {
Describe "MSSQLCommandLineTools" -Skip:(Test-IsUbuntu22) {
It "sqlcmd" {
"sqlcmd -?" | Should -ReturnZeroExitCode
}
@@ -200,7 +200,7 @@ Describe "Sbt" {
}
}
Describe "Selenium" {
Describe "Selenium" -Skip:(Test-IsUbuntu22) {
It "Selenium is installed" {
$seleniumBinaryName = (Get-ToolsetContent).selenium.binary_name
$seleniumPath = Join-Path "/usr/share/java" "$seleniumBinaryName.jar"
@@ -244,7 +244,7 @@ Describe "Heroku" {
}
}
Describe "HHVM" {
Describe "HHVM" -Skip:(Test-IsUbuntu22) {
It "hhvm" {
"hhvm --version" | Should -ReturnZeroExitCode
}
@@ -292,7 +292,7 @@ Describe "Kubernetes tools" {
}
}
Describe "Leiningen" {
Describe "Leiningen" -Skip:(Test-IsUbuntu22) {
It "leiningen" {
"lein --version" | Should -ReturnZeroExitCode
}
@@ -316,13 +316,13 @@ Describe "Pulumi" {
}
}
Describe "Phantomjs" {
Describe "Phantomjs" -Skip:(Test-IsUbuntu22) {
It "phantomjs" {
"phantomjs --version" | Should -ReturnZeroExitCode
}
}
Describe "GraalVM" -Skip:(-not (Test-IsUbuntu20)) {
Describe "GraalVM" -Skip:(Test-IsUbuntu18) {
It "graalvm" {
'$GRAALVM_11_ROOT/bin/java -version' | Should -ReturnZeroExitCode
}
@@ -332,7 +332,7 @@ Describe "GraalVM" -Skip:(-not (Test-IsUbuntu20)) {
}
}
Describe "Containers" {
Describe "Containers" -Skip:(Test-IsUbuntu22) {
$testCases = @("podman", "buildah", "skopeo") | ForEach-Object { @{ContainerCommand = $_} }
It "<ContainerCommand>" -TestCases $testCases {
@@ -391,7 +391,7 @@ Describe "yq" {
}
}
Describe "Kotlin" {
Describe "Kotlin" -Skip:(Test-IsUbuntu22) {
It "kapt" {
"kapt -version"| Should -ReturnZeroExitCode
}