mirror of
https://github.com/actions/runner-images.git
synced 2025-12-10 11:07:02 +00:00
67 lines
2.2 KiB
PowerShell
67 lines
2.2 KiB
PowerShell
using module ./SoftwareReport.psm1
|
|
using module ./SoftwareReport.DifferenceCalculator.psm1
|
|
|
|
<#
|
|
.SYNOPSIS
|
|
Calculates the difference between two software reports and saves it to a file.
|
|
.PARAMETER PreviousJsonReportPath
|
|
Path to the previous software report.
|
|
.PARAMETER CurrentJsonReportPath
|
|
Path to the current software report.
|
|
.PARAMETER OutputFile
|
|
Path to the file where the difference will be saved.
|
|
.PARAMETER ReleaseBranchName
|
|
Name of the release branch to build image docs URL.
|
|
.PARAMETER ReadmePath
|
|
Path to the README file in repository to build image docs URL.
|
|
#>
|
|
|
|
Param (
|
|
[Parameter(Mandatory=$true)]
|
|
[string] $PreviousJsonReportPath,
|
|
[Parameter(Mandatory=$true)]
|
|
[string] $CurrentJsonReportPath,
|
|
[Parameter(Mandatory=$true)]
|
|
[string] $OutputFile,
|
|
[Parameter(Mandatory=$false)]
|
|
[string] $ReleaseBranchName,
|
|
[Parameter(Mandatory=$false)]
|
|
[string] $ReadmePath
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
$global:ErrorView = "NormalView"
|
|
|
|
function Read-SoftwareReport {
|
|
Param (
|
|
[Parameter(Mandatory=$true)]
|
|
[string] $JsonReportPath
|
|
)
|
|
|
|
if (-not (Test-Path $JsonReportPath)) {
|
|
throw "File '$JsonReportPath' does not exist"
|
|
}
|
|
|
|
$jsonReport = Get-Content -Path $JsonReportPath -Raw
|
|
$report = [SoftwareReport]::FromJson($jsonReport)
|
|
return $report
|
|
}
|
|
|
|
$previousReport = Read-SoftwareReport -JsonReportPath $PreviousJsonReportPath
|
|
$currentReport = Read-SoftwareReport -JsonReportPath $CurrentJsonReportPath
|
|
|
|
$comparer = [SoftwareReportDifferenceCalculator]::new($previousReport, $currentReport)
|
|
$comparer.CompareReports()
|
|
$diff = $comparer.GetMarkdownReport()
|
|
|
|
if ($ReleaseBranchName -and $ReadmePath) {
|
|
# https://github.com/actions/runner-images/blob/releases/macOS-12/20221215/images/macos/macos-12-Readme.md
|
|
$ImageDocsUrl = "https://github.com/actions/runner-images/blob/${ReleaseBranchName}/${ReadmePath}"
|
|
$diff += "`n`n`nFor comprehensive list of software installed on this image please click [here]($ImageDocsUrl)."
|
|
}
|
|
|
|
$parentDirectory = Split-Path $OutputFile -Parent
|
|
if (-not (Test-Path $parentDirectory)) { New-Item -Path $parentDirectory -ItemType Directory | Out-Null }
|
|
|
|
$diff | Out-File -Path $OutputFile -Encoding utf8NoBOM
|