Skip to content

Update run_unit_tests.yml with Paths #7

Update run_unit_tests.yml with Paths

Update run_unit_tests.yml with Paths #7

name: Run unit tests
on:
workflow_dispatch:
push:
pull_request:
jobs:
unit-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: False
matrix:
matlab: ["latest"]
os: [ubuntu-latest, macos-13, macos-latest, windows-latest]
python-version: ["3.9", "3.10", "3.11", "3.12"]
include:
- os: ubuntu-latest
os_name: Linux
- os: macos-13
os_name: macOS_Intel
- os: macos-latest
os_name: macOS_Apple_Silicon
- os: windows-latest
os_name: Windows
steps:
# Setup MATLAB and Runtime
- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2
with:
release: ${{matrix.matlab}}
cache: True
- name: Extract MATLAB path to file
uses: matlab-actions/run-command@v2
with:
command: |
fileID = fopen('matlab_path.txt', 'w')
matlabpath = matlabroot;
fprintf(fileID, matlabpath)
fclose(fileID)
# sometimes this step hangs when closing matlab, automatically terminating after 2 minutes solves the issue
timeout-minutes: 2
continue-on-error: true
- name: Set environment variable with MATLAB path
shell: bash # Works on Windows as well because of shell: bash
run: |
matlab_path=$(cat matlab_path.txt)
echo "MATLAB_PATH=$matlab_path" >> $GITHUB_ENV
- name: Setup path on Linux
if: matrix.os_name == 'Linux'
run: |
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}\
${{ env.MATLAB_PATH }}/runtime/glnxa64:\
${{ env.MATLAB_PATH }}/bin/glnxa64:\
${{ env.MATLAB_PATH }}/sys/os/glnxa64:\
${{ env.MATLAB_PATH }}/extern/bin/glnxa64"
- name: Setup path on Mac Apple Silicon
if: matrix.os_name == 'macOS_Apple_Silicon'
run: |
export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}\
${{ env.MATLAB_PATH }}/runtime/maca64:\
${{ env.MATLAB_PATH }}/bin/maca64:\
${{ env.MATLAB_PATH }}/sys/os/maca64:\
${{ env.MATLAB_PATH }}/extern/bin/maca64"
- name: Setup path on Mac Intel
if: matrix.os_name == 'macOS_Intel'
run: |
export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}\
${{ env.MATLAB_PATH }}/runtime/maci64:\
${{ env.MATLAB_PATH }}/bin/maci64:\
${{ env.MATLAB_PATH }}/sys/os/maci64:\
${{ env.MATLAB_PATH }}/extern/bin/maci64"
- name: Setup path on Windows
if: matrix.os_name == 'Windows'
run: |
set PATH=%PATH%;$env:MATLAB_PATH\runtime\win32;$env:MATLAB_PATH\runtime\win64
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip' # caching pip dependencies
- name: Check out repository
uses: actions/checkout@v4
- name: Install repository
run: pip install -e .
- name: Run tests on Mac
shell: bash
if: runner.os == 'Mac'
run: mwpython -m unittest discover tests -v
- name: Run tests on Linux
shell: bash
if: runner.os == 'Linux'
run: python -m unittest discover tests -v