Skip to content

docs: hand off the F7 streaming session #1

docs: hand off the F7 streaming session

docs: hand off the F7 streaming session #1

Workflow file for this run

name: MATLAB MEX
on:
push:
branches: [develop, Claude] # TODO(release): remove temporary Claude trigger
tags: ['v*']
pull_request:
branches: [main]
workflow_dispatch:
jobs:
mex:
name: MEX on ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- name: Set up MATLAB
uses: matlab-actions/setup-matlab@a0180c939fb1a28de13f44f7b778b912384ced1f # v3.0.1
with:
release: R2024b
- name: Install macOS OpenMP runtime
if: runner.os == 'macOS'
run: brew install libomp
- name: Configure parallel MEX
run: >-
cmake -S . -B build/mex-ci
-DDTWC_BUILD_MATLAB=ON
-DDTWC_ENABLE_LLFIO=OFF
-DDTWC_ENABLE_HIGHS=OFF
-DDTWC_ENABLE_GUROBI=OFF
-DDTWC_BUILD_TESTING=OFF
-DCMAKE_BUILD_TYPE=Release
- name: Build MEX
run: cmake --build build/mex-ci --config Release --target dtwc_mex --parallel 2
- name: Run complete MATLAB contract and OpenMP gate
uses: matlab-actions/run-command@bcd446a219949c24051c1d04a4b4e0274c42f23b # v3
with:
command: >-
addpath(fullfile(pwd,'bindings','matlab'));
addpath(fullfile(pwd,'build','mex-ci','bin'));
files={fullfile(pwd,'tests','matlab','test_dtwc.m'),
fullfile(pwd,'tests','matlab','test_mex_input_validation.m'),
fullfile(pwd,'tests','matlab','test_contract_parity.m'),
fullfile(pwd,'tests','matlab','test_test_api.m'),
fullfile(pwd,'tests','conformance','test_conformance.m')};
r=runtests(files); assertSuccess(r);
DTWC_QUICKSTART_CSV=fullfile(pwd,'tests','conformance','data','conformance_series.csv');
run(fullfile(pwd,'docs','examples','quickstart.m'));
p=dtwc_mex('test_parallelisation');
assert(p.available && p.pass && p.threads_engaged>=2);
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: dtwc-mex-${{ matrix.os }}
path: build/mex-ci/bin/dtwc_mex.*
if-no-files-found: error