Skip to content

[WIP][Native WebGPU] Add Conv, ConTranspose and FusedConv #683

[WIP][Native WebGPU] Add Conv, ConTranspose and FusedConv

[WIP][Native WebGPU] Add Conv, ConTranspose and FusedConv #683

name: windows_x64_debug
on:
push:
branches: [ main, 'rel-*']
pull_request:
branches: [ main ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_x64_debug:
runs-on: ["self-hosted", "1ES.Pool=onnxruntime-github-vs2022-mms"]
timeout-minutes: 300
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: false
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
architecture: x64
- name: Locate vcvarsall and Setup Env
uses: ./.github/actions/locate-vcvarsall-and-setup-env # Use the composite action
with:
architecture: x64
- name: Install python modules
shell: cmd
run: python -m pip install -r "${{ github.workspace }}\tools\ci_build\github\windows\python\requirements.txt"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
architecture: x64
- name: API Documentation Check and generate
shell: cmd
run: |
set ORT_DOXY_SRC=${{ github.workspace }}
set ORT_DOXY_OUT=${{ github.workspace }}\build\Debug\Debug
mkdir %ORT_DOXY_SRC%
mkdir %ORT_DOXY_OUT%
"C:\Program Files\doxygen\bin\doxygen.exe" ${{ github.workspace }}\tools\ci_build\github\Doxyfile_csharp.cfg
working-directory: ${{ github.workspace }}
- name: Use .NET 8.x
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.x'
env:
PROCESSOR_ARCHITECTURE: x64
- name: Use Nuget 6.x
uses: nuget/setup-nuget@v2 # Use the official NuGet setup action
with:
nuget-version: '6.x'
- name: NuGet restore
shell: cmd
run: |
nuget restore ${{ github.workspace }}\packages.config -PackagesDirectory ${{ github.workspace }}\build\Debug -ConfigFile ${{ github.workspace }}\NuGet.config
- uses: actions/cache@v3
id: onnx-node-tests-cache
with:
path: ${{ github.workspace }}/js/test/
key: onnxnodetests-${{ hashFiles('js/scripts/prepare-onnx-node-tests.ts') }}
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Build and Test
shell: pwsh
run: |
python.exe "${{ github.workspace }}\tools\ci_build\build.py" --config Debug --build_dir "${{ github.workspace }}\build" --skip_submodule_sync --build_csharp --parallel --use_binskim_compliant_compile_flags --cmake_generator "Visual Studio 17 2022" --build_shared_lib --enable_onnx_tests --build_java --build_nodejs --build_wheel --disable_memleak_checker --msbuild_extra_options "IncludeMobileTargets=false" --build_nuget --use_vcpkg --use_vcpkg_ms_internal_asset_cache
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
Remove-Item "${{ github.workspace }}\build\Debug" -Include "*.obj" -Recurse
env: # Set environment variables here, applies to this step only
ALLOW_RELEASED_ONNX_OPSET_ONLY: '0'
DocUpdateNeeded: 'false' # Can be set dynamically based on build output if needed
- name: Validate C# native delegates
shell: cmd
run: python tools\ValidateNativeDelegateAttributes.py
working-directory: ${{ github.workspace }}\\csharp
- name: Install onnxruntime wheel
shell: pwsh
run: |
python -m pip uninstall -y onnxruntime onnxruntime-gpu onnxruntime-training onnxruntime-directml -qq
Get-ChildItem -Path dist/*.whl | foreach {pip --disable-pip-version-check install --upgrade $_.fullname}
working-directory: "${{ github.workspace }}\\build\\Debug\\Debug"
# Publish artifacts only on failure and if DocUpdateNeeded is true (example)
- name: Publish OperatorKernels.md (Conditional)
uses: actions/upload-artifact@v4
if: failure() && env.DocUpdateNeeded == 'true' # Use env. for step-level vars
with:
name: OperatorKernels.md
path: ${{ github.workspace }}/docs/OperatorKernels.md
- name: Publish ContribOperators.md (Conditional)
uses: actions/upload-artifact@v4
if: failure() && env.DocUpdateNeeded == 'true'
with:
name: ContribOperators.md
path: ${{ github.workspace }}/docs/ContribOperators.md
# These variables will persist for the entire job
env:
OrtPackageId: Microsoft.ML.OnnxRuntime
OnnxRuntimeBuildDirectory: ${{ github.workspace }}\build
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'