Expand runtime_tracing job to include Windows and macOS. (#19655)
This is very similar to the `runtime` job matrix up higher in the file.
Could merge the jobs into a more complicated matrix, though this does
let us filter the enabled jobs 🤔.
Configuration | Timing | Logs
-- | -- | --
Cold cache | 8m14s |
https://github.com/ScottTodd/iree/actions/runs/12698152001
Warm cache | 3m14s|
https://github.com/ScottTodd/iree/actions/runs/12698381905
ci-exactly: runtime_tracing
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a56853a..7b92112 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -157,30 +157,53 @@
runtime_tracing:
needs: setup
- name: "runtime_tracing :: ${{ matrix.provider }} provider"
+ name: "runtime_tracing :: ${{ matrix.runs-on }} :: ${{ matrix.provider }}"
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'runtime_tracing')
- runs-on: ubuntu-24.04
+ runs-on: ${{ matrix.runs-on }}
+ defaults:
+ run:
+ shell: bash
strategy:
fail-fast: false
matrix:
- include:
- - provider: tracy
- - provider: console
+ runs-on: [ubuntu-24.04, windows-2022, macos-14]
+ provider: [tracy, console]
+ # TODO: re-enable macOS Tracy build once it has no errors
+ exclude:
+ - runs-on: macos-14
+ provider: tracy
env:
BUILD_DIR: build-tracing
- CC: clang
- CXX: clang++
- TRACING_PROVIDER: ${{ matrix.provider }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - name: Install requirements
- run: sudo apt update && sudo apt install -y ninja-build
+
+ - name: (Linux) Install requirements
+ if: contains(matrix.runs-on, 'ubuntu')
+ run: |
+ sudo apt update
+ sudo apt install -y ninja-build
+ echo "CC=clang" >> $GITHUB_ENV
+ echo "CXX=clang++" >> $GITHUB_ENV
+ - name: (Windows) Configure MSVC
+ if: contains(matrix.runs-on, 'windows')
+ uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
+ - name: (macOS) Install requirements
+ if: contains(matrix.runs-on, 'macos')
+ run: brew install ninja ccache coreutils bash
+
+ - name: (Linux/Windows) Set driver options
+ if: contains(matrix.runs-on, 'ubuntu') || contains(matrix.runs-on, 'windows')
+ run: echo IREE_DRIVER_OPTIONS="-DIREE_HAL_DRIVER_CUDA=ON -DIREE_HAL_DRIVER_HIP=ON -DIREE_HAL_DRIVER_VULKAN=ON" >> $GITHUB_ENV
+ - name: (macOS) Set driver options
+ if: contains(matrix.runs-on, 'macos')
+ run: echo IREE_DRIVER_OPTIONS="-DIREE_HAL_DRIVER_METAL=ON -DIREE_HAL_DRIVER_VULKAN=OFF" >> $GITHUB_ENV
+
- name: Checkout runtime submodules
run: bash ./build_tools/scripts/git/update_runtime_submodules.sh
- name: ccache
uses: hendrikmuhs/ccache-action@ed74d11c0b343532753ecead8a951bb09bb34bc9 # v1.2.14
with:
- key: ${{ github.job }}-${{ matrix.provider }}
+ key: ${{ github.job }}-${{ matrix.runs-on}}-${{ matrix.provider }}
save: ${{ needs.setup.outputs.write-caches == 1 }}
- name: CMake - configure
run: |
@@ -193,9 +216,8 @@
-DIREE_BUILD_COMPILER=OFF \
-DIREE_ENABLE_LLD=ON \
-DIREE_ENABLE_RUNTIME_TRACING=ON \
- -DIREE_TRACING_PROVIDER=${TRACING_PROVIDER} \
- -DIREE_HAL_DRIVER_CUDA=ON \
- -DIREE_HAL_DRIVER_HIP=ON
+ -DIREE_TRACING_PROVIDER=${{ matrix.provider }} \
+ ${IREE_DRIVER_OPTIONS}
- name: CMake - build
run: cmake --build ${BUILD_DIR} -- -k 0