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
5 changes: 5 additions & 0 deletions eng/emitters/pipelines/templates/jobs/test-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ parameters:
type: string
default: "3.12"

- name: UseTypeSpecNext
type: boolean
default: false

jobs:
- job: Test_${{ parameters.Os }}_${{ split(parameters.NodeVersion, '.')[0] }}
${{ if eq(parameters.Os, 'linux') }}:
Expand Down Expand Up @@ -83,6 +87,7 @@ jobs:
CadlRanchName: ${{ parameters.CadlRanchName }}
EnableCadlRanchReport: ${{ parameters.EnableCadlRanchReport }}
PythonVersion: ${{ parameters.PythonVersion }}
UseTypeSpecNext: ${{ parameters.UseTypeSpecNext }}
${{ if parameters.EmitArtifacts }}:
templateContext:
outputs:
Expand Down
6 changes: 6 additions & 0 deletions eng/emitters/pipelines/templates/stages/emitter-stages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ stages:
CadlRanchName: ${{ parameters.CadlRanchName }} # only needed for first job
EnableCadlRanchReport: ${{ parameters.EnableCadlRanchReport }}
PythonVersion: ${{ parameters.PythonVersion }}
UseTypeSpecNext: ${{ parameters.UseTypeSpecNext }}
- template: /eng/emitters/pipelines/templates/jobs/test-job.yml
parameters:
AdditionalInitializeSteps: ${{ parameters.AdditionalInitializeSteps }}
Expand All @@ -202,6 +203,7 @@ stages:
NodeVersion: 22.x
Os: linux
PythonVersion: ${{ parameters.PythonVersion }}
UseTypeSpecNext: ${{ parameters.UseTypeSpecNext }}
- template: /eng/emitters/pipelines/templates/jobs/test-job.yml
parameters:
AdditionalInitializeSteps: ${{ parameters.AdditionalInitializeSteps }}
Expand All @@ -212,6 +214,7 @@ stages:
NodeVersion: 20.x
Os: windows
PythonVersion: ${{ parameters.PythonVersion }}
UseTypeSpecNext: ${{ parameters.UseTypeSpecNext }}
- template: /eng/emitters/pipelines/templates/jobs/test-job.yml
parameters:
AdditionalInitializeSteps: ${{ parameters.AdditionalInitializeSteps }}
Expand All @@ -222,6 +225,7 @@ stages:
NodeVersion: 22.x
Os: windows
PythonVersion: ${{ parameters.PythonVersion }}
UseTypeSpecNext: ${{ parameters.UseTypeSpecNext }}

# Regen Test stage
# Responsible for running any regen tests needed to validate no manual changes were done.
Expand All @@ -246,6 +250,7 @@ stages:
Os: windows
TestMatrix: ${{ parameters.TestMatrix }}
PythonVersion: ${{ parameters.PythonVersion }}
UseTypeSpecNext: ${{ parameters.UseTypeSpecNext }}
- template: /eng/emitters/pipelines/templates/jobs/test-job.yml
parameters:
AdditionalInitializeSteps: ${{ parameters.AdditionalInitializeSteps }}
Expand All @@ -255,6 +260,7 @@ stages:
Os: linux
TestMatrix: ${{ parameters.TestMatrix }}
PythonVersion: ${{ parameters.PythonVersion }}
UseTypeSpecNext: ${{ parameters.UseTypeSpecNext }}

# Publish stage
# Responsible for publishing the packages in `build_artifacts/packages` and producing `emitter-package-lock.json`
Expand Down
5 changes: 5 additions & 0 deletions eng/emitters/pipelines/templates/steps/build-step.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ steps:

- ${{ parameters.AdditionalInitializeSteps }}

- ${{ if parameters.UseTypeSpecNext }}:
- script: npx -y @azure-tools/typespec-bump-deps@latest --use-peer-ranges package.json
displayName: "Update TypeSpec dependencies to @next"
workingDirectory: $(selfRepositoryPath)${{ parameters.PackagePath }}

- task: PowerShell@2
displayName: "Run initialize script"
inputs:
Expand Down
6 changes: 5 additions & 1 deletion eng/emitters/pipelines/templates/steps/test-step.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ parameters:
type: string
default: "3.12"

- name: UseTypeSpecNext
type: boolean
default: false

steps:
- checkout: self

Expand All @@ -69,7 +73,7 @@ steps:
inputs:
pwsh: true
filePath: $(selfRepositoryPath)${{ parameters.PackagePath }}/eng/scripts/Initialize-Repository.ps1
arguments: -BuildArtifactsPath '$(buildArtifactsPath)'
arguments: -BuildArtifactsPath '$(buildArtifactsPath)' -UseTypeSpecNext:$${{ parameters.UseTypeSpecNext }}
workingDirectory: $(selfRepositoryPath)

- task: PowerShell@2
Expand Down
14 changes: 13 additions & 1 deletion packages/http-client-csharp/eng/pipeline/publish.yml
Comment thread
timotheeguerin marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ parameters:
type: boolean
default: true

- name: UseTypeSpecNext
displayName: Use TypeSpec Next (update dependencies to @next versions)
type: boolean
default: false

extends:
template: /eng/common/pipelines/templates/1es-redirect.yml

Expand All @@ -37,7 +42,7 @@ extends:
- template: /eng/emitters/pipelines/templates/stages/emitter-stages.yml
parameters:
BuildPrereleaseVersion: true
UseTypeSpecNext: false
UseTypeSpecNext: ${{ parameters.UseTypeSpecNext }}
Publish: ${{replace(replace('True',eq(variables['Build.SourceBranchName'], 'main'), 'public'),'True','internal')}}
PublishDependsOnTest: ${{ parameters.RunTests }}
PackagePath: /packages/http-client-csharp
Expand Down Expand Up @@ -155,6 +160,13 @@ extends:
npm install -g semver
displayName: Install semver

- ${{ if parameters.UseTypeSpecNext }}:
- pwsh: |
Write-Host "##vso[task.setvariable variable=npm_config_force]true"
Write-Host "##vso[task.setvariable variable=TSPCLIENT_FORCE_INSTALL]true"
Write-Host "Set npm --force and TSPCLIENT_FORCE_INSTALL for TypeSpec Next"
displayName: Configure npm for TypeSpec Next

- task: PowerShell@2
displayName: Update package.json with injected dependencies
inputs:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,28 @@ try {
Copy-Item "$lockFilesPath/emitter/package.json" './package.json' -Force
Copy-Item "$lockFilesPath/emitter/package-lock.json" './package-lock.json' -Force

Invoke-LoggedCommand "npm ci"
if ($UseTypeSpecNext) {
Invoke-LoggedCommand "npm ci --force"
}
else {
Invoke-LoggedCommand "npm ci"
}
}
elseif ($UseTypeSpecNext) {
# TODO: add use typespec next to template later
Invoke-LoggedCommand "npm install --force"
}
else {
Invoke-LoggedCommand "npm ci"
}

Invoke-LoggedCommand "npm ls -a" -GroupOutput
if ($UseTypeSpecNext) {
# npm ls may report peer dependency mismatches with @next versions; ignore exit code
Invoke-LoggedCommand "npm ls -a" -GroupOutput -IgnoreExitCode
$global:LASTEXITCODE = 0
}
else {
Invoke-LoggedCommand "npm ls -a" -GroupOutput
}

Write-Host "artifactStagingDirectory: $env:BUILD_ARTIFACTSTAGINGDIRECTORY"
Write-Host "BuildArtifactsPath: $BuildArtifactsPath"
Expand Down
6 changes: 3 additions & 3 deletions packages/http-client-csharp/generator/Packages.Data.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
<PackageReference Update="CommandLineParser" Version="2.9.1" />
<PackageReference Update="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.8.0" />
<PackageReference Update="Microsoft.Build" Version="17.9.5" />
<PackageReference Update="NuGet.Configuration" Version="6.14.0" />
<PackageReference Update="NuGet.Versioning" Version="6.14.0" />
<PackageReference Update="NuGet.Protocol" Version="6.14.0" />
<PackageReference Update="NuGet.Configuration" Version="6.14.3" />
<PackageReference Update="NuGet.Versioning" Version="6.14.3" />
<PackageReference Update="NuGet.Protocol" Version="6.14.3" />
<PackageReference Update="System.ComponentModel.Composition" Version="8.0.0" />
<PackageReference Update="System.ClientModel" Version="1.10.0" />
<PackageReference Update="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.3" />
Expand Down
Loading