Repository navigation
Expand file tree
/
Copy pathreference-application-regression.yml
More file actions
104 lines (102 loc) · 4.09 KB
/
Copy pathreference-application-regression.yml
File metadata and controls
104 lines (102 loc) · 4.09 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
name: MATLAB reference application regression
on:
workflow_dispatch:
inputs:
folder:
description: Application folder to test, or all
required: true
default: all
type: choice
options:
- all
- Body-to-Body_Interactions
- Controls
- Desalination
- End_Stops
- Free_Decay
- Full_Directional_Waves
- Mean_Drift
- Mooring
- Multiple_Condition_Runs
- Multiple_Wave_Spectra
- Nonhydro_Body
- PTO-Sim
- Paraview_Visualization
- Passive_Yaw
- RM3_PTO_Extension
- Radiation_Force_Options
- Variable_Hydro
- Wave_Markers
force_moordyn:
description: Run upstream MoorDyn tests that normally skip on GitHub CI
required: false
default: false
type: boolean
jobs:
regression:
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
max-parallel: 8
matrix:
folder: ${{ fromJSON(inputs.folder == 'all' && '["Body-to-Body_Interactions","Controls","Desalination","End_Stops","Free_Decay","Full_Directional_Waves","Mean_Drift","Mooring","Multiple_Condition_Runs","Multiple_Wave_Spectra","Nonhydro_Body","PTO-Sim","Paraview_Visualization","Passive_Yaw","RM3_PTO_Extension","Radiation_Force_Options","Variable_Hydro","Wave_Markers"]' || format('["{0}"]', inputs.folder)) }}
name: ${{ matrix.folder }}
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@v7
with:
repository: WEC-Sim/WEC-Sim
ref: 0753b2e47f2457c078751dcfe5d251d1767b80ab
path: matlab-ref
filter: blob:none
sparse-checkout: source
- uses: actions/checkout@v7
with:
repository: WEC-Sim/WEC-Sim_Applications
ref: d53d4d4c9eda2581f04204f5d394a6ef84bb099e
path: applications
filter: blob:none
lfs: true
sparse-checkout: |
wecSimAppTest.m
_Common_Input_Files
${{ matrix.folder }}
- uses: actions/checkout@v7
if: matrix.folder == 'Mooring' || matrix.folder == 'Paraview_Visualization'
with:
repository: WEC-Sim/MoorDyn
ref: 34c0703c9a5b74fd2cc5bb52caaadaaa356d675e
path: MoorDyn
- name: Install MoorDyn in the MATLAB source tree
if: matrix.folder == 'Mooring' || matrix.folder == 'Paraview_Visualization'
run: |
mkdir -p matlab-ref/source/functions/moorDyn
cp -r MoorDyn/* matlab-ref/source/functions/moorDyn/
cp MoorDyn/linux_libraries/x86_64/libmoordyn.so* matlab-ref/source/functions/moorDyn/
- name: Use compatible host C++ runtime for MoorDyn
if: inputs.force_moordyn && (matrix.folder == 'Mooring' || matrix.folder == 'Paraview_Visualization')
run: |
library=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
test -f "$library"
strings "$library" | grep GLIBCXX_3.4.32
echo "LD_PRELOAD=$library" >> "$GITHUB_ENV"
- name: Start a display for Desalination
if: matrix.folder == 'Desalination'
run: |
sudo apt-get update
sudo apt-get install -y xvfb
Xvfb :99 &
echo 'DISPLAY=:99' >> "$GITHUB_ENV"
- uses: matlab-actions/setup-matlab@v3
with:
release: R2025b
products: ${{ matrix.folder == 'Controls' && 'Simulink Simscape Simscape_Multibody Control_System_Toolbox Optimization_Toolbox Statistics_and_Machine_Learning_Toolbox Symbolic_Math_Toolbox System_Identification_Toolbox' || matrix.folder == 'Desalination' && 'Simulink Simscape Simscape_Multibody Simscape_Fluids' || 'Simulink Simscape Simscape_Multibody' }}
- uses: matlab-actions/run-command@v3
with:
command: addpath('tests/matlab'); application_regression('${{ matrix.folder }}', '${{ inputs.force_moordyn }}')
- uses: actions/upload-artifact@v4
if: always()
with:
name: application-${{ matrix.folder }}
path: matlab-application-results/