Skip to content

Update run_unit_tests.yml - Add Matlab_Compiler as dependency #12

Update run_unit_tests.yml - Add Matlab_Compiler as dependency

Update run_unit_tests.yml - Add Matlab_Compiler as dependency #12

name: Run unit tests
on:
workflow_dispatch:
push:
pull_request:
env:
MLM_LICENSE_TOKEN: ${{ secrets.MATLAB_BATCH_TOKEN }}
jobs:
unit-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: False
matrix:
matlab: ["latest"]
os: [ubuntu-latest]
python-version: ["3.11"]
# 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
products: MATLAB_Compiler
- 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: |
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"
echo $LD_LIBRARY_PATH
ls ${{ env.MATLAB_PATH }}
find ${{ env.MATLAB_PATH }} -name 'runtime'
python -m unittest discover tests -v