diff --git a/.github/workflows/sycl-nightly.yml b/.github/workflows/sycl-nightly.yml index e8d0307b2e44b..ad57d7c1530ab 100644 --- a/.github/workflows/sycl-nightly.yml +++ b/.github/workflows/sycl-nightly.yml @@ -150,10 +150,26 @@ jobs: # We upload both Linux/Windows build via Github's "Releases" # functionality, make sure Linux/Windows names follow the same pattern. artifact_archive_name: sycl_windows.tar.gz + build_artifact_suffix: default # Disable the spirv-dis requirement as to not require SPIR-V Tools. build_configure_extra_args: -DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=off build_target: all + # This debug build is used in CI for testing purposes: The way MSVC CRT and + # STL works results in the runtime needing to consider special cases when + # debug flags are used. This build is used to test the runtime changes that + # would otherwise be untested without debug flags. + build-win-debug: + uses: ./.github/workflows/sycl-windows-build.yml + if: github.repository == 'intel/llvm' + with: + retention-days: 7 + artifact_archive_name: sycl_windows_debug.tar.gz + build_artifact_suffix: debug + build_configure_extra_args: -t Debug -DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=off -D_DEBUG=1 + # CMAKE_BUILD_TYPE=Debug provides /Od and /MDd + pack_abi_symbols: false + e2e-win: needs: build-win # Continue if build was successful. @@ -168,6 +184,20 @@ jobs: target_devices: level_zero:gpu sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }} + e2e-win-debug: + needs: build-win-debug + # Continue if build was successful. + if: | + always() + && !cancelled() + && needs.build-win-debug.outputs.build_conclusion == 'success' + uses: ./.github/workflows/sycl-windows-run-tests.yml + with: + name: Intel GEN12 Graphics with Level Zero + runner: '["Windows","gen12"]' + target_devices: level_zero:gpu + sycl_toolchain_archive: ${{ needs.build-win-debug.outputs.artifact_archive_name }} + cuda-aws-start: needs: [ubuntu2204_build] if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }} diff --git a/.github/workflows/sycl-windows-build.yml b/.github/workflows/sycl-windows-build.yml index b69dc9f196ef6..83c6a62ea13ed 100644 --- a/.github/workflows/sycl-windows-build.yml +++ b/.github/workflows/sycl-windows-build.yml @@ -10,6 +10,10 @@ on: build_configure_extra_args: type: string required: false + build_artifact_suffix: + type: string + required: true + default: "default" build_target: type: string required: false @@ -39,6 +43,10 @@ on: pack_release: type: string required: false + pack_abi_symbols: + type: string + required: false + default: true outputs: build_conclusion: @@ -59,6 +67,10 @@ on: type: choice options: - "default" + build_artifact_suffix: + type: choice + options: + - "default" build_configure_extra_args: type: string required: false @@ -184,13 +196,13 @@ jobs: run: | cmake --build build --target check-libdevice - name: Generate/diff new ABI symbols - if: always() && !cancelled() && contains(inputs.changes, 'sycl') + if: ${{ always() && !cancelled() && contains(inputs.changes, 'sycl') && inputs.pack_abi_symbols == 'true' }} shell: bash run: | LLVM_BIN_PATH="build/bin" python.exe src/sycl/tools/abi_check.py --mode dump_symbols --output build/new_sycl_symbols_windows.dump build/bin/sycl?.dll diff -Naur src/sycl/test/abi/sycl_symbols_windows.dump build/new_sycl_symbols_windows.dump || true - name: Upload new ABI symbols - if: always() && !cancelled() && contains(inputs.changes, 'sycl') + if: ${{ always() && !cancelled() && contains(inputs.changes, 'sycl') && inputs.pack_abi_symbols == 'true' }} uses: actions/upload-artifact@v4 with: name: sycl_windows_abi_symbols @@ -235,7 +247,7 @@ jobs: if: ${{ always() && !cancelled() && steps.build.conclusion == 'success' }} uses: actions/upload-artifact@v4 with: - name: sycl_windows_default + name: sycl_windows_${{ inputs.build_artifact_suffix }} path: ${{ inputs.artifact_archive_name }} retention-days: ${{ inputs.retention-days }}