1818 cmake . -B build -DFMU4CPP_BUILD_TESTS=ON -DFMU4CPP_BUILD_EXAMPLES=ON
1919 cmake --build build
2020
21- - name : " Read model paths"
22- run : |
23- MODEL_PATHS=""
24- while IFS= read -r line || [ -n "$line" ]; do
25- line=$(echo "$line" | tr -d '\r' | xargs)
26- if [ -z "$line" ]; then
27- continue
28- fi
29- if [ -z "$MODEL_PATHS" ]; then
30- MODEL_PATHS="$line"
31- else
32- MODEL_PATHS="$MODEL_PATHS;$line"
33- fi
34- done < build/models.txt
35- printf 'MODEL_PATHS=%s\n' "$MODEL_PATHS" >> $GITHUB_ENV
36-
37-
3821 - name : " Download fmusim"
3922 run : |
4023 version=0.0.39
@@ -48,16 +31,19 @@ jobs:
4831 - name : " Run fmusim"
4932 working-directory : " Reference-FMUs/fmusim-x86_64-linux"
5033 run : |
51- IFS=';' read -r -a paths <<< "${{ env.MODEL_PATHS }}"
52- for mp in "${paths[@]}"; do
53- if [ -z "$mp" ]; then
54- continue
55- fi
56- mb=$(basename "$mp")
57-
58- echo "Checking model: $mp ($mb)"
59- ./fmusim --logging-on "${{ github.workspace }}/build/$mp/$mb.fmu"
60- done
34+ set -e
35+ found=0
36+ # find all .fmu files under `build/models` (fmi2 and fmi3)
37+ while IFS= read -r -d '' f; do
38+ found=1
39+ mb=$(basename "$f")
40+ echo "Checking FMU: $f ($mb)"
41+ ./fmusim --logging-on "${{ github.workspace }}/$f"
42+ done < <(find build/models -type f -name '*.fmu' -print0 2>/dev/null || true)
43+
44+ if [ "$found" -eq 0 ]; then
45+ echo "No FMUs found under `build/models`, skipping fmusim run"
46+ fi
6147
6248 - name : " Test"
6349 run : |
7965 cmake . -B build -DFMU4CPP_BUILD_TESTS=ON -DFMU4CPP_BUILD_EXAMPLES=ON -A x64
8066 cmake --build build --config Release
8167
82- - name : " Read model paths"
83- shell : pwsh
84- run : |
85- $paths = Get-Content -Path build/models.txt | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' }
86- $joined = $paths -join ';'
87- "MODEL_PATHS=$joined" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding UTF8
88-
8968 - name : " Download fmusim"
9069 shell : pwsh
9170 run : |
@@ -100,17 +79,19 @@ jobs:
10079 shell : pwsh
10180 working-directory : " Reference-FMUs/fmusim-x86_64-windows"
10281 run : |
103- $paths = $env:MODEL_PATHS -split ';'
104- foreach ($mp in $paths) {
105- if ([string]::IsNullOrWhiteSpace($mp)) { continue }
106- $mb = Split-Path $mp -Leaf
107- Write-Host "Checking model: $mp ($mb)"
108- & ./fmusim.exe "$env:GITHUB_WORKSPACE\build\$mp\$mb.fmu"
82+ $fmus = Get-ChildItem -Path "$env:GITHUB_WORKSPACE\build\models" -Recurse -Filter '*.fmu' -File -ErrorAction SilentlyContinue
83+ if (-not $fmus -or $fmus.Count -eq 0) {
84+ Write-Host "No FMUs found under `build/models`, skipping fmusim run"
85+ exit 0
86+ }
87+ foreach ($f in $fmus) {
88+ Write-Host "Checking FMU: $($f.FullName) ($($f.Name))"
89+ & ./fmusim.exe $f.FullName
10990 if ($LASTEXITCODE -ne 0) {
110- Write-Error "FMUChecker failed for $mp with exit code $LASTEXITCODE"
111- exit $LASTEXITCODE
112- }
91+ Write-Error "FMUChecker failed for $($f.FullName) with exit code $LASTEXITCODE"
92+ exit $LASTEXITCODE
11393 }
94+ }
11495
11596 - name : " Test"
11697 run : |
0 commit comments