Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions eng/GenerateSdkForNetCodeGenerationMatrix.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,10 @@ function New-Matrix([array]$PropsFiles) {
for($i=0;$i -lt $PropsFiles.Length;$i++) {
$fileName = $PropsFiles[$i].FileName
$projects = $PropsFiles[$i].Projects
$firstInitial = $projects[0].ServiceArea.Substring(0, 1)
$lastInitial = $projects[-1].ServiceArea.Substring(0, 1)
$matrix["$i`: $firstInitial-$lastInitial"] = @{ 'ProjectListOverrideFile' = $fileName }
$firstPrefix = $projects[0].ServiceArea.Substring(0, 2)
$lastPrefix = $projects[-1].ServiceArea.Substring(0, 2)
$key = "$firstPrefix`_$lastPrefix`_$i"
$matrix[$key] = @{ 'JobKey' = $key; 'ProjectListOverrideFile' = $fileName }
}
return $matrix
}
Expand Down
2 changes: 1 addition & 1 deletion eng/PackEmitter.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ finally {
Pop-Location
}

Write-Host "##vso[task.setvariable variable=emitterVersion;isoutput=true]$alphaVersion"
Write-Host "##vso[task.setvariable variable=TypeSpecEmitterVersion;isoutput=true]$alphaVersion"
9 changes: 1 addition & 8 deletions eng/UpdateAzureSdkForNet.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,15 @@ param(
[Parameter(Mandatory)]
[string]$AutorestCSharpVersion,

[Parameter(Mandatory)]
[string]$TypeSpecEmitterVersion,

[Parameter(Mandatory)]
[string]$SdkRepoRoot,

[string[]]$ServiceDirectoryFilters = @("*"),

[string]$ProjectListOverrideFile,

[switch]$ShowSummary,

[bool]$UseInternalFeed = $false)
[switch]$ShowSummary)

$ErrorActionPreference = 'Stop'

Invoke-Expression "$PSScriptRoot\UpdateGeneratorMetadata.ps1 -AutorestCSharpVersion $AutorestCSharpVersion -TypeSpecEmitterVersion $TypeSpecEmitterVersion -SdkRepoRoot $SdkRepoRoot -UseInternalFeed `$$UseInternalFeed"

Invoke-Expression "$PSScriptRoot\UpdateAzureSdkCodes.ps1 -SdkRepoRoot $SdkRepoRoot -ServiceDirectoryFilters $($ServiceDirectoryFilters -Join ',') -ProjectListOverrideFile $ProjectListOverrideFile $(if ($ShowSummary) {'-ShowSummary'})"
24 changes: 2 additions & 22 deletions eng/UpdateGeneratorMetadata.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,16 @@ param(
[string]$AutorestCSharpVersion,

[Parameter(Mandatory)]
[string]$TypeSpecEmitterVersion,

[Parameter(Mandatory)]
[string]$SdkRepoRoot,

[bool]$UseInternalFeed = $false)
[string]$SdkRepoRoot)

$ErrorActionPreference = 'Stop'

$SdkRepoRoot = Resolve-Path $SdkRepoRoot

Write-Host "Updating Autorest.CSharp($AutorestCSharpVersion) and TypeSpec Emitter($TypeSpecEmitterVersion) under $SdkRepoRoot"
Write-Host "Updating Autorest.CSharp($AutorestCSharpVersion) int Packages.Data.props under $SdkRepoRoot"

$PackagesProps = "$SdkRepoRoot\eng\Packages.Data.props"
(Get-Content -Raw $PackagesProps) -replace `
'<PackageReference Update="Microsoft.Azure.AutoRest.CSharp" Version=".*?" />',
"<PackageReference Update=`"Microsoft.Azure.AutoRest.CSharp`" Version=`"$AutorestCSharpVersion`" PrivateAssets=`"All`" />" | `
Set-Content $PackagesProps -NoNewline

$TypeSpecEmitterProps = "$SdkRepoRoot\eng\emitter-package.json"
(Get-Content -Raw $TypeSpecEmitterProps) -replace `
'"@azure-tools/typespec-csharp": ".*?"',
"`"@azure-tools/typespec-csharp`": `"$TypeSpecEmitterVersion`"" | `
Set-Content $TypeSpecEmitterProps -NoNewline

if ($UseInternalFeed) {
$npmrcFile = Resolve-Path (Join-Path $SdkRepoRoot ".npmrc")
$projectGeneratePath = "$SdkRepoRoot\eng\common\scripts\TypeSpec-Project-Generate.ps1"
(Get-Content -Raw $projectGeneratePath) -replace `
'npm install --no-lock-file',
"Copy-Item -Path $npmrcFile -Destination `".npmrc`" -Force`nnpm install --no-lock-file" | `
Set-Content $projectGeneratePath -NoNewline
}
36 changes: 23 additions & 13 deletions eng/pipelines/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ resources:
type: github
name: Azure/azure-sdk-tools
endpoint: azure
ref: refs/tags/azure-sdk-tools_20230428.1
ref: refs/tags/azure-sdk-tools_20231010.1
- repository: azure-sdk-for-net
type: github
name: Azure/azure-sdk-for-net
Expand Down Expand Up @@ -65,7 +65,7 @@ stages:
npm run prettier
displayName: "Emitter format check"
workingDirectory: $(Build.SourcesDirectory)/autorest.csharp/src/TypeSpec.Extension/Emitter.Csharp
- script: 'dotnet pack src/AutoRest.CSharp/AutoRest.CSharp.csproj -o $(Build.ArtifactStagingDirectory) -warnaserror -c Release'
- script: 'dotnet pack src/AutoRest.CSharp/AutoRest.CSharp.csproj -o $(Build.ArtifactStagingDirectory)/packages -warnaserror -c Release'
name: Package
displayName: 'Package'
workingDirectory: $(Build.SourcesDirectory)/autorest.csharp
Expand Down Expand Up @@ -111,11 +111,6 @@ stages:
npm run test --prefix src/TypeSpec.Extension/Emitter.Csharp
displayName: 'Unit Test'
workingDirectory: $(Build.SourcesDirectory)/autorest.csharp
- task: PublishBuildArtifacts@1
condition: succeededOrFailed()
displayName: 'Publish Artifacts'
inputs:
ArtifactName: packages
- ${{if and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['System.TeamProject'], 'internal'))}}:
- pwsh: >
./eng/PublishRelease.ps1
Expand Down Expand Up @@ -144,6 +139,18 @@ stages:
scriptLocation: "inlineScript"
inlineScript: npx cadl-ranch upload-coverage --coverageFile ./artifacts/coverage/cadl-ranch-coverage-csharp.json --generatorName csharp --storageAccountName azuresdkcadlranch --generatorVersion $(node -p -e "require('./src/TypeSpec.Extension/Emitter.Csharp/package.json').version")
workingDirectory: $(Build.SourcesDirectory)/autorest.csharp
- ${{if and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['System.TeamProject'], 'internal'))}}:
- template: new-emitter-package-files.yml
parameters:
EmitterPackageJsonPath: '$(Build.SourcesDirectory)/autorest.csharp/src/TypeSpec.Extension/Emitter.Csharp/package.json'
AutorestCSharpVersion: $(Package.AutorestCSharpVersion)
TypeSpecEmitterVersion: $(Publish.TypeSpecEmitterVersion)
OutputDirectory: $(Build.ArtifactStagingDirectory)
ToolsRepositoryPath: $(Build.SourcesDirectory)/azure-sdk-tools
- publish: $(Build.ArtifactStagingDirectory)
artifact: build_artifacts
condition: succeededOrFailed()
displayName: "Publish build artifacts"
- template: check-code-generation.yml
parameters:
name: Check_Code_Generation_A_B
Expand Down Expand Up @@ -173,25 +180,28 @@ stages:
variables:
AutorestCSharpVersion: $[stageDependencies.Build_and_Test.Build.outputs['Package.AutorestCSharpVersion']]
TypeSpecEmitterVersion: $[stageDependencies.Build_and_Test.Build.outputs['Publish.TypeSpecEmitterVersion']]
BranchName: "auto-update-autorest-$(AutorestCSharpVersion)"
jobs:
- template: update-generator-versions.yml
parameters:
Name: Update_Generator_Version
AutorestCSharpVersion: $(AutorestCSharpVersion)
TypeSpecEmitterVersion: $(TypeSpecEmitterVersion)
BranchName: $(BranchName)
- template: generate-sdk-job-matrix-files.yml
parameters:
Name: Generate_Job_Matrix
DependsOn: Update_Generator_Version
JobCount: 7
BranchName: $(BranchName)
- template: update-azure-sdk-for-net-codes.yml
parameters:
Name: Update_Code
DependsOn: Generate_Job_Matrix
Matrix: $[dependencies.Generate_Job_Matrix.outputs['generate_job_matrix.matrix']]
AutorestCSharpVersion: $(AutorestCSharpVersion)
TypeSpecEmitterVersion: $(TypeSpecEmitterVersion)
DependsOn: Generate_Job_Matrix
BranchName: $(BranchName)
- job: Create_PR
dependsOn:
- Update_Code
dependsOn: Update_Code
steps:
- checkout: self
- checkout: azure-sdk-tools
Expand All @@ -205,7 +215,7 @@ stages:
-RepoName "azure-sdk-for-net"
-BaseBranch "main"
-PROwner "azure-sdk"
-PRBranch "auto-update-autorest-$(AutorestCSharpVersion)"
-PRBranch $(BranchName)
-AuthToken "$(azuresdk-github-pat)"
-PRTitle "Update AutoRest C# version to $(AutorestCSharpVersion)"
-PRBody "Update AutoRest C# version to $(AutorestCSharpVersion)"
10 changes: 4 additions & 6 deletions eng/pipelines/check-code-generation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,12 @@ jobs:
useGlobalJson: true
performMultiLevelLookup: true
- ${{ if eq(parameters.usePackageJsonFromArtifacts, 'true') }}:
- task: DownloadPipelineArtifact@2
- download: current
artifact: package-json
displayName: 'Download package-json artifact'
inputs:
buildType: current
artifact: package-json
targetPath: $(Build.SourcesDirectory)
- pwsh: |
Move-Item ./emitter-package.json ./src/TypeSpec.Extension/Emitter.Csharp/package.json -Force
Copy-Item $(Pipeline.Workspace)/package-json/package*.json ./ -Force
Copy-Item $(Pipeline.Workspace)/package-json/emitter/package.json ./src/TypeSpec.Extension/Emitter.Csharp/package.json -Force
git add './package.json' './package-lock.json' './src/TypeSpec.Extension/Emitter.Csharp/package.json'
displayName: 'Replace Emitter.Csharp/package.json'
workingDirectory: $(Build.SourcesDirectory)
Expand Down
13 changes: 10 additions & 3 deletions eng/pipelines/generate-sdk-job-matrix-files.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
parameters:
JobCount: 0
Name: ""
- name: JobCount
type: number
- name: Name
type: string
- name: DependsOn
type: object
- name: BranchName
type: string

jobs:
- job: ${{ parameters.Name }}
dependsOn: ${{ parameters.DependsOn }}
timeoutInMinutes: 60
pool:
name: azsdk-pool-mms-ubuntu-2004-general
vmImage: ubuntu-20.04

steps:
- checkout: self
fetchDepth: 1
Expand All @@ -22,6 +28,7 @@ jobs:
Repositories:
- Name: Azure/azure-sdk-for-net
WorkingDirectory: $(Build.SourcesDirectory)/azure-sdk-for-net
Committish: refs/heads/${{ parameters.BranchName}}
SkipCheckoutNone: true
- pwsh: ./eng/GenerateSdkForNetCodeGenerationMatrix.ps1 -SdkForNetPath $(Build.SourcesDirectory)/azure-sdk-for-net -GroupCount ${{ parameters.JobCount }} -OutputFolder $(System.DefaultWorkingDirectory)/output
displayName: "Generate Matrix Files"
Expand Down
34 changes: 34 additions & 0 deletions eng/pipelines/new-emitter-package-files.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
parameters:
- name: EmitterPackageJsonPath
type: string
- name: AutorestCSharpVersion
type: string
- name: TypeSpecEmitterVersion
type: string
- name: ToolsRepositoryPath
type: string
- name: OutputDirectory
type: string

steps:
- pwsh: |
$feedUrl = "https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-js-test-autorest@local/npm/registry"

$overridesPath = "${{ parameters.OutputDirectory }}/overrides.json"

$overrides = @{
"@autorest/csharp" = "$feedUrl/@autorest/csharp/-/csharp-${{ parameters.AutorestCSharpVersion }}.tgz"
"@azure-tools/typespec-csharp" = "$feedUrl/@azure-tools/typespec-csharp/-/typespec-csharp-${{ parameters.TypeSpecEmitterVersion }}.tgz"
}

$overrides | ConvertTo-Json | Set-Content $overridesPath

& ${{ parameters.ToolsRepositoryPath }}/eng/scripts/autorest/New-EmitterPackageJson.ps1 `
-PackageJsonPath '${{ parameters.EmitterPackageJsonPath }}' `
-OverridesPath $overridesPath `
-OutputDirectory '${{ parameters.OutputDirectory }}'

& ${{ parameters.ToolsRepositoryPath }}/eng/scripts/autorest/New-EmitterPackageLock.ps1 `
-EmitterPackageJsonPath '${{ parameters.OutputDirectory }}/emitter-package.json' `
-OutputDirectory '${{ parameters.OutputDirectory }}'
displayName: Create emitter-package.json
47 changes: 25 additions & 22 deletions eng/pipelines/sdk-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,12 @@ resources:
type: github
name: Azure/azure-sdk-tools
endpoint: azure
ref: refs/tags/azure-sdk-tools_20230428.1
ref: main
- repository: azure-sdk-for-net
type: github
name: Azure/azure-sdk-for-net
endpoint: azure
ref: main
- repository: azure-sdk-build-tools
type: git
name: internal/azure-sdk-build-tools
ref: refs/tags/azure-sdk-build-tools_20230829.1

stages:
- stage: 'Build_and_Test'
Expand Down Expand Up @@ -53,9 +49,9 @@ stages:
displayName: "Use 'next' TypeSpec dependencies"
workingDirectory: $(Build.SourcesDirectory)/autorest.csharp
- pwsh: |
$dir = New-Item -ItemType Directory -Path $(Build.ArtifactStagingDirectory)/package-json -Verbose
$dir = New-Item -ItemType Directory -Path $(Build.ArtifactStagingDirectory)/package-json/emitter -Verbose
Copy-Item ./package*.json $(Build.ArtifactStagingDirectory)/package-json -Verbose
Copy-Item ./src/TypeSpec.Extension/Emitter.Csharp/package.json $(Build.ArtifactStagingDirectory)/package-json/emitter-package.json -Verbose
Copy-Item ./src/TypeSpec.Extension/Emitter.Csharp/package.json $(Build.ArtifactStagingDirectory)/package-json/emitter/package.json -Verbose
workingDirectory: $(Build.SourcesDirectory)/autorest.csharp
displayName: 'Stage package-json artifact'
condition: succeededOrFailed()
Expand Down Expand Up @@ -123,7 +119,7 @@ stages:
workingDir: '$(Build.SourcesDirectory)/autorest.csharp/artifacts/bin/AutoRest.CSharp/Release/net6.0'
publishRegistry: 'useFeed'
publishFeed: '29ec6040-b234-4e31-b139-33dc4287b756/05efbea8-6e52-49dd-ad3d-ac3d4aa65036'
- pwsh: ./eng/PackEmitter.ps1 -BuildNumber $(Build.BuildNumber) -AutorestVersion $(Package.autorestVersion) -StagingDirectory $(Build.ArtifactStagingDirectory)/packages
- pwsh: ./eng/PackEmitter.ps1 -BuildNumber $(Build.BuildNumber) -AutorestVersion $(Package.AutorestCSharpVersion) -StagingDirectory $(Build.ArtifactStagingDirectory)/packages
name: PackEmitter
displayName: "Pack Emitter"
workingDirectory: $(Build.SourcesDirectory)/autorest.csharp
Expand All @@ -134,10 +130,17 @@ stages:
workingDir: '$(Build.SourcesDirectory)/autorest.csharp/src/TypeSpec.Extension/Emitter.Csharp'
publishRegistry: 'useFeed'
publishFeed: '29ec6040-b234-4e31-b139-33dc4287b756/05efbea8-6e52-49dd-ad3d-ac3d4aa65036'
- publish: $(Build.ArtifactStagingDirectory)/packages
artifact: packages
- template: new-emitter-package-files.yml
parameters:
EmitterPackageJsonPath: '$(Build.SourcesDirectory)/autorest.csharp/src/TypeSpec.Extension/Emitter.Csharp/package.json'
AutorestCSharpVersion: $(Package.AutorestCSharpVersion)
TypeSpecEmitterVersion: $(PackEmitter.TypeSpecEmitterVersion)
OutputDirectory: $(Build.ArtifactStagingDirectory)
ToolsRepositoryPath: $(Build.SourcesDirectory)/azure-sdk-tools
- publish: $(Build.ArtifactStagingDirectory)
artifact: build_artifacts
condition: succeededOrFailed()
displayName: "Publish packages artifact"
displayName: "Publish build artifacts"
- ${{ if eq(parameters.UseTypeSpecNext, 'true') }}:
- stage: 'Check_Code_Generation'
dependsOn:
Expand Down Expand Up @@ -167,30 +170,30 @@ stages:
dependsOn:
- Build_and_Test
variables:
AutorestCSharpVersion: $[stageDependencies.Build_and_Test.Build.outputs['Package.autorestVersion']]
TypeSpecEmitterVersion: $[stageDependencies.Build_and_Test.Build.outputs['PackEmitter.emitterVersion']]
AutorestCSharpVersion: $[stageDependencies.Build_and_Test.Build.outputs['Package.AutorestCSharpVersion']]
TypeSpecEmitterVersion: $[stageDependencies.Build_and_Test.Build.outputs['PackEmitter.TypeSpecEmitterVersion']]
BranchName: "auto-update-autorest-$(AutorestCSharpVersion)"
jobs:
- template: update-generator-versions.yml
parameters:
Name: Update_Generator_Version
AutorestCSharpVersion: $(AutorestCSharpVersion)
TypeSpecEmitterVersion: $(TypeSpecEmitterVersion)
IsInternalFeed: true
BranchName: $(BranchName)
- template: generate-sdk-job-matrix-files.yml
parameters:
Name: Generate_Job_Matrix
DependsOn: Update_Generator_Version
JobCount: 7
BranchName: $(BranchName)
- template: update-azure-sdk-for-net-codes.yml
parameters:
Name: Update_Code
DependsOn: Generate_Job_Matrix
Matrix: $[dependencies.Generate_Job_Matrix.outputs['generate_job_matrix.matrix']]
AutorestCSharpVersion: $(AutorestCSharpVersion)
TypeSpecEmitterVersion: $(TypeSpecEmitterVersion)
IsInternalFeed: true
DependsOn: Generate_Job_Matrix
BranchName: $(BranchName)
- job: Create_PR
dependsOn:
- Update_Generator_Versions
- Update_Code
dependsOn: Update_Code
steps:
- checkout: self
fetchDepth: 1
Expand All @@ -210,7 +213,7 @@ stages:
-RepoName "azure-sdk-for-net"
-BaseBranch "main"
-PROwner "azure-sdk"
-PRBranch "auto-update-autorest-$(AutorestCSharpVersion)"
-PRBranch "$(BranchName)"
-AuthToken "$(azuresdk-github-pat)"
-PRTitle "Autorest Regen Preview to $(AutorestCSharpVersion) by $(Build.QueuedBy) from $(Build.SourceBranch)"
-PRBody "Triggered from $(PRUrl.PRUrl)"
Expand Down
Loading