Skip to content

Update CI workflows to build ORT and test EP#5

Merged
shaahji merged 2 commits into
mainfrom
shaahji/workflows
Apr 23, 2026
Merged

Update CI workflows to build ORT and test EP#5
shaahji merged 2 commits into
mainfrom
shaahji/workflows

Conversation

@shaahji
Copy link
Copy Markdown
Collaborator

@shaahji shaahji commented Apr 18, 2026

Update CI workflows to build ORT and test EP

  • Updated both Linux & Windows workflows to build onnxruntime source (onnxruntime_test_provider target only) and use the geneated artifacts to test the TRT EP.
  • Introducing a simple C# implementation that wraps the generated TRT native binaries to create a nuget package.
  • Updated to use ORT v1.25.0-rc.1
  • Restrict builds to cuda v12.9 (number of unresolved issues with v13.0)

* Updated both Linux & Windows workflows to build onnxruntime source
  (onnxruntime_test_provider target only) and use the geneated artifacts
  to test the TRT EP.
* Introducing a simple C# implementation that wraps the generated TRT
  native binaries to create a nuget package.
* Updated to use ORT v1.25.0-rc.1
* Restrict builds to cuda v12.9 (number of unresolved issues with v13.0)
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Apr 18, 2026

CLA assistant check
All committers have signed the CLA.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the CI pipelines to build onnxruntime (provider test target) alongside the TensorRT plugin EP, then runs EP-focused test execution using the built artifacts. It also introduces a small C# NuGet wrapper (plus sample app) for consuming the generated TensorRT EP native binaries, and bumps the default ORT version to 1.25.0-rc.1.

Changes:

  • Reworked Linux/Windows CUDA workflows to build TRT EP + build ORT provider tests and run test execution with downloaded artifacts.
  • Added C# NuGet packaging project, setup script, and a sample app demonstrating plugin EP registration and execution.
  • Added a Python test_runner.py script that runs onnxruntime_provider_test with an explicit exclusion filter list.

Reviewed changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
csharp/setup.bat Batch script to stage the native EP DLL into the NuGet layout and build/pack the package.
csharp/readme.md C# wrapper + sample usage and build instructions.
csharp/nuget.config Adds package sources for local feed and ORT nightly feed.
csharp/SampleApp/mul.onnx Small ONNX model used by the C# sample app.
csharp/SampleApp/SampleApp.sln Visual Studio solution for the sample app.
csharp/SampleApp/SampleApp.csproj Sample app project referencing ORT + the EP NuGet package.
csharp/SampleApp/Program.cs Demonstrates registering the plugin EP and executing an inference run.
csharp/Microsoft.ML.OnnxRuntime.EP.TensorRT/readme.md Package README placeholder for NuGet.
csharp/Microsoft.ML.OnnxRuntime.EP.TensorRT/TensorRTEp.cs Managed helper to find native runtime asset path + expose EP name(s).
csharp/Microsoft.ML.OnnxRuntime.EP.TensorRT/Microsoft.ML.OnnxRuntime.EP.TensorRT.sln Visual Studio solution for the NuGet project.
csharp/Microsoft.ML.OnnxRuntime.EP.TensorRT/Microsoft.ML.OnnxRuntime.EP.TensorRT.csproj NuGet packaging configuration and runtime asset inclusion.
csharp/.gitignore Ignores build outputs, local feed, and staged native DLLs.
CMakeLists.txt Bumps default ORT version to 1.25.0-rc.1.
.github/workflows/windows_x64_cuda.yml Splits workflow into TRTEP build, ORT build, and test jobs using artifacts.
.github/workflows/linux_x64_cuda.yml Similar CI restructuring for Linux (image build + matrix + TRTEP/ORT build + tests).
.github/scripts/test_runner.py Runs onnxruntime_provider_test with an exclusion-based gtest filter and logs output.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread csharp/setup.bat
Comment thread .github/scripts/test_runner.py
Comment thread .github/workflows/linux_x64_cuda.yml
Comment thread csharp/setup.bat Outdated
Comment thread csharp/readme.md Outdated
Comment thread csharp/nuget.config
Comment thread .github/workflows/linux_x64_cuda.yml
Comment thread .github/scripts/test_runner.py Outdated
Comment thread csharp/setup.bat
Comment thread csharp/Microsoft.ML.OnnxRuntime.EP.TensorRT/readme.md Outdated
runs-on: [
"self-hosted",
"1ES.Pool=onnxruntime-ep-github-linux-a10",
"1ES.ImageOverride=onnxruntime-ubuntu2204-CUDA-A10",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ImageOverride should be unnecessary

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's required because the CUDA version of 2404 isn't correct. I saw some messages on Teams about updating the image. Could you confirm if it's fixed on the image for this pool as well.

Comment on lines +238 to +241
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.job }}-cuda${{ matrix.config.cuda_version }}-trt${{ matrix.config.trt_version }}-${{ matrix.config.build_type }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For Sanaa-- do we have our own ccache action?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe so.

Comment thread CMakeLists.txt
set_onnxruntime_paths(
ORT_HOME "${ORT_HOME}"
DEFAULT_ORT_VERSION "1.24.1"
DEFAULT_ORT_VERSION "1.25.0-rc.1"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Probably don't need to use the RC anymore.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Builds are downloaded from the nightly feed. 1.25 release isn't available on the feed.
I am unsure what the long term plan is i.e. from where are the ORT binaries sourced from. Are we verifying only against the released version or nightly.

For now, it's working against what's available on the nightly channel. Can update as a follow up.

@shaahji shaahji merged commit 22251f0 into main Apr 23, 2026
11 of 13 checks passed
@shaahji shaahji deleted the shaahji/workflows branch April 23, 2026 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants