From 3bce2fa45cc425e8c6e5c7345f44a1e6153e526e Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 8 Jun 2023 19:10:00 -0700 Subject: [PATCH] Sync eng/common directory with azure-sdk-tools for PR 6305 (#4709) * Added switch to skip sync and generate script call * output switch * support forked spec repo in regex --------- Co-authored-by: raychen --- .../scripts/TypeSpec-Project-Process.ps1 | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/eng/common/scripts/TypeSpec-Project-Process.ps1 b/eng/common/scripts/TypeSpec-Project-Process.ps1 index a27036a80..71c7e003c 100644 --- a/eng/common/scripts/TypeSpec-Project-Process.ps1 +++ b/eng/common/scripts/TypeSpec-Project-Process.ps1 @@ -8,7 +8,8 @@ param ( [Parameter(Position = 1)] [string] $CommitHash, [Parameter(Position = 2)] - [string] $RepoUrl + [string] $RepoUrl, + [switch] $SkipSyncAndGenerate ) . $PSScriptRoot/common.ps1 @@ -111,7 +112,7 @@ $specRepoRoot = "" $generateFromLocalTypeSpec = $false # remote url scenario # example url of tspconfig.yaml: https://github.com/Azure/azure-rest-api-specs-pr/blob/724ccc4d7ef7655c0b4d5c5ac4a5513f19bbef35/specification/containerservice/Fleet.Management/tspconfig.yaml -if ($TypeSpecProjectDirectory -match '^https://github.com/(?Azure/azure-rest-api-specs(-pr)?)/blob/(?[0-9a-f]{40})/(?.*)/tspconfig.yaml$') { +if ($TypeSpecProjectDirectory -match '^https://github.com/(?[^/]*/azure-rest-api-specs(-pr)?)/blob/(?[0-9a-f]{40})/(?.*)/tspconfig.yaml$') { try { $TypeSpecProjectDirectory = $TypeSpecProjectDirectory -replace "https://github.com/(.*)/(tree|blob)", "https://raw.githubusercontent.com/`$1" Invoke-WebRequest $TypeSpecProjectDirectory -OutFile $tspConfigPath -MaximumRetryCount 3 @@ -199,14 +200,19 @@ if ($generateFromLocalTypeSpec) { $sdkProjectFolder = CreateUpdate-TspLocation $tspConfigYaml $TypeSpecProjectDirectory $CommitHash $repo $sdkRepoRootPath } -# call TypeSpec-Project-Sync.ps1 -$syncScript = Join-Path $PSScriptRoot TypeSpec-Project-Sync.ps1 -& $syncScript $sdkProjectFolder $specRepoRoot -if ($LASTEXITCODE) { exit $LASTEXITCODE } +# checking skip switch +if ($SkipSyncAndGenerate) { + Write-Host "Skip calling TypeSpec-Project-Sync.ps1 and TypeSpec-Project-Generate.ps1." +} else { + # call TypeSpec-Project-Sync.ps1 + $syncScript = Join-Path $PSScriptRoot TypeSpec-Project-Sync.ps1 + & $syncScript $sdkProjectFolder $specRepoRoot + if ($LASTEXITCODE) { exit $LASTEXITCODE } -# call TypeSpec-Project-Generate.ps1 -$generateScript = Join-Path $PSScriptRoot TypeSpec-Project-Generate.ps1 -& $generateScript $sdkProjectFolder -if ($LASTEXITCODE) { exit $LASTEXITCODE } + # call TypeSpec-Project-Generate.ps1 + $generateScript = Join-Path $PSScriptRoot TypeSpec-Project-Generate.ps1 + & $generateScript $sdkProjectFolder + if ($LASTEXITCODE) { exit $LASTEXITCODE } +} return $sdkProjectFolder \ No newline at end of file