Skip to content

Add per-keypoint reprojection diagnostics and outlier filtering (#1537) #10784

Add per-keypoint reprojection diagnostics and outlier filtering (#1537)

Add per-keypoint reprojection diagnostics and outlier filtering (#1537) #10784

Workflow file for this run

name: CI Windows
on:
push:
branches:
- main
paths-ignore:
- "**/website/**"
pull_request:
branches:
- "**"
paths-ignore:
- "**/website/**"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
momentum:
# Disabled: Too slow for CI (use sccache on local development)
if: false
name: cpp-${{ matrix.mode == '' && 'opt' || 'dev' }}-win
runs-on: windows-latest
strategy:
fail-fast: true
matrix:
mode: [""] # TODO: Add -dev model
env:
# Enable sccache for C++ compilation caching
CMAKE_GENERATOR: Ninja
CMAKE_GENERATOR_INSTANCE: ""
CMAKE_GENERATOR_PLATFORM: ""
CMAKE_GENERATOR_TOOLSET: ""
CMAKE_C_COMPILER_LAUNCHER: sccache
CMAKE_CXX_COMPILER_LAUNCHER: sccache
SCCACHE_CACHE_SIZE: "2G"
SCCACHE_DIR: ${{ github.workspace }}/.sccache
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Restore sccache
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: .sccache
key: ${{ github.workflow }}-win-sccache-cpp-${{ matrix.mode == '' && 'opt' || 'dev' }}-${{ hashFiles('pixi.lock', 'CMakeLists.txt', 'cmake/**', 'momentum/**', 'pymomentum/**', 'axel/**') }}
restore-keys: |
${{ github.workflow }}-win-sccache-cpp-${{ matrix.mode == '' && 'opt' || 'dev' }}-
${{ github.workflow }}-win-sccache-
- name: Set up sccache
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
- name: Set up pixi
uses: prefix-dev/setup-pixi@5185adfbffb4bd703da3010310260805d89ebb11 # v0.9.5
with:
cache: true
cache-write: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
- name: Build and test Momentum
run: |
pixi run test${{ matrix.mode }}
- name: Install Momentum and Build hello_world
run: |
pixi run install_no_build
pixi run cmake `
-S momentum/examples/hello_world `
-B momentum/examples/hello_world/build
pixi run cmake `
--build momentum/examples/hello_world/build `
--config Release `
--parallel
- name: Print sccache stats
run: sccache --show-stats
pymomentum:
# Enabled: CPU-only for cost optimization (GPU disabled)
name: py-${{ matrix.pixi_env }}-win
runs-on: windows-latest
strategy:
fail-fast: true
matrix:
include:
- pixi_env: "py312"
# GPU disabled to reduce CI cost
# - pixi_env: "py312-cuda129"
# cuda_version: "12.9.0"
env:
FULL_CUDA_VERSION: ${{ matrix.cuda_version }}
# Enable sccache for C++ compilation caching
CMAKE_GENERATOR: Ninja
CMAKE_GENERATOR_INSTANCE: ""
CMAKE_GENERATOR_PLATFORM: ""
CMAKE_GENERATOR_TOOLSET: ""
CMAKE_C_COMPILER_LAUNCHER: sccache
CMAKE_CXX_COMPILER_LAUNCHER: sccache
SCCACHE_CACHE_SIZE: "2G"
SCCACHE_DIR: ${{ github.workspace }}/.sccache
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Restore sccache
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: .sccache
key: ${{ github.workflow }}-win-sccache-py-${{ matrix.pixi_env }}-${{ hashFiles('pixi.lock', 'CMakeLists.txt', 'cmake/**', 'momentum/**', 'pymomentum/**', 'axel/**') }}
restore-keys: |
${{ github.workflow }}-win-sccache-py-${{ matrix.pixi_env }}-
${{ github.workflow }}-win-sccache-
- name: Set up sccache
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
- name: Setup CUDA
if: ${{ contains(matrix.pixi_env, 'cuda') || contains(matrix.pixi_env, 'gpu') }}
uses: ./.github/actions/setup-cuda
with:
cuda-version: ${{ matrix.cuda_version }}
- name: Set up pixi
uses: prefix-dev/setup-pixi@5185adfbffb4bd703da3010310260805d89ebb11 # v0.9.5
with:
cache: true
cache-write: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
- name: Build and test PyMomentum
run: |
pixi run -e ${{ matrix.pixi_env }} test_py
- name: Print sccache stats
run: sccache --show-stats