-
Notifications
You must be signed in to change notification settings - Fork 1
71 lines (60 loc) · 2.12 KB
/
matlab_test_and_coverage.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
---
name: 'MATLAB: test and coverage'
# Installs
# - MATLAB github action
# - MOXunit
# - MOcov
# Get test data
# cd into .github/workflows
# run .github/workflows/tests_matlab.m
# If tests pass, uploads coverage to codecov
on:
push:
branches: [master, main, dev]
pull_request:
branches: ['*']
jobs:
matlab_tests:
strategy:
matrix:
version: [R2021a, R2021b, R2022a, R2022b, R2023a]
os: [ubuntu-latest, macos-latest, windows-latest]
fail-fast: false # Don't cancel all jobs if one fails
runs-on: ${{ matrix.os }}
steps:
- name: Install MATLAB
uses: matlab-actions/setup-matlab@v1.2.5
with:
release: ${{ matrix.version }}
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 1
- name: Install Moxunit and MOcov
run: |
git clone https://github.com/MOxUnit/MOxUnit.git --depth 1
git clone https://github.com/MOcov/MOcov.git --depth 1
- name: Run tests
uses: matlab-actions/run-command@v1.2.3
with:
command: cd(fullfile(getenv('GITHUB_WORKSPACE'), '.github', 'workflows')); run run_tests_ci;
- name: Check logs unix
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: grep -q 0 test_report.log || { echo "Some tests failed. Check the 'Run tests' step to know which ones." >&2; exit 1; }
- name: Check logs windows
if: matrix.os == 'windows-latest'
run: |
if (-not (Get-Content test_report.log | Select-String -Pattern "0")) {
throw "Some tests failed. Check the 'Run tests' step to know which ones."
}
- name: Code coverage
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
# no coverage on windows as long as MOcov does not support it
# see https://github.com/MOcov/MOcov/issues/28
uses: codecov/codecov-action@v4
with:
file: coverage.xml # optional
flags: ${{ matrix.os }}_matlab-${{ matrix.version }}
name: codecov-umbrella # optional
fail_ci_if_error: true # optional (default = false)
token: ${{ secrets.CODECOV_TOKEN }}