mirror of
https://github.com/actions/runner-images.git
synced 2025-12-17 07:06:54 +00:00
76 lines
3.4 KiB
PowerShell
76 lines
3.4 KiB
PowerShell
using module ../software-report-base/SoftwareReport.psm1
|
|
using module ../software-report-base/SoftwareReport.Nodes.psm1
|
|
|
|
param (
|
|
[Parameter(Mandatory)]
|
|
[string] $OutputDirectory
|
|
)
|
|
|
|
$global:ErrorActionPreference = "Stop"
|
|
$global:ErrorView = "NormalView"
|
|
Set-StrictMode -Version Latest
|
|
|
|
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Common.psm1") -DisableNameChecking
|
|
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Helpers.psm1") -DisableNameChecking
|
|
Import-Module (Join-Path $PSScriptRoot "Common.Helpers.psm1") -DisableNameChecking
|
|
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Tools.psm1") -DisableNameChecking
|
|
|
|
# Restore file owner in user profile
|
|
sudo chown -R ${env:USER}: $env:HOME
|
|
|
|
# Software report
|
|
$softwareReport = [SoftwareReport]::new("Ubuntu-Slim")
|
|
$softwareReport.Root.AddToolVersion("OS Version:", $(Get-OSVersionFull))
|
|
$softwareReport.Root.AddToolVersion("Kernel Version:", $(Get-KernelVersion))
|
|
$softwareReport.Root.AddToolVersion("Image Version:", $env:IMAGE_VERSION)
|
|
$softwareReport.Root.AddToolVersion("Systemd version:", $(Get-SystemdVersion))
|
|
|
|
$installedSoftware = $softwareReport.Root.AddHeader("Installed Software")
|
|
|
|
# Language and Runtime
|
|
$languageAndRuntime = $installedSoftware.AddHeader("Language and Runtime")
|
|
$languageAndRuntime.AddToolVersion("Bash", $(Get-BashVersion))
|
|
$languageAndRuntime.AddToolVersion("Dash", $(Get-DashVersion))
|
|
$languageAndRuntime.AddToolVersion("Node.js", $(Get-NodeVersion))
|
|
$languageAndRuntime.AddToolVersion("Perl", $(Get-PerlVersion))
|
|
$languageAndRuntime.AddToolVersion("Python", $(Get-PythonVersion))
|
|
|
|
# Package Management
|
|
$packageManagement = $installedSoftware.AddHeader("Package Management")
|
|
$packageManagement.AddToolVersion("Npm", $(Get-NpmVersion))
|
|
$packageManagement.AddToolVersion("Pip", $(Get-PipVersion))
|
|
$packageManagement.AddToolVersion("Pip3", $(Get-Pip3Version))
|
|
$packageManagement.AddToolVersion("Pipx", $(Get-PipxVersion))
|
|
|
|
# Tools
|
|
$tools = $installedSoftware.AddHeader("Tools")
|
|
$tools.AddToolVersion("AzCopy", $(Get-AzCopyVersion))
|
|
$tools.AddToolVersion("Bicep", $(Get-BicepVersion))
|
|
$tools.AddToolVersion("Git", $(Get-GitVersion))
|
|
$tools.AddToolVersion("Git LFS", $(Get-GitLFSVersion))
|
|
$tools.AddToolVersion("Git-ftp", $(Get-GitFTPVersion))
|
|
$tools.AddToolVersion("jq", $(Get-JqVersion))
|
|
$tools.AddToolVersion("nvm", $(Get-NvmVersion))
|
|
$tools.AddToolVersion("OpenSSL", $(Get-OpensslVersion))
|
|
$tools.AddToolVersion("yq", $(Get-YqVersion))
|
|
$tools.AddToolVersion("zstd", $(Get-ZstdVersion))
|
|
|
|
# CLI Tools
|
|
$cliTools = $installedSoftware.AddHeader("CLI Tools")
|
|
$cliTools.AddToolVersion("AWS CLI", $(Get-AWSCliVersion))
|
|
$cliTools.AddToolVersion("AWS CLI Session Manager Plugin", $(Get-AWSCliSessionManagerPluginVersion))
|
|
$cliTools.AddToolVersion("AWS SAM CLI", $(Get-AWSSAMVersion))
|
|
$cliTools.AddToolVersion("Azure CLI", $(Get-AzureCliVersion))
|
|
$cliTools.AddToolVersion("Azure CLI (azure-devops)", $(Get-AzureDevopsVersion))
|
|
$cliTools.AddToolVersion("GitHub CLI", $(Get-GitHubCliVersion))
|
|
$cliTools.AddToolVersion("Google Cloud CLI", $(Get-GoogleCloudCLIVersion))
|
|
|
|
# PowerShell Tools
|
|
$powerShellTools = $installedSoftware.AddHeader("PowerShell Tools")
|
|
$powerShellTools.AddToolVersion("PowerShell", $(Get-PowershellVersion))
|
|
|
|
$installedSoftware.AddHeader("Installed apt packages").AddTable($(Get-AptPackages))
|
|
|
|
$softwareReport.ToJson() | Out-File -FilePath "${OutputDirectory}/software-report.json" -Encoding UTF8NoBOM
|
|
$softwareReport.ToMarkdown() | Out-File -FilePath "${OutputDirectory}/software-report.md" -Encoding UTF8NoBOM
|