Skip to content

Remove any HF_TOKEN references from the pipelines (#2108) #6

Remove any HF_TOKEN references from the pipelines (#2108)

Remove any HF_TOKEN references from the pipelines (#2108) #6

name: "Windows CPU x64 Build"
on:
workflow_dispatch:
push:
branches:
- main
- rel-*
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.sha }}
cancel-in-progress: true
env:
binaryDir: 'build/cpu/win-x64'
ORT_NIGHTLY_REST_API: "https://feeds.dev.azure.com/aiinfra/PublicPackages/_apis/packaging/Feeds/ORT-Nightly/packages?packageNameQuery=Microsoft.ML.OnnxRuntime&api-version=6.0-preview.1"
ORT_PACKAGE_NAME: "Microsoft.ML.OnnxRuntime"
jobs:
windows-cpu-x64-build:
runs-on: ["self-hosted", "1ES.Pool=onnxruntime-genai-Win2022-CPU"]
permissions:
security-events: write
actions: read
steps:
- name: Checkout OnnxRuntime GenAI repo
uses: actions/checkout@v5
with:
submodules: true
- uses: actions/setup-python@v6
with:
python-version: '3.11.x'
architecture: 'x64'
- name: Setup VCPKG
uses: microsoft/onnxruntime-github-actions/setup-build-tools@v0.0.8
with:
vcpkg-version: '2025.03.19'
vcpkg-hash: '17e96169cd3f266c4716fcdc1bb728e6a64f103941ece463a2834d50694eba4fb48f30135503fd466402afa139abc847ef630733c442595d1c34979f261b0114'
cmake-version: '3.31.6'
cmake-hash: '0f1584e8666cf4a65ec514bd02afe281caabf1d45d2c963f3151c41484f457386aa03273ab25776a670be02725354ce0b46f3a5121857416da37366342a833a0'
add-cmake-to-path: 'true'
disable-terrapin: 'false'
- name: Setup Visual Studio 2022
uses: microsoft/setup-msbuild@v1.1
with:
vs-version: '17.5'
- uses: actions/setup-dotnet@v5
with:
dotnet-version: '8.0.x'
- name: Setup Java 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
cache: 'gradle'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: '8.6'
- name: Install Rust Toolchain
run: |
$exePath = "$env:TEMP\rustup-init.exe"
(New-Object Net.WebClient).DownloadFile('https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe', $exePath)
& $exePath -y --default-toolchain=1.86.0
Add-Content $env:GITHUB_PATH "$env:USERPROFILE\.cargo\bin"
- name: Download OnnxRuntime Nightly
shell: pwsh
run: |
$resp = Invoke-RestMethod "${{ env.ORT_NIGHTLY_REST_API }}"
$ORT_NIGHTLY_VERSION = $resp.value[0].versions[0].normalizedVersion
Write-Host "$ORT_NIGHTLY_VERSION"
"ORT_NIGHTLY_VERSION=$ORT_NIGHTLY_VERSION" | Out-File -FilePath $env:GITHUB_ENV -Append
nuget install ${{ env.ORT_PACKAGE_NAME }} -version $ORT_NIGHTLY_VERSION -x -NonInteractive
- run: Get-ChildItem ${{ env.ORT_PACKAGE_NAME }} -Recurse
continue-on-error: true
- name: Extract OnnxRuntime library and header files
run: |
mkdir ort/lib
move ${{ env.ORT_PACKAGE_NAME }}/build/native/include ort/
move ${{ env.ORT_PACKAGE_NAME }}/runtimes/win-x64/native/* ort/lib/
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: 'cpp'
- name: Configure CMake
run: |
cmake --preset windows_x64_cpu_release -DENABLE_JAVA=ON -DUSE_GUIDANCE=ON
- name: Build with CMake
run: |
cmake --build --preset windows_x64_cpu_release --parallel
cmake --build --preset windows_x64_cpu_release --target PyPackageBuild
- name: Build the C Examples
run: |
cmake -S examples\c -B examples\c\build `
-DMODEL_QA=ON -DMODEL_CHAT=ON -DMODEL_MM=ON -DWHISPER=ON -DNEMOTRON_SPEECH=ON `
"-DORT_INCLUDE_DIR=$env:GITHUB_WORKSPACE\$env:binaryDir\_deps\ortlib-src\build\native\include" `
"-DORT_LIB_DIR=$env:GITHUB_WORKSPACE\$env:binaryDir\_deps\ortlib-src\runtimes\win-x64\native" `
"-DOGA_INCLUDE_DIR=$env:GITHUB_WORKSPACE\src" `
"-DOGA_LIB_DIR=$env:GITHUB_WORKSPACE\$env:binaryDir\Release"
cmake --build examples\c\build --config Release
- name: Install the Python wheel and test dependencies
run: |
python3 -m pip install -r test\python\requirements.txt --user
python3 -m pip install -r test\python\cpu\torch\requirements.txt --user
python3 -m pip install -r test\python\cpu\ort\requirements.txt --user
python3 -m pip install (Get-ChildItem ("$env:binaryDir\wheel\*.whl")) --no-deps
- name: Run the Java tests
run: |
ctest --test-dir $env:binaryDir\src\java --build-config Release --verbose --timeout 10800
- name: Run the Python Tests
run: |
python test/python/test_onnxruntime_genai.py --cwd "test\python" --test_models "test\test_models"
- name: Build the C# API and Run the C# Tests
run: |
cd test\csharp
dotnet test /p:NativeBuildOutputDir="$env:GITHUB_WORKSPACE\$env:binaryDir\Release" /p:OrtLibDir="$env:GITHUB_WORKSPACE\ort\lib" --verbosity normal
- name: Build the C# Examples
run: |
cd examples\csharp\ModelChat
dotnet build -c Release
cd ..\ModelMM
dotnet build -c Release
- name: Test the C# LLM Example with Tool Calling
run: |
python3 test\python\special_tokens.py -p test\test_models\qwen-2.5-0.5b\int4\cpu\tokenizer.json -s "<tool_call>" -e "</tool_call>"
.\examples\csharp\ModelChat\bin\Release\net8.0\ModelChat.exe -m test\test_models\qwen-2.5-0.5b\int4\cpu\ -e cpu --response_format lark_grammar --tools_file test\test_models\tool-definitions\weather.json --tool_call_start "<tool_call>" --tool_call_end "</tool_call>" --user_prompt "What is the weather in Redmond, WA?" --tool_output --non_interactive --verbose
- name: Verify Build Artifacts
if: always()
continue-on-error: true
run: |
Get-ChildItem -Path $env:GITHUB_WORKSPACE\$env:binaryDir -Recurse
Get-ChildItem -Path $env:GITHUB_WORKSPACE\$env:binaryDir\test -Recurse
- name: Run tests
run: |
copy $env:GITHUB_WORKSPACE\ort\lib\* .\$env:binaryDir\Release
& .\$env:binaryDir\Release\unit_tests.exe
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3