diff --git a/eng/pipelines/devops-create-package-workitem.yml b/eng/pipelines/devops-create-package-workitem.yml index a67ebd35696..c268103c3f2 100644 --- a/eng/pipelines/devops-create-package-workitem.yml +++ b/eng/pipelines/devops-create-package-workitem.yml @@ -22,12 +22,6 @@ parameters: displayName: Package Display Name ( for e.g. Azure Core) type: string default: '' -- name: PackageType - type: string - default: 'client' - values: - - client - - mgmt - name: PackageName displayName: Package Name (e.g. Azure.Core) type: string @@ -55,15 +49,15 @@ steps: displayName: Create Package Work Item inputs: pwsh: true - filePath: $(Build.SourcesDirectory)/eng/common/scripts/Update-DevOps-Release-WorkItem.ps1 + filePath: $(Build.SourcesDirectory)/eng/scripts/Create-Package-WorkItem.ps1 arguments: > - -language "$(Language)" - -serviceName "$(ServiceName)" - -packageDisplayName "$(PackageDisplayName)" - -packageType "$(PackageType)" - -packageName "$(PackageName)" - -version "$(PackageVersion)" - -plannedDate "$(ReleaseDate)" - -relatedWorkItemId "$(RelatedWorkItemId)" - -tag "$(Tag)" - -devops_pat "$(azuresdk-azure-sdk-devops-release-work-item-pat)" + -Language "$(Language)" + -ServiceName "$(ServiceName)" + -PackageDisplayName "$(PackageDisplayName)" + -PackageName "$(PackageName)" + -PackageVersion "$(PackageVersion)" + -ReleaseDate "$(ReleaseDate)" + -RelatedWorkItemId "$(RelatedWorkItemId)" + -Tag "$(Tag)" + -WorkingDir "$(Pipeline.Workspace)" + -Devops_pat "$(azuresdk-azure-sdk-devops-release-work-item-pat)" diff --git a/eng/scripts/Create-Package-WorkItem.ps1 b/eng/scripts/Create-Package-WorkItem.ps1 new file mode 100644 index 00000000000..86ed293a498 --- /dev/null +++ b/eng/scripts/Create-Package-WorkItem.ps1 @@ -0,0 +1,82 @@ +[CmdletBinding()] +param ( + [Parameter(Mandatory = $true)] + [string]$Language, + [Parameter(Mandatory = $true)] + [string]$ServiceName, + [Parameter(Mandatory = $true)] + [string]$PackageName, + [Parameter(Mandatory = $true)] + [string]$PackageDisplayName, + [Parameter(Mandatory = $true)] + [string]$PackageVersion, + [Parameter(Mandatory = $true)] + [string]$ReleaseDate, + [string]$RelatedWorkItemId, + [string]$Tag = "", + [string]$WorkingDir = ".", + [string]$PackageRootPath = "", + [string]$Devops_pat = $env:DEVOPS_PAT +) + +Set-StrictMode -Version 3 + +function Get-Repo-Name($language) +{ + switch ($language) + { + ".NET" { return "azure-sdk-for-net" } + "Python" { return "azure-sdk-for-python" } + "Java" { return "azure-sdk-for-java" } + "JavaScript" { return "azure-sdk-for-js" } + "Go" { return "azure-sdk-for-go" } + "C" { return "azure-sdk-for-c" } + "C++" { return "azure-sdk-for-cpp" } + } + Write-Host "Unknown language to map it to repo name. Language: [$language]" + return "" +} + + +$repoName = Get-Repo-Name $language +if (!$repoName) +{ + Write-Error "GitHub repo name is not found for language [$language]. Failed to find package root path." + exit 1 +} + +# clone language repo +$clonedRepoPath = Join-Path $WorkingDir $repoName +Write-Host "Cloning repo [$repoName] to [$WorkingDir]." +git clone --depth 1 "https://github.com/azure/$repoName.git" $clonedRepoPath +Push-Location $clonedRepoPath + +try +{ + . "eng/common/scripts/common.ps1" + # Parse package properties from cloned repo and find the package repo path + $PkgProperties = Get-PkgProperties -PackageName $PackageName + if (!$PkgProperties) + { + Write-Error "Failed to find package properties for package name [$PackageName]." + exit 1 + } + + # Create or update package work item + &$EngCommonScriptsDir/Update-DevOps-Release-WorkItem.ps1 ` + -language $Language ` + -packageName $PackageName ` + -version $PackageVersion ` + -plannedDate $ReleaseDate ` + -packageRepoPath $PkgProperties.ServiceDirectory ` + -packageType $PkgProperties.SdkType ` + -packageNewLibrary $PkgProperties.IsNewSdk ` + -serviceName $ServiceName ` + -packageDisplayName $PackageDisplayName ` + -relatedWorkItemId $RelatedWorkItemId ` + -tag $Tag ` + -devops_pat $Devops_pat +} +finally { + Pop-Location +} \ No newline at end of file