Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
73e5515
impl
Apr 5, 2026
2dbfc48
github actions bug fixes
Apr 5, 2026
6769477
rust fix
Apr 5, 2026
e632ac4
rust fix v2
Apr 5, 2026
59e9a84
rust fix v3
Apr 5, 2026
d2c9ebf
merge deps versions
Apr 5, 2026
c35ce35
checkout none
Apr 6, 2026
f76a2a8
Merge remote-tracking branch 'origin' into prathikrao/unify-flc-versi…
Apr 6, 2026
14ab58d
rust fmt fix
Apr 6, 2026
1be045b
bug fixes
Apr 6, 2026
20bb8ee
standard genai
Apr 6, 2026
bbf0f4b
bug fixes
Apr 6, 2026
ea7add0
Merge remote-tracking branch 'origin' into prathikrao/unify-flc-versi…
Apr 7, 2026
8b9b6d1
bug fix
Apr 7, 2026
d8f6f98
Merge remote-tracking branch 'origin' into prathikrao/unify-flc-versi…
Apr 7, 2026
68dfe94
separate deps
Apr 7, 2026
9a18540
combine sdk build & test stages
Apr 7, 2026
e045e23
bug fixes
Apr 7, 2026
5eb2b34
stage naming
Apr 7, 2026
1a67cff
rust fix
Apr 7, 2026
b7fee62
rustic fix
Apr 7, 2026
6bf4f1f
Merge remote-tracking branch 'origin' into prathikrao/unify-flc-versi…
Apr 7, 2026
cc289f6
copilot feedback
Apr 7, 2026
8370e3e
js fixes
Apr 7, 2026
1e4bc43
even less stages
Apr 7, 2026
c96365f
copilot feedback
Apr 7, 2026
4c84e17
Merge remote-tracking branch 'origin' into prathikrao/unify-flc-versi…
Apr 7, 2026
8cb8d33
js & rust fixes
Apr 8, 2026
36d485a
Merge remote-tracking branch 'origin' into prathikrao/unify-flc-versi…
Apr 8, 2026
a2da0fd
js fix
Apr 8, 2026
73a14ed
Merge remote-tracking branch 'origin' into prathikrao/unify-flc-versi…
Apr 8, 2026
1252b44
Merge remote-tracking branch 'origin' into prathikrao/unify-flc-versi…
Apr 13, 2026
bd5edae
baiju
Apr 13, 2026
defa26f
del
Apr 14, 2026
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
70 changes: 70 additions & 0 deletions .pipelines/foundry-local-packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,9 @@ extends:
- output: pipelineArtifact
artifactName: 'flc-wheels'
targetPath: '$(Build.ArtifactStagingDirectory)/flc-wheels'
- output: pipelineArtifact
artifactName: 'deps-versions'
targetPath: '$(Build.ArtifactStagingDirectory)/deps-versions'
steps:
- checkout: neutron-server
clean: true
Expand Down Expand Up @@ -232,6 +235,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget'
targetPath: '$(Pipeline.Workspace)/flc-nuget'
- input: pipelineArtifact
artifactName: 'deps-versions'
targetPath: '$(Pipeline.Workspace)/deps-versions'
outputs:
- output: pipelineArtifact
artifactName: 'cs-sdk'
Expand All @@ -248,6 +254,7 @@ extends:
prereleaseId: ${{ parameters.prereleaseId }}
isWinML: false
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions'

# ── Build JS SDK ──
- stage: build_js
Expand All @@ -264,6 +271,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget'
targetPath: '$(Pipeline.Workspace)/flc-nuget'
- input: pipelineArtifact
artifactName: 'deps-versions'
targetPath: '$(Pipeline.Workspace)/deps-versions'
outputs:
- output: pipelineArtifact
artifactName: 'js-sdk'
Expand All @@ -280,6 +290,7 @@ extends:
prereleaseId: ${{ parameters.prereleaseId }}
isWinML: false
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions'

# ── Build Python SDK ──
- stage: build_python
Expand All @@ -296,6 +307,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-wheels'
targetPath: '$(Pipeline.Workspace)/flc-wheels'
- input: pipelineArtifact
artifactName: 'deps-versions'
targetPath: '$(Pipeline.Workspace)/deps-versions'
outputs:
- output: pipelineArtifact
artifactName: 'python-sdk'
Expand All @@ -312,6 +326,7 @@ extends:
prereleaseId: ${{ parameters.prereleaseId }}
isWinML: false
flcWheelsDir: '$(Pipeline.Workspace)/flc-wheels'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions'

# ── Build Rust SDK ──
- stage: build_rust
Expand All @@ -328,6 +343,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget'
targetPath: '$(Pipeline.Workspace)/flc-nuget'
- input: pipelineArtifact
artifactName: 'deps-versions'
targetPath: '$(Pipeline.Workspace)/deps-versions'
outputs:
- output: pipelineArtifact
artifactName: 'rust-sdk'
Expand All @@ -344,6 +362,7 @@ extends:
prereleaseId: ${{ parameters.prereleaseId }}
isWinML: false
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions'

# ── Test C# SDK (win-x64) ──
- stage: test_cs
Expand All @@ -360,6 +379,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget'
targetPath: '$(Pipeline.Workspace)/flc-nuget'
- input: pipelineArtifact
artifactName: 'deps-versions'
targetPath: '$(Pipeline.Workspace)/deps-versions'
steps:
- checkout: self
clean: true
Expand All @@ -370,6 +392,7 @@ extends:
version: ${{ parameters.version }}
isWinML: false
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions'

# TODO: Add macOS (osx-arm64) test job when a macOS ARM64 pool is available.
# TODO: Add Linux (linux-x64) test job when Linux onnxruntime dependency is stabilized.
Expand All @@ -390,6 +413,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget'
targetPath: '$(Pipeline.Workspace)/flc-nuget'
- input: pipelineArtifact
artifactName: 'deps-versions'
targetPath: '$(Pipeline.Workspace)/deps-versions'
steps:
- checkout: self
clean: true
Expand All @@ -400,6 +426,7 @@ extends:
version: ${{ parameters.version }}
isWinML: false
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions'

# TODO: Add macOS (osx-arm64) test job when a macOS ARM64 pool is available.
# TODO: Add Linux (linux-x64) test job when Linux onnxruntime dependency is stabilized.
Expand All @@ -420,6 +447,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-wheels'
targetPath: '$(Pipeline.Workspace)/flc-wheels'
- input: pipelineArtifact
artifactName: 'deps-versions'
targetPath: '$(Pipeline.Workspace)/deps-versions'
steps:
- checkout: self
clean: true
Expand All @@ -430,6 +460,7 @@ extends:
version: ${{ parameters.version }}
isWinML: false
flcWheelsDir: '$(Pipeline.Workspace)/flc-wheels'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions'

# TODO: Add macOS (osx-arm64) test job when a macOS ARM64 pool is available.
# TODO: Add Linux (linux-x64) test job when Linux onnxruntime dependency is stabilized.
Expand All @@ -450,6 +481,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget'
targetPath: '$(Pipeline.Workspace)/flc-nuget'
- input: pipelineArtifact
artifactName: 'deps-versions'
targetPath: '$(Pipeline.Workspace)/deps-versions'
steps:
- checkout: self
clean: true
Expand All @@ -459,6 +493,7 @@ extends:
parameters:
isWinML: false
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions'

# TODO: Add macOS (osx-arm64) test job when a macOS ARM64 pool is available.
# TODO: Add Linux (linux-x64) test job when Linux onnxruntime dependency is stabilized.
Expand Down Expand Up @@ -527,6 +562,9 @@ extends:
- output: pipelineArtifact
artifactName: 'flc-wheels-winml'
targetPath: '$(Build.ArtifactStagingDirectory)/flc-wheels'
- output: pipelineArtifact
artifactName: 'deps-versions-winml'
targetPath: '$(Build.ArtifactStagingDirectory)/deps-versions'
steps:
- checkout: neutron-server
clean: true
Expand Down Expand Up @@ -578,6 +616,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget-winml'
targetPath: '$(Pipeline.Workspace)/flc-nuget-winml'
- input: pipelineArtifact
artifactName: 'deps-versions-winml'
targetPath: '$(Pipeline.Workspace)/deps-versions-winml'
outputs:
- output: pipelineArtifact
artifactName: 'cs-sdk-winml'
Expand All @@ -594,6 +635,7 @@ extends:
prereleaseId: ${{ parameters.prereleaseId }}
isWinML: true
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget-winml'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions-winml'
outputDir: '$(Build.ArtifactStagingDirectory)/cs-sdk-winml'

# ── Build JS SDK (WinML) ──
Expand All @@ -611,6 +653,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget-winml'
targetPath: '$(Pipeline.Workspace)/flc-nuget-winml'
- input: pipelineArtifact
artifactName: 'deps-versions-winml'
targetPath: '$(Pipeline.Workspace)/deps-versions-winml'
outputs:
- output: pipelineArtifact
artifactName: 'js-sdk-winml'
Expand All @@ -627,6 +672,7 @@ extends:
prereleaseId: ${{ parameters.prereleaseId }}
isWinML: true
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget-winml'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions-winml'

# ── Build Python SDK (WinML) ──
- stage: build_python_winml
Expand All @@ -643,6 +689,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-wheels-winml'
targetPath: '$(Pipeline.Workspace)/flc-wheels-winml'
- input: pipelineArtifact
artifactName: 'deps-versions-winml'
targetPath: '$(Pipeline.Workspace)/deps-versions-winml'
outputs:
- output: pipelineArtifact
artifactName: 'python-sdk-winml'
Expand All @@ -659,6 +708,7 @@ extends:
prereleaseId: ${{ parameters.prereleaseId }}
isWinML: true
flcWheelsDir: '$(Pipeline.Workspace)/flc-wheels-winml'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions-winml'
outputDir: '$(Build.ArtifactStagingDirectory)/python-sdk-winml'

# ── Build Rust SDK (WinML) ──
Expand All @@ -676,6 +726,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget-winml'
targetPath: '$(Pipeline.Workspace)/flc-nuget-winml'
- input: pipelineArtifact
artifactName: 'deps-versions-winml'
targetPath: '$(Pipeline.Workspace)/deps-versions-winml'
outputs:
- output: pipelineArtifact
artifactName: 'rust-sdk-winml'
Expand All @@ -692,6 +745,7 @@ extends:
prereleaseId: ${{ parameters.prereleaseId }}
isWinML: true
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget-winml'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions-winml'
outputDir: '$(Build.ArtifactStagingDirectory)/rust-sdk-winml'

# ── Test C# SDK WinML (win-x64) ──
Expand All @@ -709,6 +763,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget-winml'
targetPath: '$(Pipeline.Workspace)/flc-nuget-winml'
- input: pipelineArtifact
artifactName: 'deps-versions-winml'
targetPath: '$(Pipeline.Workspace)/deps-versions-winml'
steps:
- checkout: self
clean: true
Expand All @@ -719,6 +776,7 @@ extends:
version: ${{ parameters.version }}
isWinML: true
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget-winml'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions-winml'

# TODO: Add Windows ARM64 (win-arm64) test job when a Windows ARM64 pool is available.

Expand All @@ -737,6 +795,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget-winml'
targetPath: '$(Pipeline.Workspace)/flc-nuget-winml'
- input: pipelineArtifact
artifactName: 'deps-versions-winml'
targetPath: '$(Pipeline.Workspace)/deps-versions-winml'
steps:
- checkout: self
clean: true
Expand All @@ -747,6 +808,7 @@ extends:
version: ${{ parameters.version }}
isWinML: true
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget-winml'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions-winml'

# TODO: Add Windows ARM64 (win-arm64) test job when a Windows ARM64 pool is available.

Expand All @@ -765,6 +827,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-wheels-winml'
targetPath: '$(Pipeline.Workspace)/flc-wheels-winml'
- input: pipelineArtifact
artifactName: 'deps-versions-winml'
targetPath: '$(Pipeline.Workspace)/deps-versions-winml'
steps:
- checkout: self
clean: true
Expand All @@ -775,6 +840,7 @@ extends:
version: ${{ parameters.version }}
isWinML: true
flcWheelsDir: '$(Pipeline.Workspace)/flc-wheels-winml'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions-winml'

# TODO: Add Windows ARM64 (win-arm64) test job when a Windows ARM64 pool is available.

Expand All @@ -793,6 +859,9 @@ extends:
- input: pipelineArtifact
artifactName: 'flc-nuget-winml'
targetPath: '$(Pipeline.Workspace)/flc-nuget-winml'
- input: pipelineArtifact
artifactName: 'deps-versions-winml'
targetPath: '$(Pipeline.Workspace)/deps-versions-winml'
steps:
- checkout: self
clean: true
Expand All @@ -802,6 +871,7 @@ extends:
parameters:
isWinML: true
flcNugetDir: '$(Pipeline.Workspace)/flc-nuget-winml'
depsVersionsDir: '$(Pipeline.Workspace)/deps-versions-winml'

# TODO: Add Windows ARM64 (win-arm64) test job when a Windows ARM64 pool is available.

18 changes: 12 additions & 6 deletions .pipelines/templates/build-cs-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ parameters:
- name: prereleaseId
type: string
default: ''
- name: depsVersionsDir
type: string
default: ''
displayName: 'Path to deps-versions artifact directory'
steps:
# Set paths for multi-repo checkout
- task: PowerShell@2
Expand Down Expand Up @@ -55,6 +59,13 @@ steps:
Write-Host "##vso[task.setvariable variable=packageVersion]$v"
Write-Host "Package version: $v"

# Load dependency versions from deps_versions.json
- template: update-deps-versions-steps.yml
parameters:
repoRoot: $(repoRoot)
artifactDir: ${{ parameters.depsVersionsDir }}
isWinML: ${{ parameters.isWinML }}

# List downloaded artifact for debugging
- task: PowerShell@2
displayName: 'List downloaded FLC artifact'
Expand All @@ -81,14 +92,9 @@ steps:
</packageSources>
</configuration>
"@
# Determine the FLC version from the .nupkg filename
# Point the local NuGet feed at the directory that actually contains the .nupkg
$nupkg = Get-ChildItem "${{ parameters.flcNugetDir }}" -Recurse -Filter "Microsoft.AI.Foundry.Local.Core*.nupkg" -Exclude "*.snupkg" | Select-Object -First 1
if (-not $nupkg) { throw "No FLC .nupkg found in ${{ parameters.flcNugetDir }}" }
$flcVer = $nupkg.BaseName -replace '^Microsoft\.AI\.Foundry\.Local\.Core(\.WinML)?\.', ''
Write-Host "##vso[task.setvariable variable=resolvedFlcVersion]$flcVer"
Write-Host "Resolved FLC version: $flcVer"

# Point the local NuGet feed at the directory that actually contains the .nupkg
$flcFeedDir = $nupkg.DirectoryName
$nugetConfig = $nugetConfig -replace [regex]::Escape("${{ parameters.flcNugetDir }}"), $flcFeedDir
$configPath = "$(Build.ArtifactStagingDirectory)/NuGet.config"
Expand Down
11 changes: 11 additions & 0 deletions .pipelines/templates/build-js-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ parameters:
- name: prereleaseId
type: string
default: ''
- name: depsVersionsDir
type: string
default: ''
displayName: 'Path to deps-versions artifact directory'
steps:
# Set paths for multi-repo checkout
- task: PowerShell@2
Expand Down Expand Up @@ -45,6 +49,13 @@ steps:
inputs:
versionSpec: '20.x'

# Load dependency versions from deps_versions.json
- template: update-deps-versions-steps.yml
parameters:
repoRoot: $(repoRoot)
artifactDir: ${{ parameters.depsVersionsDir }}
isWinML: ${{ parameters.isWinML }}

# Compute version
- task: PowerShell@2
displayName: 'Set package version'
Expand Down
Loading
Loading