Skip to content

Commit

Permalink
Sync eng/common directory with azure-sdk-tools for PR 7512 (#22241)
Browse files Browse the repository at this point in the history
* generate an artifact with the updated files

* bring in Wes's feedback

---------

Co-authored-by: Scott Beddall (from Dev Box) <scbedd@microsoft.com>
  • Loading branch information
azure-sdk and scbedd authored Jan 17, 2024
1 parent 6d37f43 commit 2633a10
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions eng/common/scripts/Generate-PR-Diff.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<#
.SYNOPSIS
Script used to generate the diff.json file for a PR. Explicitly intended to work in a PR context.
.DESCRIPTION
Combines the result of git diff, some parsed details from the diff, and the PR number into a single JSON file. This JSON file is intended for use further along the pipeline.
.PARAMETER ArtifactPath
The folder in which the result will be written.
.PARAMETER TargetPath
The path under which changes will be detected.
#>
[CmdletBinding()]
Param (
[Parameter(Mandatory=$True)]
[string] $ArtifactPath,
[Parameter(Mandatory=$True)]
[string] $TargetPath
)

. (Join-Path $PSScriptRoot "Helpers" git-helpers.ps1)

function Get-ChangedServices {
Param (
[Parameter(Mandatory=$True)]
[string[]] $ChangedFiles
)

$changedServices = $ChangedFiles | Foreach-Object { if ($_ -match "sdk/([^/]+)") { $matches[1] } } | Sort-Object -Unique

return $changedServices
}

if (!(Test-Path $ArtifactPath)) {
New-Item -ItemType Directory -Path $ArtifactPath | Out-Null
}

$ArtifactPath = Resolve-Path $ArtifactPath
$ArtifactName = Join-Path $ArtifactPath "diff.json"

$changedFiles = Get-ChangedFiles -DiffPath $TargetPath
$changedServices = Get-ChangedServices -ChangedFiles $changedFiles

$result = [PSCustomObject]@{
"ChangedFiles" = $changedFiles
"ChangedServices" = $changedServices
"PRNumber" = $env:SYSTEM_PULLREQUEST_PULLREQUESTNUMBER
}

$result | ConvertTo-Json | Out-File $ArtifactName

0 comments on commit 2633a10

Please sign in to comment.