Skip to content

Commit ee08c8b

Browse files
Detect package root path from language repo when creating work item (#7859)
* Detect package root path from language repo when creating work item
1 parent 1d91293 commit ee08c8b

2 files changed

Lines changed: 93 additions & 17 deletions

File tree

eng/pipelines/devops-create-package-workitem.yml

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,6 @@ parameters:
2222
displayName: Package Display Name ( for e.g. Azure Core)
2323
type: string
2424
default: ''
25-
- name: PackageType
26-
type: string
27-
default: 'client'
28-
values:
29-
- client
30-
- mgmt
3125
- name: PackageName
3226
displayName: Package Name (e.g. Azure.Core)
3327
type: string
@@ -55,15 +49,15 @@ steps:
5549
displayName: Create Package Work Item
5650
inputs:
5751
pwsh: true
58-
filePath: $(Build.SourcesDirectory)/eng/common/scripts/Update-DevOps-Release-WorkItem.ps1
52+
filePath: $(Build.SourcesDirectory)/eng/scripts/Create-Package-WorkItem.ps1
5953
arguments: >
60-
-language "$(Language)"
61-
-serviceName "$(ServiceName)"
62-
-packageDisplayName "$(PackageDisplayName)"
63-
-packageType "$(PackageType)"
64-
-packageName "$(PackageName)"
65-
-version "$(PackageVersion)"
66-
-plannedDate "$(ReleaseDate)"
67-
-relatedWorkItemId "$(RelatedWorkItemId)"
68-
-tag "$(Tag)"
69-
-devops_pat "$(azuresdk-azure-sdk-devops-release-work-item-pat)"
54+
-Language "$(Language)"
55+
-ServiceName "$(ServiceName)"
56+
-PackageDisplayName "$(PackageDisplayName)"
57+
-PackageName "$(PackageName)"
58+
-PackageVersion "$(PackageVersion)"
59+
-ReleaseDate "$(ReleaseDate)"
60+
-RelatedWorkItemId "$(RelatedWorkItemId)"
61+
-Tag "$(Tag)"
62+
-WorkingDir "$(Pipeline.Workspace)"
63+
-Devops_pat "$(azuresdk-azure-sdk-devops-release-work-item-pat)"
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
[CmdletBinding()]
2+
param (
3+
[Parameter(Mandatory = $true)]
4+
[string]$Language,
5+
[Parameter(Mandatory = $true)]
6+
[string]$ServiceName,
7+
[Parameter(Mandatory = $true)]
8+
[string]$PackageName,
9+
[Parameter(Mandatory = $true)]
10+
[string]$PackageDisplayName,
11+
[Parameter(Mandatory = $true)]
12+
[string]$PackageVersion,
13+
[Parameter(Mandatory = $true)]
14+
[string]$ReleaseDate,
15+
[string]$RelatedWorkItemId,
16+
[string]$Tag = "",
17+
[string]$WorkingDir = ".",
18+
[string]$PackageRootPath = "",
19+
[string]$Devops_pat = $env:DEVOPS_PAT
20+
)
21+
22+
Set-StrictMode -Version 3
23+
24+
function Get-Repo-Name($language)
25+
{
26+
switch ($language)
27+
{
28+
".NET" { return "azure-sdk-for-net" }
29+
"Python" { return "azure-sdk-for-python" }
30+
"Java" { return "azure-sdk-for-java" }
31+
"JavaScript" { return "azure-sdk-for-js" }
32+
"Go" { return "azure-sdk-for-go" }
33+
"C" { return "azure-sdk-for-c" }
34+
"C++" { return "azure-sdk-for-cpp" }
35+
}
36+
Write-Host "Unknown language to map it to repo name. Language: [$language]"
37+
return ""
38+
}
39+
40+
41+
$repoName = Get-Repo-Name $language
42+
if (!$repoName)
43+
{
44+
Write-Error "GitHub repo name is not found for language [$language]. Failed to find package root path."
45+
exit 1
46+
}
47+
48+
# clone language repo
49+
$clonedRepoPath = Join-Path $WorkingDir $repoName
50+
Write-Host "Cloning repo [$repoName] to [$WorkingDir]."
51+
git clone --depth 1 "https://github.com/azure/$repoName.git" $clonedRepoPath
52+
Push-Location $clonedRepoPath
53+
54+
try
55+
{
56+
. "eng/common/scripts/common.ps1"
57+
# Parse package properties from cloned repo and find the package repo path
58+
$PkgProperties = Get-PkgProperties -PackageName $PackageName
59+
if (!$PkgProperties)
60+
{
61+
Write-Error "Failed to find package properties for package name [$PackageName]."
62+
exit 1
63+
}
64+
65+
# Create or update package work item
66+
&$EngCommonScriptsDir/Update-DevOps-Release-WorkItem.ps1 `
67+
-language $Language `
68+
-packageName $PackageName `
69+
-version $PackageVersion `
70+
-plannedDate $ReleaseDate `
71+
-packageRepoPath $PkgProperties.ServiceDirectory `
72+
-packageType $PkgProperties.SdkType `
73+
-packageNewLibrary $PkgProperties.IsNewSdk `
74+
-serviceName $ServiceName `
75+
-packageDisplayName $PackageDisplayName `
76+
-relatedWorkItemId $RelatedWorkItemId `
77+
-tag $Tag `
78+
-devops_pat $Devops_pat
79+
}
80+
finally {
81+
Pop-Location
82+
}

0 commit comments

Comments
 (0)