Skip to content

Commit 03a5208

Browse files
committed
build(publish): parallel code gen on azure-sdk-for-net
- split the script of update `azure-sdk-for-net` into 2 scripts which update codes and samples respectively - change pipeline to split the job of generating all SDKs into 2 jobs which generate codes and samples respectively resolve #3067
1 parent 38393fe commit 03a5208

File tree

4 files changed

+62
-15
lines changed

4 files changed

+62
-15
lines changed

eng/UpdateAzureSdkForNet.ps1

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
11
param($AutorestCSharpVersion, $CadlEmitterVersion, $SdkRepoRoot)
22

3-
$SdkRepoRoot = Resolve-Path $SdkRepoRoot
4-
5-
Write-Host "Running Autorest.CSharp($AutorestCSharpVersion) and Cadl Emitter($CadlEmitterVersion) under $SdkRepoRoot"
3+
Import-Module "$PSScriptRoot\UpdateGeneratorMetadata.psm1" -DisableNameChecking -Force;
64

7-
$PackagesProps = "$SdkRepoRoot\eng\Packages.Data.props"
8-
(Get-Content -Raw $PackagesProps) -replace`
9-
'<PackageReference Update="Microsoft.Azure.AutoRest.CSharp" Version=".*?" />',
10-
"<PackageReference Update=`"Microsoft.Azure.AutoRest.CSharp`" Version=`"$AutorestCSharpVersion`" PrivateAssets=`"All`" />" | `
11-
Set-Content $PackagesProps -NoNewline
5+
$SdkRepoRoot = Resolve-Path $SdkRepoRoot
126

13-
$CadlEmitterProps = "$SdkRepoRoot\eng\emitter-package.json"
14-
(Get-Content -Raw $CadlEmitterProps) -replace`
15-
'"@azure-tools/cadl-csharp": ".*?"',
16-
"`"@azure-tools/cadl-csharp`": `"$CadlEmitterVersion`"" | `
17-
Set-Content $CadlEmitterProps -NoNewline
7+
UpdateGeneratorMetaData($AutorestCSharpVersion, $CadlEmitterVersion, $SdkRepoRoot)
188

9+
Write-Host "Generating Azure SDK Codes..."
1910
dotnet msbuild /restore /t:GenerateCode "$SdkRepoRoot\eng\service.proj"
20-
dotnet msbuild /restore /t:GenerateTests "$SdkRepoRoot\eng\service.proj"

eng/UpdateAzureSdkSampleForNet.ps1

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
param($AutorestCSharpVersion, $CadlEmitterVersion, $SdkRepoRoot)
2+
3+
Import-Module "$PSScriptRoot\UpdateGeneratorMetadata.psm1" -DisableNameChecking -Force;
4+
5+
$SdkRepoRoot = Resolve-Path $SdkRepoRoot
6+
7+
UpdateGeneratorMetaData($AutorestCSharpVersion, $CadlEmitterVersion, $SdkRepoRoot)
8+
9+
Write-Host "Generating Azure SDK Samples..."
10+
dotnet msbuild /restore /t:GenerateTests "$SdkRepoRoot\eng\service.proj"

eng/UpdateGeneratorMetadata.psm1

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function UpdateGeneratorMetaData($AutorestCSharpVersion, $CadlEmitterVersion, $SdkRepoRoot) {
2+
3+
Write-Host "Updating Autorest.CSharp($AutorestCSharpVersion) and Cadl Emitter($CadlEmitterVersion) under $SdkRepoRoot"
4+
5+
$PackagesProps = "$SdkRepoRoot\eng\Packages.Data.props"
6+
(Get-Content -Raw $PackagesProps) -replace `
7+
'<PackageReference Update="Microsoft.Azure.AutoRest.CSharp" Version=".*?" />',
8+
"<PackageReference Update=`"Microsoft.Azure.AutoRest.CSharp`" Version=`"$AutorestCSharpVersion`" PrivateAssets=`"All`" />" | `
9+
Set-Content $PackagesProps -NoNewline
10+
11+
$CadlEmitterProps = "$SdkRepoRoot\eng\emitter-package.json"
12+
(Get-Content -Raw $CadlEmitterProps) -replace `
13+
'"@azure-tools/cadl-csharp": ".*?"',
14+
"`"@azure-tools/cadl-csharp`": `"$CadlEmitterVersion`"" | `
15+
Set-Content $CadlEmitterProps -NoNewline
16+
}

eng/pipelines/build.yml

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ stages:
159159
- Build_and_Test
160160
- Release
161161
jobs:
162-
- job: Update
162+
- job: Update_Codes
163163
timeoutInMinutes: 180
164164
pool:
165165
vmImage: ubuntu-20.04
@@ -190,3 +190,34 @@ stages:
190190
PushArgs: -f
191191
WorkingDirectory: $(Build.SourcesDirectory)/azure-sdk-for-net
192192
ScriptDirectory: $(Build.SourcesDirectory)/azure-sdk-tools/eng/common/scripts
193+
- job: Update_Samples
194+
timeoutInMinutes: 180
195+
pool:
196+
vmImage: ubuntu-20.04
197+
variables:
198+
AutorestCSharpVersion: $[stageDependencies.Build_and_Test.Build.outputs['Package.AutorestCSharpVersion']]
199+
CadlEmitterVersion: $[stageDependencies.Build_and_Test.Build.outputs['Publish.CadlEmitterVersion']]
200+
steps:
201+
- checkout: self
202+
- checkout: azure-sdk-for-net
203+
- checkout: azure-sdk-tools
204+
- task: UseDotNet@2
205+
displayName: 'Use .NET Core SDK'
206+
inputs:
207+
useGlobalJson: true
208+
performMultiLevelLookup: true
209+
- pwsh: ./eng/UpdateAzureSdkSampleForNet.ps1 -AutorestCSharpVersion $(AutorestCSharpVersion) -CadlEmitterVersion $(CadlEmitterVersion) -SdkRepoRoot $(Build.SourcesDirectory)/azure-sdk-for-net
210+
failOnStderr: false
211+
workingDirectory: $(Build.SourcesDirectory)/autorest.csharp
212+
displayName: 'Update generator version in Azure SDK repo'
213+
- template: /eng/common/pipelines/templates/steps/create-pull-request.yml@azure-sdk-tools
214+
parameters:
215+
BaseBranchName: main
216+
RepoName: azure-sdk-for-net
217+
PRBranchName: auto-update-autorest
218+
CommitMsg: Update AutoRest C# version to $(AutorestCSharpVersion)
219+
PRBody: Update AutoRest C# version to $(AutorestCSharpVersion)
220+
PRTitle: Update AutoRest C# version
221+
PushArgs: -f
222+
WorkingDirectory: $(Build.SourcesDirectory)/azure-sdk-for-net
223+
ScriptDirectory: $(Build.SourcesDirectory)/azure-sdk-tools/eng/common/scripts

0 commit comments

Comments
 (0)