diff --git a/.github/workflows/ubuntu2004.yml b/.github/workflows/ubuntu2004.yml index cfe71fd34..c8368f3de 100644 --- a/.github/workflows/ubuntu2004.yml +++ b/.github/workflows/ubuntu2004.yml @@ -5,7 +5,7 @@ on: pull_request_target: types: labeled paths: - - 'images/linux/**' + - 'images/ubuntu/**' defaults: run: diff --git a/.github/workflows/ubuntu2204.yml b/.github/workflows/ubuntu2204.yml index 634bb5369..d116129d8 100644 --- a/.github/workflows/ubuntu2204.yml +++ b/.github/workflows/ubuntu2204.yml @@ -5,7 +5,7 @@ on: pull_request_target: types: labeled paths: - - 'images/linux/**' + - 'images/ubuntu/**' defaults: run: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8c72b54dc..9e430481f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -49,11 +49,11 @@ Add `Invoke-PesterTests -TestFile [-TestName ]` at ### Ubuntu -- Add script that will install and validate the tool and put the script in the `scripts/installers` folder. -Use existing scripts such as [github-cli.sh](images/linux/scripts/installers/github-cli.sh) as a starting point. - - Use [helpers](images/linux/scripts/helpers/install.sh) to simplify installation process. +- Add script that will install and validate the tool and put the script in the `scripts/build` folder. +Use existing scripts such as [github-cli.sh](images/ubuntu/scripts/build/github-cli.sh) as a starting point. + - Use [helpers](images/ubuntu/scripts/helpers/install.sh) to simplify installation process. - Validation part should `exit 1` if any issue with installation. -- Add changes to the software report generator `images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1`. The software report generator is used to generate an image's README file, e.g. [Ubuntu2004-Readme.md](images/linux/Ubuntu2004-README.md) and it uses [MarkdownPS](https://github.com/Sarafian/MarkdownPS). +- Add changes to the software report generator `images/ubuntu/scripts/docs-gen/SoftwareReport.Generator.ps1`. The software report generator is used to generate an image's README file, e.g. [Ubuntu2004-Readme.md](images/ubuntu/Ubuntu2004-README.md) and it uses [MarkdownPS](https://github.com/Sarafian/MarkdownPS). ### macOS diff --git a/README.md b/README.md index cb4625b26..dc17ae557 100644 --- a/README.md +++ b/README.md @@ -34,8 +34,8 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat - In general the `-latest` label is used for the latest OS image version that is GA - Before moving the`-latest` label to a new OS version we will announce the change and give sufficient lead time for users to update their workflows -[ubuntu-22.04]: https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md -[ubuntu-20.04]: https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2004-Readme.md +[ubuntu-22.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md +[ubuntu-20.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2004-Readme.md [windows-2022]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md [windows-2019]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2019-Readme.md [macOS-11]: https://github.com/actions/runner-images/blob/main/images/macos/macos-11-Readme.md diff --git a/docs/create-image-and-azure-resources.md b/docs/create-image-and-azure-resources.md index 57993feb6..4414fe8b4 100644 --- a/docs/create-image-and-azure-resources.md +++ b/docs/create-image-and-azure-resources.md @@ -272,7 +272,7 @@ Generated tool versions and details can be found in related projects: The user, created during the image generation, does not exist in the result image hence some configuration files related to the user's home directory need to be changed as well as the file permissions for some directories. Scripts for that are located in the `post-gen` folder in the repository: - Windows: -- Linux: +- Linux: **Note:** The default user for Linux should have `sudo privileges`. diff --git a/helpers/GenerateResourcesAndImage.ps1 b/helpers/GenerateResourcesAndImage.ps1 index 36528ad1b..4d6be9f72 100644 --- a/helpers/GenerateResourcesAndImage.ps1 +++ b/helpers/GenerateResourcesAndImage.ps1 @@ -24,13 +24,13 @@ Function Get-PackerTemplatePath { $relativeTemplatePath = Join-Path "windows" "templates" "windows-2022.json" } ([ImageType]::Ubuntu2004) { - $relativeTemplatePath = Join-Path "linux" "ubuntu2004.json" + $relativeTemplatePath = Join-Path "ubuntu" "templates" "ubuntu-2004.json" } ([ImageType]::Ubuntu2204) { - $relativeTemplatePath = Join-Path "linux" "ubuntu2204.pkr.hcl" + $relativeTemplatePath = Join-Path "ubuntu" "templates" "ubuntu-2204.pkr.hcl" } ([ImageType]::UbuntuMinimal) { - $relativeTemplatePath = Join-Path "linux" "ubuntuminimal.pkr.hcl" + $relativeTemplatePath = Join-Path "ubuntu" "templates" "ubuntu-minimal.pkr.hcl" } default { throw "Unknown type of image" } } diff --git a/images.CI/linux-and-win/azure-pipelines/image-generation.yml b/images.CI/linux-and-win/azure-pipelines/image-generation.yml index 778ebb3ca..c879b372b 100644 --- a/images.CI/linux-and-win/azure-pipelines/image-generation.yml +++ b/images.CI/linux-and-win/azure-pipelines/image-generation.yml @@ -65,9 +65,9 @@ jobs: targetType: 'inline' script: | $ImageType = "${{ parameters.image_type }}" - $TemplateDirectoryName = if ($ImageType.StartsWith("ubuntu")) { "linux" } else { "windows/templates" } + $TemplateDirectoryName = if ($ImageType.StartsWith("ubuntu")) { "ubuntu/templates" } else { "windows/templates" } $TemplateDirectoryPath = Join-Path "images" $TemplateDirectoryName | Resolve-Path - + $TemplateFileName = "${{ parameters.image_template_name }}" if ($TemplateFileName) { $TemplatePath = Join-Path $TemplateDirectoryPath $TemplateFileName diff --git a/images.CI/linux-and-win/azure-pipelines/ubuntu2004.yml b/images.CI/linux-and-win/azure-pipelines/ubuntu2004.yml index 4bf78c183..528e8d0dd 100644 --- a/images.CI/linux-and-win/azure-pipelines/ubuntu2004.yml +++ b/images.CI/linux-and-win/azure-pipelines/ubuntu2004.yml @@ -17,4 +17,5 @@ jobs: - template: image-generation.yml parameters: image_type: ubuntu2004 - image_readme_name: Ubuntu2004-Readme.md \ No newline at end of file + image_readme_name: Ubuntu2004-Readme.md + image_template_name: ubuntu-20.04.json diff --git a/images.CI/linux-and-win/azure-pipelines/ubuntu2204.yml b/images.CI/linux-and-win/azure-pipelines/ubuntu2204.yml index 8fc4c7b69..b9e12815d 100644 --- a/images.CI/linux-and-win/azure-pipelines/ubuntu2204.yml +++ b/images.CI/linux-and-win/azure-pipelines/ubuntu2204.yml @@ -17,4 +17,5 @@ jobs: - template: image-generation.yml parameters: image_type: ubuntu2204 - image_readme_name: Ubuntu2204-Readme.md \ No newline at end of file + image_readme_name: Ubuntu2204-Readme.md + image_template_name: ubuntu-22.04.pkr.hcl diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index a3862f658..53c7d9817 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -22,7 +22,7 @@ function Validate-Scripts { return $ScriptWithoutShebangLine } -$PathUbuntu = "./images/linux/scripts" +$PathUbuntu = "./images/ubuntu/scripts" $PathMacOS = "./images/macos/provision" $PatternUbuntu = "#!/bin/bash -e" $PatternMacOS = "#!/bin/bash -e -o pipefail" @@ -34,10 +34,10 @@ if ($ScriptsWithBrokenShebang.Length -gt 0) { $ScriptsWithBrokenShebang | ForEach-Object { Write-Host "##[error] '$_'" } - Write-Host "`n`n##[error] Expected shebang for scripts in 'images/linux' folder is '$PatternUbuntu'" + Write-Host "`n`n##[error] Expected shebang for scripts in 'images/ubuntu' folder is '$PatternUbuntu'" Write-Host "##[error] Expected shebang for scripts in 'images/macos' folder is '$PatternMacOS'" exit 1 else { Write-Host "All scripts have correct shebang." } -} \ No newline at end of file +} diff --git a/images/linux/Ubuntu2004-Readme.md b/images/ubuntu/Ubuntu2004-Readme.md similarity index 100% rename from images/linux/Ubuntu2004-Readme.md rename to images/ubuntu/Ubuntu2004-Readme.md diff --git a/images/linux/Ubuntu2204-Readme.md b/images/ubuntu/Ubuntu2204-Readme.md similarity index 100% rename from images/linux/Ubuntu2204-Readme.md rename to images/ubuntu/Ubuntu2204-Readme.md diff --git a/images/linux/post-generation/cleanup-logs.sh b/images/ubuntu/assets/post-gen/cleanup-logs.sh similarity index 100% rename from images/linux/post-generation/cleanup-logs.sh rename to images/ubuntu/assets/post-gen/cleanup-logs.sh diff --git a/images/linux/post-generation/environment-variables.sh b/images/ubuntu/assets/post-gen/environment-variables.sh similarity index 100% rename from images/linux/post-generation/environment-variables.sh rename to images/ubuntu/assets/post-gen/environment-variables.sh diff --git a/images/linux/post-generation/systemd-linger.sh b/images/ubuntu/assets/post-gen/systemd-linger.sh similarity index 100% rename from images/linux/post-generation/systemd-linger.sh rename to images/ubuntu/assets/post-gen/systemd-linger.sh diff --git a/images/linux/config/ubuntu2004.conf b/images/ubuntu/assets/ubuntu2004.conf similarity index 100% rename from images/linux/config/ubuntu2004.conf rename to images/ubuntu/assets/ubuntu2004.conf diff --git a/images/linux/config/ubuntu2204.conf b/images/ubuntu/assets/ubuntu2204.conf similarity index 100% rename from images/linux/config/ubuntu2204.conf rename to images/ubuntu/assets/ubuntu2204.conf diff --git a/images/linux/scripts/installers/Configure-Toolset.ps1 b/images/ubuntu/scripts/build/Configure-Toolset.ps1 similarity index 96% rename from images/linux/scripts/installers/Configure-Toolset.ps1 rename to images/ubuntu/scripts/build/Configure-Toolset.ps1 index dfef74e0c..c35866bf3 100644 --- a/images/linux/scripts/installers/Configure-Toolset.ps1 +++ b/images/ubuntu/scripts/build/Configure-Toolset.ps1 @@ -1,95 +1,95 @@ -################################################################################ -## File: Configure-Toolset.ps1 -## Team: CI-Build -## Desc: Configure toolset -################################################################################ - -Import-Module "$env:HELPER_SCRIPTS/Tests.Helpers.psm1" -DisableNameChecking - -function Get-ToolsetToolFullPath -{ - param - ( - [Parameter(Mandatory)] [string] $ToolName, - [Parameter(Mandatory)] [string] $ToolVersion, - [Parameter(Mandatory)] [string] $ToolArchitecture - ) - - $toolPath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath $toolName - $toolPathVersion = Join-Path -Path $toolPath -ChildPath $toolVersion - $foundVersion = Get-Item $toolPathVersion | Sort-Object -Property {[version]$_.name} -Descending | Select-Object -First 1 - $installationDir = Join-Path -Path $foundVersion -ChildPath $toolArchitecture - return $installationDir -} - -function Add-EnvironmentVariable -{ - param - ( - [Parameter(Mandatory)] [string] $Name, - [Parameter(Mandatory)] [string] $Value, - [string] $FilePath = "/etc/environment" - ) - - $envVar = "{0}={1}" -f $name, $value - Tee-Object -InputObject $envVar -FilePath $filePath -Append -} - -$ErrorActionPreference = "Stop" - -Write-Host "Configure toolset tools environment..." -$toolsEnvironment = @{ - go = @{ - command = "ln -s {0}/bin/* /usr/bin/" - variableTemplate = "GOROOT_{0}_{1}_X64" - } -} - -$toolset = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw | ConvertFrom-Json - -foreach ($tool in $toolset.toolcache) -{ - $toolName = $tool.name - $toolArch = $tool.arch - $toolEnvironment = $toolsEnvironment[$toolName] - - if (-not $toolEnvironment) - { - continue - } - - foreach ($toolVersion in $tool.versions) - { - Write-Host "Set $toolName $toolVersion environment variable..." - $toolPath = Get-ToolsetToolFullPath -ToolName $toolName -ToolVersion $toolVersion -ToolArchitecture $toolArch - $envName = $toolEnvironment.variableTemplate -f $toolVersion.split(".") - - # Add environment variable name=value - Add-EnvironmentVariable -Name $envName -Value $toolPath - } - - # Invoke command and add env variable for the default tool version - $toolDefVersion = $tool.default - if (-not $toolDefVersion) - { - continue - } - - $envDefName = $toolEnvironment.defaultVariable - $toolPath = Get-ToolsetToolFullPath -ToolName $toolName -ToolVersion $toolDefVersion -ToolArchitecture $toolArch - - if ($envDefName) - { - Write-Host "Set default $envDefName for $toolName $toolDefVersion environment variable..." - Add-EnvironmentVariable -Name $envDefName -Value $toolPath - } - - if ($toolEnvironment.command) - { - $command = $toolEnvironment.command -f $toolPath - Write-Host "Invoke $command command for default $toolName $toolDefVersion..." - Invoke-Expression -Command $command - } -} - -Invoke-PesterTests -TestFile "Toolset" -TestName "Toolset" +################################################################################ +## File: Configure-Toolset.ps1 +## Team: CI-Build +## Desc: Configure toolset +################################################################################ + +Import-Module "$env:HELPER_SCRIPTS/Tests.Helpers.psm1" -DisableNameChecking + +function Get-ToolsetToolFullPath +{ + param + ( + [Parameter(Mandatory)] [string] $ToolName, + [Parameter(Mandatory)] [string] $ToolVersion, + [Parameter(Mandatory)] [string] $ToolArchitecture + ) + + $toolPath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath $toolName + $toolPathVersion = Join-Path -Path $toolPath -ChildPath $toolVersion + $foundVersion = Get-Item $toolPathVersion | Sort-Object -Property {[version]$_.name} -Descending | Select-Object -First 1 + $installationDir = Join-Path -Path $foundVersion -ChildPath $toolArchitecture + return $installationDir +} + +function Add-EnvironmentVariable +{ + param + ( + [Parameter(Mandatory)] [string] $Name, + [Parameter(Mandatory)] [string] $Value, + [string] $FilePath = "/etc/environment" + ) + + $envVar = "{0}={1}" -f $name, $value + Tee-Object -InputObject $envVar -FilePath $filePath -Append +} + +$ErrorActionPreference = "Stop" + +Write-Host "Configure toolset tools environment..." +$toolsEnvironment = @{ + go = @{ + command = "ln -s {0}/bin/* /usr/bin/" + variableTemplate = "GOROOT_{0}_{1}_X64" + } +} + +$toolset = Get-Content -Path "$env:INSTALLER_SCRIPT_FOLDER/toolset.json" -Raw | ConvertFrom-Json + +foreach ($tool in $toolset.toolcache) +{ + $toolName = $tool.name + $toolArch = $tool.arch + $toolEnvironment = $toolsEnvironment[$toolName] + + if (-not $toolEnvironment) + { + continue + } + + foreach ($toolVersion in $tool.versions) + { + Write-Host "Set $toolName $toolVersion environment variable..." + $toolPath = Get-ToolsetToolFullPath -ToolName $toolName -ToolVersion $toolVersion -ToolArchitecture $toolArch + $envName = $toolEnvironment.variableTemplate -f $toolVersion.split(".") + + # Add environment variable name=value + Add-EnvironmentVariable -Name $envName -Value $toolPath + } + + # Invoke command and add env variable for the default tool version + $toolDefVersion = $tool.default + if (-not $toolDefVersion) + { + continue + } + + $envDefName = $toolEnvironment.defaultVariable + $toolPath = Get-ToolsetToolFullPath -ToolName $toolName -ToolVersion $toolDefVersion -ToolArchitecture $toolArch + + if ($envDefName) + { + Write-Host "Set default $envDefName for $toolName $toolDefVersion environment variable..." + Add-EnvironmentVariable -Name $envDefName -Value $toolPath + } + + if ($toolEnvironment.command) + { + $command = $toolEnvironment.command -f $toolPath + Write-Host "Invoke $command command for default $toolName $toolDefVersion..." + Invoke-Expression -Command $command + } +} + +Invoke-PesterTests -TestFile "Toolset" -TestName "Toolset" diff --git a/images/linux/scripts/installers/Install-AzureModules.ps1 b/images/ubuntu/scripts/build/Install-AzureModules.ps1 similarity index 100% rename from images/linux/scripts/installers/Install-AzureModules.ps1 rename to images/ubuntu/scripts/build/Install-AzureModules.ps1 diff --git a/images/linux/scripts/installers/Install-PowerShellModules.ps1 b/images/ubuntu/scripts/build/Install-PowerShellModules.ps1 similarity index 96% rename from images/linux/scripts/installers/Install-PowerShellModules.ps1 rename to images/ubuntu/scripts/build/Install-PowerShellModules.ps1 index 95e03545e..8a41d7ed5 100644 --- a/images/linux/scripts/installers/Install-PowerShellModules.ps1 +++ b/images/ubuntu/scripts/build/Install-PowerShellModules.ps1 @@ -1,34 +1,34 @@ -$ErrorActionPreference = "Stop" -$ProgressPreference = "SilentlyContinue" - -Import-Module "$env:HELPER_SCRIPTS/Tests.Helpers.psm1" -DisableNameChecking - -# Specifies the installation policy -Set-PSRepository -InstallationPolicy Trusted -Name PSGallery - -# Try to update PowerShellGet before the actual installation -Install-Module -Name PowerShellGet -Force -Update-Module -Name PowerShellGet -Force - -# Install PowerShell modules -$modules = (Get-ToolsetContent).powershellModules - -foreach($module in $modules) -{ - $moduleName = $module.name - Write-Host "Installing ${moduleName} module" - - if ($module.versions) - { - foreach ($version in $module.versions) - { - Write-Host " - $version" - Install-Module -Name $moduleName -RequiredVersion $version -Scope AllUsers -SkipPublisherCheck -Force - } - continue - } - - Install-Module -Name $moduleName -Scope AllUsers -SkipPublisherCheck -Force -} - -Invoke-PesterTests -TestFile "PowerShellModules" -TestName "PowerShellModules" +$ErrorActionPreference = "Stop" +$ProgressPreference = "SilentlyContinue" + +Import-Module "$env:HELPER_SCRIPTS/Tests.Helpers.psm1" -DisableNameChecking + +# Specifies the installation policy +Set-PSRepository -InstallationPolicy Trusted -Name PSGallery + +# Try to update PowerShellGet before the actual installation +Install-Module -Name PowerShellGet -Force +Update-Module -Name PowerShellGet -Force + +# Install PowerShell modules +$modules = (Get-ToolsetContent).powershellModules + +foreach($module in $modules) +{ + $moduleName = $module.name + Write-Host "Installing ${moduleName} module" + + if ($module.versions) + { + foreach ($version in $module.versions) + { + Write-Host " - $version" + Install-Module -Name $moduleName -RequiredVersion $version -Scope AllUsers -SkipPublisherCheck -Force + } + continue + } + + Install-Module -Name $moduleName -Scope AllUsers -SkipPublisherCheck -Force +} + +Invoke-PesterTests -TestFile "PowerShellModules" -TestName "PowerShellModules" diff --git a/images/linux/scripts/installers/Install-Toolset.ps1 b/images/ubuntu/scripts/build/Install-Toolset.ps1 similarity index 100% rename from images/linux/scripts/installers/Install-Toolset.ps1 rename to images/ubuntu/scripts/build/Install-Toolset.ps1 diff --git a/images/linux/scripts/installers/action-archive-cache.sh b/images/ubuntu/scripts/build/action-archive-cache.sh old mode 100755 new mode 100644 similarity index 100% rename from images/linux/scripts/installers/action-archive-cache.sh rename to images/ubuntu/scripts/build/action-archive-cache.sh diff --git a/images/linux/scripts/installers/aliyun-cli.sh b/images/ubuntu/scripts/build/aliyun-cli.sh similarity index 100% rename from images/linux/scripts/installers/aliyun-cli.sh rename to images/ubuntu/scripts/build/aliyun-cli.sh diff --git a/images/linux/scripts/installers/android.sh b/images/ubuntu/scripts/build/android.sh similarity index 100% rename from images/linux/scripts/installers/android.sh rename to images/ubuntu/scripts/build/android.sh diff --git a/images/linux/scripts/installers/apache.sh b/images/ubuntu/scripts/build/apache.sh similarity index 100% rename from images/linux/scripts/installers/apache.sh rename to images/ubuntu/scripts/build/apache.sh diff --git a/images/linux/scripts/installers/apt-common.sh b/images/ubuntu/scripts/build/apt-common.sh similarity index 100% rename from images/linux/scripts/installers/apt-common.sh rename to images/ubuntu/scripts/build/apt-common.sh diff --git a/images/linux/scripts/base/apt-mock-remove.sh b/images/ubuntu/scripts/build/apt-mock-remove.sh similarity index 100% rename from images/linux/scripts/base/apt-mock-remove.sh rename to images/ubuntu/scripts/build/apt-mock-remove.sh diff --git a/images/linux/scripts/base/apt-mock.sh b/images/ubuntu/scripts/build/apt-mock.sh similarity index 100% rename from images/linux/scripts/base/apt-mock.sh rename to images/ubuntu/scripts/build/apt-mock.sh diff --git a/images/linux/scripts/base/apt-ubuntu-archive.sh b/images/ubuntu/scripts/build/apt-ubuntu-archive.sh similarity index 100% rename from images/linux/scripts/base/apt-ubuntu-archive.sh rename to images/ubuntu/scripts/build/apt-ubuntu-archive.sh diff --git a/images/linux/scripts/installers/apt-vital.sh b/images/ubuntu/scripts/build/apt-vital.sh similarity index 100% rename from images/linux/scripts/installers/apt-vital.sh rename to images/ubuntu/scripts/build/apt-vital.sh diff --git a/images/linux/scripts/base/apt.sh b/images/ubuntu/scripts/build/apt.sh similarity index 100% rename from images/linux/scripts/base/apt.sh rename to images/ubuntu/scripts/build/apt.sh diff --git a/images/linux/scripts/installers/aws.sh b/images/ubuntu/scripts/build/aws.sh similarity index 100% rename from images/linux/scripts/installers/aws.sh rename to images/ubuntu/scripts/build/aws.sh diff --git a/images/linux/scripts/installers/azcopy.sh b/images/ubuntu/scripts/build/azcopy.sh similarity index 100% rename from images/linux/scripts/installers/azcopy.sh rename to images/ubuntu/scripts/build/azcopy.sh diff --git a/images/linux/scripts/installers/azure-cli.sh b/images/ubuntu/scripts/build/azure-cli.sh similarity index 100% rename from images/linux/scripts/installers/azure-cli.sh rename to images/ubuntu/scripts/build/azure-cli.sh diff --git a/images/linux/scripts/installers/azure-devops-cli.sh b/images/ubuntu/scripts/build/azure-devops-cli.sh similarity index 100% rename from images/linux/scripts/installers/azure-devops-cli.sh rename to images/ubuntu/scripts/build/azure-devops-cli.sh diff --git a/images/linux/scripts/installers/bazel.sh b/images/ubuntu/scripts/build/bazel.sh similarity index 100% rename from images/linux/scripts/installers/bazel.sh rename to images/ubuntu/scripts/build/bazel.sh diff --git a/images/linux/scripts/installers/bicep.sh b/images/ubuntu/scripts/build/bicep.sh similarity index 100% rename from images/linux/scripts/installers/bicep.sh rename to images/ubuntu/scripts/build/bicep.sh diff --git a/images/linux/scripts/installers/clang.sh b/images/ubuntu/scripts/build/clang.sh similarity index 100% rename from images/linux/scripts/installers/clang.sh rename to images/ubuntu/scripts/build/clang.sh diff --git a/images/linux/scripts/installers/cleanup.sh b/images/ubuntu/scripts/build/cleanup.sh similarity index 100% rename from images/linux/scripts/installers/cleanup.sh rename to images/ubuntu/scripts/build/cleanup.sh diff --git a/images/linux/scripts/installers/cmake.sh b/images/ubuntu/scripts/build/cmake.sh similarity index 100% rename from images/linux/scripts/installers/cmake.sh rename to images/ubuntu/scripts/build/cmake.sh diff --git a/images/linux/scripts/installers/codeql-bundle.sh b/images/ubuntu/scripts/build/codeql-bundle.sh similarity index 100% rename from images/linux/scripts/installers/codeql-bundle.sh rename to images/ubuntu/scripts/build/codeql-bundle.sh diff --git a/images/linux/scripts/installers/complete-snap-setup.sh b/images/ubuntu/scripts/build/complete-snap-setup.sh similarity index 100% rename from images/linux/scripts/installers/complete-snap-setup.sh rename to images/ubuntu/scripts/build/complete-snap-setup.sh diff --git a/images/linux/scripts/installers/configure-environment.sh b/images/ubuntu/scripts/build/configure-environment.sh similarity index 100% rename from images/linux/scripts/installers/configure-environment.sh rename to images/ubuntu/scripts/build/configure-environment.sh diff --git a/images/linux/scripts/installers/containers.sh b/images/ubuntu/scripts/build/containers.sh similarity index 100% rename from images/linux/scripts/installers/containers.sh rename to images/ubuntu/scripts/build/containers.sh diff --git a/images/linux/scripts/installers/docker-compose.sh b/images/ubuntu/scripts/build/docker-compose.sh similarity index 100% rename from images/linux/scripts/installers/docker-compose.sh rename to images/ubuntu/scripts/build/docker-compose.sh diff --git a/images/linux/scripts/installers/docker.sh b/images/ubuntu/scripts/build/docker.sh similarity index 100% rename from images/linux/scripts/installers/docker.sh rename to images/ubuntu/scripts/build/docker.sh diff --git a/images/linux/scripts/installers/dotnetcore-sdk.sh b/images/ubuntu/scripts/build/dotnetcore-sdk.sh similarity index 100% rename from images/linux/scripts/installers/dotnetcore-sdk.sh rename to images/ubuntu/scripts/build/dotnetcore-sdk.sh diff --git a/images/linux/scripts/installers/dpkg-config.sh b/images/ubuntu/scripts/build/dpkg-config.sh similarity index 100% rename from images/linux/scripts/installers/dpkg-config.sh rename to images/ubuntu/scripts/build/dpkg-config.sh diff --git a/images/linux/scripts/installers/erlang.sh b/images/ubuntu/scripts/build/erlang.sh similarity index 100% rename from images/linux/scripts/installers/erlang.sh rename to images/ubuntu/scripts/build/erlang.sh diff --git a/images/linux/scripts/installers/example.sh b/images/ubuntu/scripts/build/example.sh similarity index 100% rename from images/linux/scripts/installers/example.sh rename to images/ubuntu/scripts/build/example.sh diff --git a/images/linux/scripts/installers/firefox.sh b/images/ubuntu/scripts/build/firefox.sh similarity index 100% rename from images/linux/scripts/installers/firefox.sh rename to images/ubuntu/scripts/build/firefox.sh diff --git a/images/linux/scripts/installers/gcc.sh b/images/ubuntu/scripts/build/gcc.sh similarity index 100% rename from images/linux/scripts/installers/gcc.sh rename to images/ubuntu/scripts/build/gcc.sh diff --git a/images/linux/scripts/installers/gfortran.sh b/images/ubuntu/scripts/build/gfortran.sh similarity index 100% rename from images/linux/scripts/installers/gfortran.sh rename to images/ubuntu/scripts/build/gfortran.sh diff --git a/images/linux/scripts/installers/git-lfs.sh b/images/ubuntu/scripts/build/git-lfs.sh similarity index 100% rename from images/linux/scripts/installers/git-lfs.sh rename to images/ubuntu/scripts/build/git-lfs.sh diff --git a/images/linux/scripts/installers/git.sh b/images/ubuntu/scripts/build/git.sh similarity index 100% rename from images/linux/scripts/installers/git.sh rename to images/ubuntu/scripts/build/git.sh diff --git a/images/linux/scripts/installers/github-cli.sh b/images/ubuntu/scripts/build/github-cli.sh similarity index 100% rename from images/linux/scripts/installers/github-cli.sh rename to images/ubuntu/scripts/build/github-cli.sh diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/ubuntu/scripts/build/google-chrome.sh similarity index 100% rename from images/linux/scripts/installers/google-chrome.sh rename to images/ubuntu/scripts/build/google-chrome.sh diff --git a/images/linux/scripts/installers/google-cloud-cli.sh b/images/ubuntu/scripts/build/google-cloud-cli.sh similarity index 100% rename from images/linux/scripts/installers/google-cloud-cli.sh rename to images/ubuntu/scripts/build/google-cloud-cli.sh diff --git a/images/linux/scripts/installers/haskell.sh b/images/ubuntu/scripts/build/haskell.sh similarity index 100% rename from images/linux/scripts/installers/haskell.sh rename to images/ubuntu/scripts/build/haskell.sh diff --git a/images/linux/scripts/installers/heroku.sh b/images/ubuntu/scripts/build/heroku.sh similarity index 100% rename from images/linux/scripts/installers/heroku.sh rename to images/ubuntu/scripts/build/heroku.sh diff --git a/images/linux/scripts/installers/hhvm.sh b/images/ubuntu/scripts/build/hhvm.sh similarity index 100% rename from images/linux/scripts/installers/hhvm.sh rename to images/ubuntu/scripts/build/hhvm.sh diff --git a/images/linux/scripts/installers/homebrew.sh b/images/ubuntu/scripts/build/homebrew.sh similarity index 100% rename from images/linux/scripts/installers/homebrew.sh rename to images/ubuntu/scripts/build/homebrew.sh diff --git a/images/linux/scripts/installers/java-tools.sh b/images/ubuntu/scripts/build/java-tools.sh similarity index 100% rename from images/linux/scripts/installers/java-tools.sh rename to images/ubuntu/scripts/build/java-tools.sh diff --git a/images/linux/scripts/installers/julia.sh b/images/ubuntu/scripts/build/julia.sh similarity index 100% rename from images/linux/scripts/installers/julia.sh rename to images/ubuntu/scripts/build/julia.sh diff --git a/images/linux/scripts/installers/kotlin.sh b/images/ubuntu/scripts/build/kotlin.sh similarity index 100% rename from images/linux/scripts/installers/kotlin.sh rename to images/ubuntu/scripts/build/kotlin.sh diff --git a/images/linux/scripts/installers/kubernetes-tools.sh b/images/ubuntu/scripts/build/kubernetes-tools.sh similarity index 100% rename from images/linux/scripts/installers/kubernetes-tools.sh rename to images/ubuntu/scripts/build/kubernetes-tools.sh diff --git a/images/linux/scripts/installers/leiningen.sh b/images/ubuntu/scripts/build/leiningen.sh similarity index 100% rename from images/linux/scripts/installers/leiningen.sh rename to images/ubuntu/scripts/build/leiningen.sh diff --git a/images/linux/scripts/base/limits.sh b/images/ubuntu/scripts/build/limits.sh similarity index 100% rename from images/linux/scripts/base/limits.sh rename to images/ubuntu/scripts/build/limits.sh diff --git a/images/linux/scripts/installers/microsoft-edge.sh b/images/ubuntu/scripts/build/microsoft-edge.sh similarity index 100% rename from images/linux/scripts/installers/microsoft-edge.sh rename to images/ubuntu/scripts/build/microsoft-edge.sh diff --git a/images/linux/scripts/installers/miniconda.sh b/images/ubuntu/scripts/build/miniconda.sh similarity index 100% rename from images/linux/scripts/installers/miniconda.sh rename to images/ubuntu/scripts/build/miniconda.sh diff --git a/images/linux/scripts/installers/mongodb.sh b/images/ubuntu/scripts/build/mongodb.sh similarity index 100% rename from images/linux/scripts/installers/mongodb.sh rename to images/ubuntu/scripts/build/mongodb.sh diff --git a/images/linux/scripts/installers/mono.sh b/images/ubuntu/scripts/build/mono.sh similarity index 100% rename from images/linux/scripts/installers/mono.sh rename to images/ubuntu/scripts/build/mono.sh diff --git a/images/linux/scripts/installers/mssql-cmd-tools.sh b/images/ubuntu/scripts/build/mssql-cmd-tools.sh similarity index 100% rename from images/linux/scripts/installers/mssql-cmd-tools.sh rename to images/ubuntu/scripts/build/mssql-cmd-tools.sh diff --git a/images/linux/scripts/installers/mysql.sh b/images/ubuntu/scripts/build/mysql.sh similarity index 100% rename from images/linux/scripts/installers/mysql.sh rename to images/ubuntu/scripts/build/mysql.sh diff --git a/images/linux/scripts/installers/nginx.sh b/images/ubuntu/scripts/build/nginx.sh similarity index 100% rename from images/linux/scripts/installers/nginx.sh rename to images/ubuntu/scripts/build/nginx.sh diff --git a/images/linux/scripts/installers/nodejs.sh b/images/ubuntu/scripts/build/nodejs.sh similarity index 100% rename from images/linux/scripts/installers/nodejs.sh rename to images/ubuntu/scripts/build/nodejs.sh diff --git a/images/linux/scripts/installers/nvm.sh b/images/ubuntu/scripts/build/nvm.sh similarity index 100% rename from images/linux/scripts/installers/nvm.sh rename to images/ubuntu/scripts/build/nvm.sh diff --git a/images/linux/scripts/installers/oc.sh b/images/ubuntu/scripts/build/oc.sh similarity index 100% rename from images/linux/scripts/installers/oc.sh rename to images/ubuntu/scripts/build/oc.sh diff --git a/images/linux/scripts/installers/oras-cli.sh b/images/ubuntu/scripts/build/oras-cli.sh similarity index 100% rename from images/linux/scripts/installers/oras-cli.sh rename to images/ubuntu/scripts/build/oras-cli.sh diff --git a/images/linux/scripts/installers/packer.sh b/images/ubuntu/scripts/build/packer.sh similarity index 100% rename from images/linux/scripts/installers/packer.sh rename to images/ubuntu/scripts/build/packer.sh diff --git a/images/linux/scripts/installers/phantomjs.sh b/images/ubuntu/scripts/build/phantomjs.sh similarity index 100% rename from images/linux/scripts/installers/phantomjs.sh rename to images/ubuntu/scripts/build/phantomjs.sh diff --git a/images/linux/scripts/installers/php.sh b/images/ubuntu/scripts/build/php.sh similarity index 100% rename from images/linux/scripts/installers/php.sh rename to images/ubuntu/scripts/build/php.sh diff --git a/images/linux/scripts/installers/pipx-packages.sh b/images/ubuntu/scripts/build/pipx-packages.sh similarity index 100% rename from images/linux/scripts/installers/pipx-packages.sh rename to images/ubuntu/scripts/build/pipx-packages.sh diff --git a/images/linux/scripts/installers/post-deployment.sh b/images/ubuntu/scripts/build/post-deployment.sh similarity index 100% rename from images/linux/scripts/installers/post-deployment.sh rename to images/ubuntu/scripts/build/post-deployment.sh diff --git a/images/linux/scripts/installers/postgresql.sh b/images/ubuntu/scripts/build/postgresql.sh similarity index 100% rename from images/linux/scripts/installers/postgresql.sh rename to images/ubuntu/scripts/build/postgresql.sh diff --git a/images/linux/scripts/installers/powershellcore.sh b/images/ubuntu/scripts/build/powershellcore.sh similarity index 100% rename from images/linux/scripts/installers/powershellcore.sh rename to images/ubuntu/scripts/build/powershellcore.sh diff --git a/images/linux/scripts/installers/preimagedata.sh b/images/ubuntu/scripts/build/preimagedata.sh similarity index 91% rename from images/linux/scripts/installers/preimagedata.sh rename to images/ubuntu/scripts/build/preimagedata.sh index 62c6d3bed..cc932532b 100644 --- a/images/linux/scripts/installers/preimagedata.sh +++ b/images/ubuntu/scripts/build/preimagedata.sh @@ -11,7 +11,7 @@ version_major=${os_version/.*/} version_wo_dot=${os_version/./} github_url="https://github.com/actions/runner-images/blob" -software_url="${github_url}/ubuntu${version_major}/${image_version_major}.${image_version_minor}/images/linux/Ubuntu${version_wo_dot}-Readme.md" +software_url="${github_url}/ubuntu${version_major}/${image_version_major}.${image_version_minor}/images/ubuntu/Ubuntu${version_wo_dot}-Readme.md" releaseUrl="https://github.com/actions/runner-images/releases/tag/ubuntu${version_major}%2F${image_version_major}.${image_version_minor}" cat < $imagedata_file diff --git a/images/linux/scripts/installers/pulumi.sh b/images/ubuntu/scripts/build/pulumi.sh similarity index 100% rename from images/linux/scripts/installers/pulumi.sh rename to images/ubuntu/scripts/build/pulumi.sh diff --git a/images/linux/scripts/installers/pypy.sh b/images/ubuntu/scripts/build/pypy.sh similarity index 100% rename from images/linux/scripts/installers/pypy.sh rename to images/ubuntu/scripts/build/pypy.sh diff --git a/images/linux/scripts/installers/python.sh b/images/ubuntu/scripts/build/python.sh similarity index 100% rename from images/linux/scripts/installers/python.sh rename to images/ubuntu/scripts/build/python.sh diff --git a/images/linux/scripts/installers/r.sh b/images/ubuntu/scripts/build/r.sh similarity index 100% rename from images/linux/scripts/installers/r.sh rename to images/ubuntu/scripts/build/r.sh diff --git a/images/linux/scripts/base/reboot.sh b/images/ubuntu/scripts/build/reboot.sh similarity index 100% rename from images/linux/scripts/base/reboot.sh rename to images/ubuntu/scripts/build/reboot.sh diff --git a/images/linux/scripts/base/repos.sh b/images/ubuntu/scripts/build/repos.sh similarity index 100% rename from images/linux/scripts/base/repos.sh rename to images/ubuntu/scripts/build/repos.sh diff --git a/images/linux/scripts/installers/ruby.sh b/images/ubuntu/scripts/build/ruby.sh similarity index 100% rename from images/linux/scripts/installers/ruby.sh rename to images/ubuntu/scripts/build/ruby.sh diff --git a/images/linux/scripts/installers/runner-package.sh b/images/ubuntu/scripts/build/runner-package.sh similarity index 100% rename from images/linux/scripts/installers/runner-package.sh rename to images/ubuntu/scripts/build/runner-package.sh diff --git a/images/linux/scripts/installers/rust.sh b/images/ubuntu/scripts/build/rust.sh similarity index 100% rename from images/linux/scripts/installers/rust.sh rename to images/ubuntu/scripts/build/rust.sh diff --git a/images/linux/scripts/installers/sbt.sh b/images/ubuntu/scripts/build/sbt.sh similarity index 100% rename from images/linux/scripts/installers/sbt.sh rename to images/ubuntu/scripts/build/sbt.sh diff --git a/images/linux/scripts/installers/selenium.sh b/images/ubuntu/scripts/build/selenium.sh similarity index 100% rename from images/linux/scripts/installers/selenium.sh rename to images/ubuntu/scripts/build/selenium.sh diff --git a/images/linux/scripts/base/snap.sh b/images/ubuntu/scripts/build/snap.sh similarity index 100% rename from images/linux/scripts/base/snap.sh rename to images/ubuntu/scripts/build/snap.sh diff --git a/images/linux/scripts/installers/sphinx.sh b/images/ubuntu/scripts/build/sphinx.sh similarity index 100% rename from images/linux/scripts/installers/sphinx.sh rename to images/ubuntu/scripts/build/sphinx.sh diff --git a/images/linux/scripts/installers/sqlpackage.sh b/images/ubuntu/scripts/build/sqlpackage.sh similarity index 100% rename from images/linux/scripts/installers/sqlpackage.sh rename to images/ubuntu/scripts/build/sqlpackage.sh diff --git a/images/linux/scripts/installers/swift.sh b/images/ubuntu/scripts/build/swift.sh similarity index 100% rename from images/linux/scripts/installers/swift.sh rename to images/ubuntu/scripts/build/swift.sh diff --git a/images/linux/scripts/installers/terraform.sh b/images/ubuntu/scripts/build/terraform.sh similarity index 100% rename from images/linux/scripts/installers/terraform.sh rename to images/ubuntu/scripts/build/terraform.sh diff --git a/images/linux/scripts/installers/validate-disk-space.sh b/images/ubuntu/scripts/build/validate-disk-space.sh similarity index 100% rename from images/linux/scripts/installers/validate-disk-space.sh rename to images/ubuntu/scripts/build/validate-disk-space.sh diff --git a/images/linux/scripts/installers/vcpkg.sh b/images/ubuntu/scripts/build/vcpkg.sh similarity index 100% rename from images/linux/scripts/installers/vcpkg.sh rename to images/ubuntu/scripts/build/vcpkg.sh diff --git a/images/linux/scripts/installers/yq.sh b/images/ubuntu/scripts/build/yq.sh similarity index 100% rename from images/linux/scripts/installers/yq.sh rename to images/ubuntu/scripts/build/yq.sh diff --git a/images/linux/scripts/installers/zstd.sh b/images/ubuntu/scripts/build/zstd.sh similarity index 100% rename from images/linux/scripts/installers/zstd.sh rename to images/ubuntu/scripts/build/zstd.sh diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Android.psm1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.Android.psm1 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.Android.psm1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.Android.psm1 diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Browsers.psm1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.Browsers.psm1 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.Browsers.psm1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.Browsers.psm1 diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.CachedTools.psm1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.CachedTools.psm1 old mode 100755 new mode 100644 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.CachedTools.psm1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.CachedTools.psm1 diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.Common.psm1 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.Common.psm1 diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Databases.psm1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.Databases.psm1 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.Databases.psm1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.Databases.psm1 diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.Generator.ps1 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.Generator.ps1 diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Java.psm1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.Java.psm1 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.Java.psm1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.Java.psm1 diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Rust.psm1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.Rust.psm1 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.Rust.psm1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.Rust.psm1 diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.Tools.psm1 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.Tools.psm1 diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.WebServers.psm1 b/images/ubuntu/scripts/docs-gen/SoftwareReport.WebServers.psm1 similarity index 100% rename from images/linux/scripts/SoftwareReport/SoftwareReport.WebServers.psm1 rename to images/ubuntu/scripts/docs-gen/SoftwareReport.WebServers.psm1 diff --git a/images/linux/scripts/helpers/Common.Helpers.psm1 b/images/ubuntu/scripts/helpers/Common.Helpers.psm1 similarity index 100% rename from images/linux/scripts/helpers/Common.Helpers.psm1 rename to images/ubuntu/scripts/helpers/Common.Helpers.psm1 diff --git a/images/linux/scripts/helpers/SoftwareReport.Helpers.psm1 b/images/ubuntu/scripts/helpers/SoftwareReport.Helpers.psm1 similarity index 100% rename from images/linux/scripts/helpers/SoftwareReport.Helpers.psm1 rename to images/ubuntu/scripts/helpers/SoftwareReport.Helpers.psm1 diff --git a/images/linux/scripts/helpers/Tests.Helpers.psm1 b/images/ubuntu/scripts/helpers/Tests.Helpers.psm1 similarity index 100% rename from images/linux/scripts/helpers/Tests.Helpers.psm1 rename to images/ubuntu/scripts/helpers/Tests.Helpers.psm1 diff --git a/images/linux/scripts/helpers/etc-environment.sh b/images/ubuntu/scripts/helpers/etc-environment.sh similarity index 100% rename from images/linux/scripts/helpers/etc-environment.sh rename to images/ubuntu/scripts/helpers/etc-environment.sh diff --git a/images/linux/scripts/helpers/install.sh b/images/ubuntu/scripts/helpers/install.sh similarity index 100% rename from images/linux/scripts/helpers/install.sh rename to images/ubuntu/scripts/helpers/install.sh diff --git a/images/linux/scripts/helpers/invoke-tests.sh b/images/ubuntu/scripts/helpers/invoke-tests.sh similarity index 100% rename from images/linux/scripts/helpers/invoke-tests.sh rename to images/ubuntu/scripts/helpers/invoke-tests.sh diff --git a/images/linux/scripts/helpers/os.sh b/images/ubuntu/scripts/helpers/os.sh similarity index 100% rename from images/linux/scripts/helpers/os.sh rename to images/ubuntu/scripts/helpers/os.sh diff --git a/images/linux/scripts/tests/ActionArchiveCache.Tests.ps1 b/images/ubuntu/scripts/tests/ActionArchiveCache.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/ActionArchiveCache.Tests.ps1 rename to images/ubuntu/scripts/tests/ActionArchiveCache.Tests.ps1 diff --git a/images/linux/scripts/tests/Android.Tests.ps1 b/images/ubuntu/scripts/tests/Android.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Android.Tests.ps1 rename to images/ubuntu/scripts/tests/Android.Tests.ps1 diff --git a/images/linux/scripts/tests/Apt.Tests.ps1 b/images/ubuntu/scripts/tests/Apt.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Apt.Tests.ps1 rename to images/ubuntu/scripts/tests/Apt.Tests.ps1 diff --git a/images/linux/scripts/tests/Browsers.Tests.ps1 b/images/ubuntu/scripts/tests/Browsers.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Browsers.Tests.ps1 rename to images/ubuntu/scripts/tests/Browsers.Tests.ps1 diff --git a/images/linux/scripts/tests/CLI.Tools.Tests.ps1 b/images/ubuntu/scripts/tests/CLI.Tools.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/CLI.Tools.Tests.ps1 rename to images/ubuntu/scripts/tests/CLI.Tools.Tests.ps1 diff --git a/images/linux/scripts/tests/Common.Tests.ps1 b/images/ubuntu/scripts/tests/Common.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Common.Tests.ps1 rename to images/ubuntu/scripts/tests/Common.Tests.ps1 diff --git a/images/linux/scripts/tests/Databases.Tests.ps1 b/images/ubuntu/scripts/tests/Databases.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Databases.Tests.ps1 rename to images/ubuntu/scripts/tests/Databases.Tests.ps1 diff --git a/images/linux/scripts/tests/DotnetSDK.Tests.ps1 b/images/ubuntu/scripts/tests/DotnetSDK.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/DotnetSDK.Tests.ps1 rename to images/ubuntu/scripts/tests/DotnetSDK.Tests.ps1 diff --git a/images/linux/scripts/tests/Haskell.Tests.ps1 b/images/ubuntu/scripts/tests/Haskell.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Haskell.Tests.ps1 rename to images/ubuntu/scripts/tests/Haskell.Tests.ps1 diff --git a/images/linux/scripts/tests/Java.Tests.ps1 b/images/ubuntu/scripts/tests/Java.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Java.Tests.ps1 rename to images/ubuntu/scripts/tests/Java.Tests.ps1 diff --git a/images/linux/scripts/tests/Node.Tests.ps1 b/images/ubuntu/scripts/tests/Node.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Node.Tests.ps1 rename to images/ubuntu/scripts/tests/Node.Tests.ps1 diff --git a/images/linux/scripts/tests/PowerShellModules.Tests.ps1 b/images/ubuntu/scripts/tests/PowerShellModules.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/PowerShellModules.Tests.ps1 rename to images/ubuntu/scripts/tests/PowerShellModules.Tests.ps1 diff --git a/images/linux/scripts/tests/RunAll-Tests.ps1 b/images/ubuntu/scripts/tests/RunAll-Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/RunAll-Tests.ps1 rename to images/ubuntu/scripts/tests/RunAll-Tests.ps1 diff --git a/images/linux/scripts/tests/RunnerCache.Tests.ps1 b/images/ubuntu/scripts/tests/RunnerCache.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/RunnerCache.Tests.ps1 rename to images/ubuntu/scripts/tests/RunnerCache.Tests.ps1 diff --git a/images/linux/scripts/tests/Tools.Tests.ps1 b/images/ubuntu/scripts/tests/Tools.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Tools.Tests.ps1 rename to images/ubuntu/scripts/tests/Tools.Tests.ps1 diff --git a/images/linux/scripts/tests/Toolset.Tests.ps1 b/images/ubuntu/scripts/tests/Toolset.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/Toolset.Tests.ps1 rename to images/ubuntu/scripts/tests/Toolset.Tests.ps1 diff --git a/images/linux/scripts/tests/WebServers.Tests.ps1 b/images/ubuntu/scripts/tests/WebServers.Tests.ps1 similarity index 100% rename from images/linux/scripts/tests/WebServers.Tests.ps1 rename to images/ubuntu/scripts/tests/WebServers.Tests.ps1 diff --git a/images/linux/ubuntu2004.json b/images/ubuntu/templates/ubuntu-20.04.json similarity index 61% rename from images/linux/ubuntu2004.json rename to images/ubuntu/templates/ubuntu-20.04.json index 2e524036f..2b5eda994 100644 --- a/images/linux/ubuntu2004.json +++ b/images/ubuntu/templates/ubuntu-20.04.json @@ -66,13 +66,15 @@ }, { "type": "shell", - "script": "{{template_dir}}/scripts/base/apt-mock.sh", + "script": "{{template_dir}}/../scripts/build/apt-mock.sh", "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/base/repos.sh" + "{{template_dir}}/../scripts/build/repos.sh", + "{{template_dir}}/../scripts/build/apt-ubuntu-archive.sh", + "{{template_dir}}/../scripts/build/apt.sh" ], "environment_vars": [ "DEBIAN_FRONTEND=noninteractive" @@ -81,64 +83,50 @@ }, { "type": "shell", - "script": "{{template_dir}}/scripts/base/apt-ubuntu-archive.sh", - "environment_vars": [ - "DEBIAN_FRONTEND=noninteractive" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "script": "{{template_dir}}/scripts/base/apt.sh", - "environment_vars": [ - "DEBIAN_FRONTEND=noninteractive" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, - { - "type": "shell", - "script": "{{template_dir}}/scripts/base/limits.sh", + "script": "{{template_dir}}/../scripts/build/limits.sh", "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, { "type": "file", - "source": "{{template_dir}}/scripts/helpers", + "source": "{{template_dir}}/../scripts/helpers", "destination": "{{user `helper_script_folder`}}" }, { "type": "file", - "source": "{{template_dir}}/scripts/installers", + "source": "{{template_dir}}/../scripts/build", "destination": "{{user `installer_script_folder`}}" }, { "type": "file", - "source": "{{ template_dir }}/post-generation", + "sources": [ + "{{template_dir}}/../scripts/tests", + "{{template_dir}}/../scripts/docs-gen", + "{{template_dir}}/../assets/post-gen" + ], "destination": "{{user `image_folder`}}" }, { "type": "file", - "source": "{{template_dir}}/scripts/tests", - "destination": "{{user `image_folder`}}" + "source": "{{template_dir}}/../../../helpers/software-report-base", + "destination": "{{user `image_folder`}}/docs-gen/" }, { "type": "file", - "source": "{{ template_dir }}/scripts/SoftwareReport", - "destination": "{{user `image_folder`}}" - }, - { - "type": "file", - "source": "{{ template_dir }}/../../helpers/software-report-base", - "destination": "{{user `image_folder`}}/SoftwareReport/" - }, - { - "type": "file", - "source": "{{template_dir}}/toolsets/toolset-2004.json", + "source": "{{template_dir}}/../toolsets/toolset-2004.json", "destination": "{{user `installer_script_folder`}}/toolset.json" }, + { + "type": "shell", + "inline": [ + "mv {{user `image_folder`}}/docs-gen {{user `image_folder`}}/SoftwareReport", + "mv {{user `image_folder`}}/post-gen {{user `image_folder`}}/post-generation" + ], + "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" + }, { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/preimagedata.sh" + "{{template_dir}}/../scripts/build/preimagedata.sh" ], "environment_vars": [ "IMAGE_VERSION={{user `image_version`}}", @@ -149,7 +137,7 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/configure-environment.sh" + "{{template_dir}}/../scripts/build/configure-environment.sh" ], "environment_vars": [ "IMAGE_VERSION={{user `image_version`}}", @@ -161,7 +149,7 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/apt-vital.sh" + "{{template_dir}}/../scripts/build/apt-vital.sh" ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}", @@ -173,8 +161,8 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/complete-snap-setup.sh", - "{{template_dir}}/scripts/installers/powershellcore.sh" + "{{template_dir}}/../scripts/build/complete-snap-setup.sh", + "{{template_dir}}/../scripts/build/powershellcore.sh" ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}" @@ -184,8 +172,8 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/Install-PowerShellModules.ps1", - "{{template_dir}}/scripts/installers/Install-AzureModules.ps1" + "{{template_dir}}/../scripts/build/Install-PowerShellModules.ps1", + "{{template_dir}}/../scripts/build/Install-AzureModules.ps1" ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}", @@ -196,70 +184,71 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/action-archive-cache.sh", - "{{template_dir}}/scripts/installers/runner-package.sh", - "{{template_dir}}/scripts/installers/apt-common.sh", - "{{template_dir}}/scripts/installers/azcopy.sh", - "{{template_dir}}/scripts/installers/azure-cli.sh", - "{{template_dir}}/scripts/installers/azure-devops-cli.sh", - "{{template_dir}}/scripts/installers/bicep.sh", - "{{template_dir}}/scripts/installers/aliyun-cli.sh", - "{{template_dir}}/scripts/installers/apache.sh", - "{{template_dir}}/scripts/installers/aws.sh", - "{{template_dir}}/scripts/installers/clang.sh", - "{{template_dir}}/scripts/installers/swift.sh", - "{{template_dir}}/scripts/installers/cmake.sh", - "{{template_dir}}/scripts/installers/codeql-bundle.sh", - "{{template_dir}}/scripts/installers/containers.sh", - "{{template_dir}}/scripts/installers/dotnetcore-sdk.sh", - "{{template_dir}}/scripts/installers/erlang.sh", - "{{template_dir}}/scripts/installers/firefox.sh", - "{{template_dir}}/scripts/installers/microsoft-edge.sh", - "{{template_dir}}/scripts/installers/gcc.sh", - "{{template_dir}}/scripts/installers/gfortran.sh", - "{{template_dir}}/scripts/installers/git.sh", - "{{template_dir}}/scripts/installers/git-lfs.sh", - "{{template_dir}}/scripts/installers/github-cli.sh", - "{{template_dir}}/scripts/installers/google-chrome.sh", - "{{template_dir}}/scripts/installers/google-cloud-cli.sh", - "{{template_dir}}/scripts/installers/haskell.sh", - "{{template_dir}}/scripts/installers/heroku.sh", - "{{template_dir}}/scripts/installers/hhvm.sh", - "{{template_dir}}/scripts/installers/java-tools.sh", - "{{template_dir}}/scripts/installers/kubernetes-tools.sh", - "{{template_dir}}/scripts/installers/oc.sh", - "{{template_dir}}/scripts/installers/leiningen.sh", - "{{template_dir}}/scripts/installers/miniconda.sh", - "{{template_dir}}/scripts/installers/mono.sh", - "{{template_dir}}/scripts/installers/kotlin.sh", - "{{template_dir}}/scripts/installers/mysql.sh", - "{{template_dir}}/scripts/installers/mssql-cmd-tools.sh", - "{{template_dir}}/scripts/installers/sqlpackage.sh", - "{{template_dir}}/scripts/installers/nginx.sh", - "{{template_dir}}/scripts/installers/nvm.sh", - "{{template_dir}}/scripts/installers/nodejs.sh", - "{{template_dir}}/scripts/installers/bazel.sh", - "{{template_dir}}/scripts/installers/oras-cli.sh", - "{{template_dir}}/scripts/installers/phantomjs.sh", - "{{template_dir}}/scripts/installers/php.sh", - "{{template_dir}}/scripts/installers/postgresql.sh", - "{{template_dir}}/scripts/installers/pulumi.sh", - "{{template_dir}}/scripts/installers/ruby.sh", - "{{template_dir}}/scripts/installers/r.sh", - "{{template_dir}}/scripts/installers/rust.sh", - "{{template_dir}}/scripts/installers/julia.sh", - "{{template_dir}}/scripts/installers/sbt.sh", - "{{template_dir}}/scripts/installers/selenium.sh", - "{{template_dir}}/scripts/installers/terraform.sh", - "{{template_dir}}/scripts/installers/packer.sh", - "{{template_dir}}/scripts/installers/vcpkg.sh", - "{{template_dir}}/scripts/installers/dpkg-config.sh", - "{{template_dir}}/scripts/installers/mongodb.sh", - "{{template_dir}}/scripts/installers/yq.sh", - "{{template_dir}}/scripts/installers/android.sh", - "{{template_dir}}/scripts/installers/pypy.sh", - "{{template_dir}}/scripts/installers/python.sh", - "{{template_dir}}/scripts/installers/zstd.sh" ], + "{{template_dir}}/../scripts/build/action-archive-cache.sh", + "{{template_dir}}/../scripts/build/runner-package.sh", + "{{template_dir}}/../scripts/build/apt-common.sh", + "{{template_dir}}/../scripts/build/azcopy.sh", + "{{template_dir}}/../scripts/build/azure-cli.sh", + "{{template_dir}}/../scripts/build/azure-devops-cli.sh", + "{{template_dir}}/../scripts/build/bicep.sh", + "{{template_dir}}/../scripts/build/aliyun-cli.sh", + "{{template_dir}}/../scripts/build/apache.sh", + "{{template_dir}}/../scripts/build/aws.sh", + "{{template_dir}}/../scripts/build/clang.sh", + "{{template_dir}}/../scripts/build/swift.sh", + "{{template_dir}}/../scripts/build/cmake.sh", + "{{template_dir}}/../scripts/build/codeql-bundle.sh", + "{{template_dir}}/../scripts/build/containers.sh", + "{{template_dir}}/../scripts/build/dotnetcore-sdk.sh", + "{{template_dir}}/../scripts/build/erlang.sh", + "{{template_dir}}/../scripts/build/firefox.sh", + "{{template_dir}}/../scripts/build/microsoft-edge.sh", + "{{template_dir}}/../scripts/build/gcc.sh", + "{{template_dir}}/../scripts/build/gfortran.sh", + "{{template_dir}}/../scripts/build/git.sh", + "{{template_dir}}/../scripts/build/git-lfs.sh", + "{{template_dir}}/../scripts/build/github-cli.sh", + "{{template_dir}}/../scripts/build/google-chrome.sh", + "{{template_dir}}/../scripts/build/google-cloud-cli.sh", + "{{template_dir}}/../scripts/build/haskell.sh", + "{{template_dir}}/../scripts/build/heroku.sh", + "{{template_dir}}/../scripts/build/hhvm.sh", + "{{template_dir}}/../scripts/build/java-tools.sh", + "{{template_dir}}/../scripts/build/kubernetes-tools.sh", + "{{template_dir}}/../scripts/build/oc.sh", + "{{template_dir}}/../scripts/build/leiningen.sh", + "{{template_dir}}/../scripts/build/miniconda.sh", + "{{template_dir}}/../scripts/build/mono.sh", + "{{template_dir}}/../scripts/build/kotlin.sh", + "{{template_dir}}/../scripts/build/mysql.sh", + "{{template_dir}}/../scripts/build/mssql-cmd-tools.sh", + "{{template_dir}}/../scripts/build/sqlpackage.sh", + "{{template_dir}}/../scripts/build/nginx.sh", + "{{template_dir}}/../scripts/build/nvm.sh", + "{{template_dir}}/../scripts/build/nodejs.sh", + "{{template_dir}}/../scripts/build/bazel.sh", + "{{template_dir}}/../scripts/build/oras-cli.sh", + "{{template_dir}}/../scripts/build/phantomjs.sh", + "{{template_dir}}/../scripts/build/php.sh", + "{{template_dir}}/../scripts/build/postgresql.sh", + "{{template_dir}}/../scripts/build/pulumi.sh", + "{{template_dir}}/../scripts/build/ruby.sh", + "{{template_dir}}/../scripts/build/r.sh", + "{{template_dir}}/../scripts/build/rust.sh", + "{{template_dir}}/../scripts/build/julia.sh", + "{{template_dir}}/../scripts/build/sbt.sh", + "{{template_dir}}/../scripts/build/selenium.sh", + "{{template_dir}}/../scripts/build/terraform.sh", + "{{template_dir}}/../scripts/build/packer.sh", + "{{template_dir}}/../scripts/build/vcpkg.sh", + "{{template_dir}}/../scripts/build/dpkg-config.sh", + "{{template_dir}}/../scripts/build/mongodb.sh", + "{{template_dir}}/../scripts/build/yq.sh", + "{{template_dir}}/../scripts/build/android.sh", + "{{template_dir}}/../scripts/build/pypy.sh", + "{{template_dir}}/../scripts/build/python.sh", + "{{template_dir}}/../scripts/build/zstd.sh" + ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}", "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}", @@ -270,8 +259,8 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/docker-compose.sh", - "{{template_dir}}/scripts/installers/docker.sh" + "{{template_dir}}/../scripts/build/docker-compose.sh", + "{{template_dir}}/../scripts/build/docker.sh" ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}", @@ -284,8 +273,8 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/Install-Toolset.ps1", - "{{template_dir}}/scripts/installers/Configure-Toolset.ps1" + "{{template_dir}}/../scripts/build/Install-Toolset.ps1", + "{{template_dir}}/../scripts/build/Configure-Toolset.ps1" ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}", @@ -296,7 +285,7 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/pipx-packages.sh" + "{{template_dir}}/../scripts/build/pipx-packages.sh" ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}", @@ -307,7 +296,7 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/homebrew.sh" + "{{template_dir}}/../scripts/build/homebrew.sh" ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}", @@ -318,14 +307,14 @@ }, { "type": "shell", - "script": "{{template_dir}}/scripts/base/snap.sh", + "script": "{{template_dir}}/../scripts/build/snap.sh", "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, { "type": "shell", "expect_disconnect": true, "scripts": [ - "{{template_dir}}/scripts/base/reboot.sh" + "{{template_dir}}/../scripts/build/reboot.sh" ], "execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'" }, @@ -334,13 +323,13 @@ "pause_before": "60s", "start_retry_timeout": "10m", "scripts": [ - "{{template_dir}}/scripts/installers/cleanup.sh" + "{{template_dir}}/../scripts/build/cleanup.sh" ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, { "type": "shell", - "script": "{{template_dir}}/scripts/base/apt-mock-remove.sh", + "script": "{{template_dir}}/../scripts/build/apt-mock-remove.sh", "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, { @@ -373,7 +362,7 @@ { "type": "shell", "scripts":[ - "{{template_dir}}/scripts/installers/post-deployment.sh" + "{{template_dir}}/../scripts/build/post-deployment.sh" ], "environment_vars":[ "HELPER_SCRIPT_FOLDER={{user `helper_script_folder`}}", @@ -385,7 +374,7 @@ { "type": "shell", "scripts":[ - "{{template_dir}}/scripts/installers/validate-disk-space.sh" + "{{template_dir}}/../scripts/build/validate-disk-space.sh" ], "environment_vars": [ "RUN_VALIDATION={{user `run_validation_diskspace`}}" @@ -393,7 +382,7 @@ }, { "type": "file", - "source": "{{template_dir}}/config/ubuntu2004.conf", + "source": "{{template_dir}}/../assets/ubuntu2004.conf", "destination": "/tmp/" }, { diff --git a/images/linux/ubuntu2204.pkr.hcl b/images/ubuntu/templates/ubuntu-22.04.pkr.hcl similarity index 59% rename from images/linux/ubuntu2204.pkr.hcl rename to images/ubuntu/templates/ubuntu-22.04.pkr.hcl index 650711a87..726955775 100644 --- a/images/linux/ubuntu2204.pkr.hcl +++ b/images/ubuntu/templates/ubuntu-22.04.pkr.hcl @@ -185,209 +185,203 @@ build { provisioner "shell" { execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - script = "${path.root}/scripts/base/apt-mock.sh" + script = "${path.root}/../scripts/build/apt-mock.sh" } provisioner "shell" { environment_vars = ["DEBIAN_FRONTEND=noninteractive"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/base/repos.sh"] - } - - provisioner "shell" { - environment_vars = ["DEBIAN_FRONTEND=noninteractive"] - execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/base/apt-ubuntu-archive.sh"] - } - - provisioner "shell" { - environment_vars = ["DEBIAN_FRONTEND=noninteractive"] - execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - script = "${path.root}/scripts/base/apt.sh" + scripts = [ + "${path.root}/../scripts/build/repos.sh", + "${path.root}/../scripts/build/apt-ubuntu-archive.sh", + "${path.root}/../scripts/build/apt.sh" + ] } provisioner "shell" { execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - script = "${path.root}/scripts/base/limits.sh" + script = "${path.root}/../scripts/build/limits.sh" } provisioner "file" { destination = "${var.helper_script_folder}" - source = "${path.root}/scripts/helpers" + source = "${path.root}/../scripts/helpers" } provisioner "file" { destination = "${var.installer_script_folder}" - source = "${path.root}/scripts/installers" + source = "${path.root}/../scripts/build" } provisioner "file" { destination = "${var.image_folder}" - source = "${path.root}/post-generation" + sources = [ + "${path.root}/../assets/post-gen", + "${path.root}/../scripts/tests", + "${path.root}/../scripts/docs-gen" + ] } provisioner "file" { - destination = "${var.image_folder}" - source = "${path.root}/scripts/tests" - } - - provisioner "file" { - destination = "${var.image_folder}" - source = "${path.root}/scripts/SoftwareReport" - } - - provisioner "file" { - destination = "${var.image_folder}/SoftwareReport/" - source = "${path.root}/../../helpers/software-report-base" + destination = "${var.image_folder}/docs-gen/" + source = "${path.root}/../../../helpers/software-report-base" } provisioner "file" { destination = "${var.installer_script_folder}/toolset.json" - source = "${path.root}/toolsets/toolset-2204.json" + source = "${path.root}/../toolsets/toolset-2204.json" + } + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + inline = [ + "mv ${var.image_folder}/docs-gen ${var.image_folder}/SoftwareReport", + "mv ${var.image_folder}/post-gen ${var.image_folder}/post-generation" + ] } provisioner "shell" { environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGEDATA_FILE=${var.imagedata_file}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/preimagedata.sh"] + scripts = ["${path.root}/../scripts/build/preimagedata.sh"] } provisioner "shell" { environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGE_OS=${var.image_os}", "HELPER_SCRIPTS=${var.helper_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/configure-environment.sh"] + scripts = ["${path.root}/../scripts/build/configure-environment.sh"] } provisioner "shell" { environment_vars = ["DEBIAN_FRONTEND=noninteractive", "HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/apt-vital.sh"] + scripts = ["${path.root}/../scripts/build/apt-vital.sh"] } provisioner "shell" { environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/complete-snap-setup.sh", "${path.root}/scripts/installers/powershellcore.sh"] + scripts = ["${path.root}/../scripts/build/complete-snap-setup.sh", "${path.root}/../scripts/build/powershellcore.sh"] } provisioner "shell" { environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/Install-PowerShellModules.ps1", "${path.root}/scripts/installers/Install-AzureModules.ps1"] + scripts = ["${path.root}/../scripts/build/Install-PowerShellModules.ps1", "${path.root}/../scripts/build/Install-AzureModules.ps1"] } provisioner "shell" { environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "DEBIAN_FRONTEND=noninteractive"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" scripts = [ - "${path.root}/scripts/installers/action-archive-cache.sh", - "${path.root}/scripts/installers/runner-package.sh", - "${path.root}/scripts/installers/apt-common.sh", - "${path.root}/scripts/installers/azcopy.sh", - "${path.root}/scripts/installers/azure-cli.sh", - "${path.root}/scripts/installers/azure-devops-cli.sh", - "${path.root}/scripts/installers/bicep.sh", - "${path.root}/scripts/installers/aliyun-cli.sh", - "${path.root}/scripts/installers/apache.sh", - "${path.root}/scripts/installers/aws.sh", - "${path.root}/scripts/installers/clang.sh", - "${path.root}/scripts/installers/swift.sh", - "${path.root}/scripts/installers/cmake.sh", - "${path.root}/scripts/installers/codeql-bundle.sh", - "${path.root}/scripts/installers/containers.sh", - "${path.root}/scripts/installers/dotnetcore-sdk.sh", - "${path.root}/scripts/installers/firefox.sh", - "${path.root}/scripts/installers/microsoft-edge.sh", - "${path.root}/scripts/installers/gcc.sh", - "${path.root}/scripts/installers/gfortran.sh", - "${path.root}/scripts/installers/git.sh", - "${path.root}/scripts/installers/git-lfs.sh", - "${path.root}/scripts/installers/github-cli.sh", - "${path.root}/scripts/installers/google-chrome.sh", - "${path.root}/scripts/installers/google-cloud-cli.sh", - "${path.root}/scripts/installers/haskell.sh", - "${path.root}/scripts/installers/heroku.sh", - "${path.root}/scripts/installers/java-tools.sh", - "${path.root}/scripts/installers/kubernetes-tools.sh", - "${path.root}/scripts/installers/oc.sh", - "${path.root}/scripts/installers/leiningen.sh", - "${path.root}/scripts/installers/miniconda.sh", - "${path.root}/scripts/installers/mono.sh", - "${path.root}/scripts/installers/kotlin.sh", - "${path.root}/scripts/installers/mysql.sh", - "${path.root}/scripts/installers/mssql-cmd-tools.sh", - "${path.root}/scripts/installers/sqlpackage.sh", - "${path.root}/scripts/installers/nginx.sh", - "${path.root}/scripts/installers/nvm.sh", - "${path.root}/scripts/installers/nodejs.sh", - "${path.root}/scripts/installers/bazel.sh", - "${path.root}/scripts/installers/oras-cli.sh", - "${path.root}/scripts/installers/php.sh", - "${path.root}/scripts/installers/postgresql.sh", - "${path.root}/scripts/installers/pulumi.sh", - "${path.root}/scripts/installers/ruby.sh", - "${path.root}/scripts/installers/r.sh", - "${path.root}/scripts/installers/rust.sh", - "${path.root}/scripts/installers/julia.sh", - "${path.root}/scripts/installers/sbt.sh", - "${path.root}/scripts/installers/selenium.sh", - "${path.root}/scripts/installers/terraform.sh", - "${path.root}/scripts/installers/packer.sh", - "${path.root}/scripts/installers/vcpkg.sh", - "${path.root}/scripts/installers/dpkg-config.sh", - "${path.root}/scripts/installers/yq.sh", - "${path.root}/scripts/installers/android.sh", - "${path.root}/scripts/installers/pypy.sh", - "${path.root}/scripts/installers/python.sh", - "${path.root}/scripts/installers/zstd.sh" + "${path.root}/../scripts/build/action-archive-cache.sh", + "${path.root}/../scripts/build/runner-package.sh", + "${path.root}/../scripts/build/apt-common.sh", + "${path.root}/../scripts/build/azcopy.sh", + "${path.root}/../scripts/build/azure-cli.sh", + "${path.root}/../scripts/build/azure-devops-cli.sh", + "${path.root}/../scripts/build/bicep.sh", + "${path.root}/../scripts/build/aliyun-cli.sh", + "${path.root}/../scripts/build/apache.sh", + "${path.root}/../scripts/build/aws.sh", + "${path.root}/../scripts/build/clang.sh", + "${path.root}/../scripts/build/swift.sh", + "${path.root}/../scripts/build/cmake.sh", + "${path.root}/../scripts/build/codeql-bundle.sh", + "${path.root}/../scripts/build/containers.sh", + "${path.root}/../scripts/build/dotnetcore-sdk.sh", + "${path.root}/../scripts/build/firefox.sh", + "${path.root}/../scripts/build/microsoft-edge.sh", + "${path.root}/../scripts/build/gcc.sh", + "${path.root}/../scripts/build/gfortran.sh", + "${path.root}/../scripts/build/git.sh", + "${path.root}/../scripts/build/git-lfs.sh", + "${path.root}/../scripts/build/github-cli.sh", + "${path.root}/../scripts/build/google-chrome.sh", + "${path.root}/../scripts/build/google-cloud-cli.sh", + "${path.root}/../scripts/build/haskell.sh", + "${path.root}/../scripts/build/heroku.sh", + "${path.root}/../scripts/build/java-tools.sh", + "${path.root}/../scripts/build/kubernetes-tools.sh", + "${path.root}/../scripts/build/oc.sh", + "${path.root}/../scripts/build/leiningen.sh", + "${path.root}/../scripts/build/miniconda.sh", + "${path.root}/../scripts/build/mono.sh", + "${path.root}/../scripts/build/kotlin.sh", + "${path.root}/../scripts/build/mysql.sh", + "${path.root}/../scripts/build/mssql-cmd-tools.sh", + "${path.root}/../scripts/build/sqlpackage.sh", + "${path.root}/../scripts/build/nginx.sh", + "${path.root}/../scripts/build/nvm.sh", + "${path.root}/../scripts/build/nodejs.sh", + "${path.root}/../scripts/build/bazel.sh", + "${path.root}/../scripts/build/oras-cli.sh", + "${path.root}/../scripts/build/php.sh", + "${path.root}/../scripts/build/postgresql.sh", + "${path.root}/../scripts/build/pulumi.sh", + "${path.root}/../scripts/build/ruby.sh", + "${path.root}/../scripts/build/r.sh", + "${path.root}/../scripts/build/rust.sh", + "${path.root}/../scripts/build/julia.sh", + "${path.root}/../scripts/build/sbt.sh", + "${path.root}/../scripts/build/selenium.sh", + "${path.root}/../scripts/build/terraform.sh", + "${path.root}/../scripts/build/packer.sh", + "${path.root}/../scripts/build/vcpkg.sh", + "${path.root}/../scripts/build/dpkg-config.sh", + "${path.root}/../scripts/build/yq.sh", + "${path.root}/../scripts/build/android.sh", + "${path.root}/../scripts/build/pypy.sh", + "${path.root}/../scripts/build/python.sh", + "${path.root}/../scripts/build/zstd.sh" ] } provisioner "shell" { environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "DOCKERHUB_LOGIN=${var.dockerhub_login}", "DOCKERHUB_PASSWORD=${var.dockerhub_password}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/docker-compose.sh", "${path.root}/scripts/installers/docker.sh"] + scripts = ["${path.root}/../scripts/build/docker-compose.sh", "${path.root}/../scripts/build/docker.sh"] } provisioner "shell" { environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/Install-Toolset.ps1", "${path.root}/scripts/installers/Configure-Toolset.ps1"] + scripts = ["${path.root}/../scripts/build/Install-Toolset.ps1", "${path.root}/../scripts/build/Configure-Toolset.ps1"] } provisioner "shell" { environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/pipx-packages.sh"] + scripts = ["${path.root}/../scripts/build/pipx-packages.sh"] } provisioner "shell" { environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "DEBIAN_FRONTEND=noninteractive", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] execute_command = "/bin/sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/homebrew.sh"] + scripts = ["${path.root}/../scripts/build/homebrew.sh"] } provisioner "shell" { execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - script = "${path.root}/scripts/base/snap.sh" + script = "${path.root}/../scripts/build/snap.sh" } provisioner "shell" { execute_command = "/bin/sh -c '{{ .Vars }} {{ .Path }}'" expect_disconnect = true - scripts = ["${path.root}/scripts/base/reboot.sh"] + scripts = ["${path.root}/../scripts/build/reboot.sh"] } provisioner "shell" { execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" pause_before = "1m0s" - scripts = ["${path.root}/scripts/installers/cleanup.sh"] + scripts = ["${path.root}/../scripts/build/cleanup.sh"] start_retry_timeout = "10m" } provisioner "shell" { execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - script = "${path.root}/scripts/base/apt-mock-remove.sh" + script = "${path.root}/../scripts/build/apt-mock-remove.sh" } provisioner "shell" { @@ -410,17 +404,17 @@ build { provisioner "shell" { environment_vars = ["HELPER_SCRIPT_FOLDER=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "IMAGE_FOLDER=${var.image_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/post-deployment.sh"] + scripts = ["${path.root}/../scripts/build/post-deployment.sh"] } provisioner "shell" { environment_vars = ["RUN_VALIDATION=${var.run_validation_diskspace}"] - scripts = ["${path.root}/scripts/installers/validate-disk-space.sh"] + scripts = ["${path.root}/../scripts/build/validate-disk-space.sh"] } provisioner "file" { destination = "/tmp/" - source = "${path.root}/config/ubuntu2204.conf" + source = "${path.root}/../assets/ubuntu2204.conf" } provisioner "shell" { diff --git a/images/linux/ubuntuminimal.pkr.hcl b/images/ubuntu/templates/ubuntu-minimal.pkr.hcl similarity index 80% rename from images/linux/ubuntuminimal.pkr.hcl rename to images/ubuntu/templates/ubuntu-minimal.pkr.hcl index 373fc06f4..9ccc62024 100644 --- a/images/linux/ubuntuminimal.pkr.hcl +++ b/images/ubuntu/templates/ubuntu-minimal.pkr.hcl @@ -146,12 +146,12 @@ source "azure-arm" "build_image" { virtual_network_name = "${var.virtual_network_name}" virtual_network_subnet_name = "${var.virtual_network_subnet_name}" allowed_inbound_ip_addresses = "${var.allowed_inbound_ip_addresses}" - + // VM Configuration vm_size = "${var.vm_size}" os_disk_size_gb = "86" os_type = "Linux" - + dynamic "azure_tag" { for_each = var.azure_tags content { @@ -174,122 +174,123 @@ build { // Add apt wrapper to implement retries provisioner "shell" { execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - script = "${path.root}/scripts/base/apt-mock.sh" + script = "${path.root}/../scripts/build/apt-mock.sh" } - // Install MS package repos + // Install MS package repos, Configure apt provisioner "shell" { environment_vars = ["DEBIAN_FRONTEND=noninteractive"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/base/repos.sh"] - } - - // Configure apt - provisioner "shell" { - environment_vars = ["DEBIAN_FRONTEND=noninteractive"] - execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - script = "${path.root}/scripts/base/apt.sh" + scripts = [ + "${path.root}/../scripts/build/repos.sh", + "${path.root}/../scripts/build/apt.sh" + ] } // Configure limits provisioner "shell" { execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - script = "${path.root}/scripts/base/limits.sh" + script = "${path.root}/../scripts/build/limits.sh" } provisioner "file" { destination = "${local.helper_script_folder}" - source = "${path.root}/scripts/helpers" + source = "${path.root}/../scripts/helpers" } provisioner "file" { destination = "${local.installer_script_folder}" - source = "${path.root}/scripts/installers" + source = "${path.root}/../scripts/build" } provisioner "file" { destination = "${local.image_folder}" sources = [ - "${path.root}/post-generation", - "${path.root}/scripts/tests" + "${path.root}/../assets/post-gen", + "${path.root}/../scripts/tests" ] } provisioner "file" { destination = "${local.installer_script_folder}/toolset.json" - source = "${path.root}/toolsets/${local.toolset_file_name}" + source = "${path.root}/../toolsets/${local.toolset_file_name}" + } + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + inline = ["mv ${local.image_folder}/post-gen ${local.image_folder}/post-generation"] } // Generate image data file provisioner "shell" { environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGEDATA_FILE=${local.imagedata_file}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/preimagedata.sh"] + scripts = ["${path.root}/../scripts/build/preimagedata.sh"] } // Create /etc/environment, configure waagent etc. provisioner "shell" { environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGE_OS=${local.image_os}", "HELPER_SCRIPTS=${local.helper_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/configure-environment.sh"] + scripts = ["${path.root}/../scripts/build/configure-environment.sh"] } provisioner "shell" { environment_vars = ["DEBIAN_FRONTEND=noninteractive", "HELPER_SCRIPTS=${local.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${local.installer_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/apt-vital.sh"] + scripts = ["${path.root}/../scripts/build/apt-vital.sh"] } provisioner "shell" { environment_vars = ["DEBIAN_FRONTEND=noninteractive", "HELPER_SCRIPTS=${local.helper_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/powershellcore.sh"] + scripts = ["${path.root}/../scripts/build/powershellcore.sh"] } provisioner "shell" { environment_vars = ["HELPER_SCRIPTS=${local.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${local.installer_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/Install-PowerShellModules.ps1"] + scripts = ["${path.root}/../scripts/build/Install-PowerShellModules.ps1"] } provisioner "shell" { environment_vars = ["DEBIAN_FRONTEND=noninteractive", "HELPER_SCRIPTS=${local.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${local.installer_script_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" scripts = [ - "${path.root}/scripts/installers/git.sh", - "${path.root}/scripts/installers/git-lfs.sh", - "${path.root}/scripts/installers/github-cli.sh", - "${path.root}/scripts/installers/zstd.sh" + "${path.root}/../scripts/build/git.sh", + "${path.root}/../scripts/build/git-lfs.sh", + "${path.root}/../scripts/build/github-cli.sh", + "${path.root}/../scripts/build/zstd.sh" ] } provisioner "shell" { execute_command = "/bin/sh -c '{{ .Vars }} {{ .Path }}'" expect_disconnect = true - scripts = ["${path.root}/scripts/base/reboot.sh"] + scripts = ["${path.root}/../scripts/build/reboot.sh"] } provisioner "shell" { execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" pause_before = "1m0s" - scripts = ["${path.root}/scripts/installers/cleanup.sh"] + scripts = ["${path.root}/../scripts/build/cleanup.sh"] start_retry_timeout = "10m" } provisioner "shell" { execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - script = "${path.root}/scripts/base/apt-mock-remove.sh" + script = "${path.root}/../scripts/build/apt-mock-remove.sh" } provisioner "shell" { environment_vars = ["HELPER_SCRIPT_FOLDER=${local.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${local.installer_script_folder}", "IMAGE_FOLDER=${local.image_folder}"] execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" - scripts = ["${path.root}/scripts/installers/post-deployment.sh"] + scripts = ["${path.root}/../scripts/build/post-deployment.sh"] } provisioner "shell" { environment_vars = ["RUN_VALIDATION=${var.run_validation_diskspace}"] - scripts = ["${path.root}/scripts/installers/validate-disk-space.sh"] + scripts = ["${path.root}/../scripts/build/validate-disk-space.sh"] } provisioner "shell" { diff --git a/images/linux/toolsets/toolset-2004.json b/images/ubuntu/toolsets/toolset-2004.json similarity index 100% rename from images/linux/toolsets/toolset-2004.json rename to images/ubuntu/toolsets/toolset-2004.json diff --git a/images/linux/toolsets/toolset-2204.json b/images/ubuntu/toolsets/toolset-2204.json similarity index 100% rename from images/linux/toolsets/toolset-2204.json rename to images/ubuntu/toolsets/toolset-2204.json