Skip to content

Merge pull request #298 from bareboat-necessities/claude/ou-ii-ou-iii… #191

Merge pull request #298 from bareboat-necessities/claude/ou-ii-ou-iii…

Merge pull request #298 from bareboat-necessities/claude/ou-ii-ou-iii… #191

name: wave-direction
on:
push:
branches: [main]
paths:
- "src/wave_dir/**"
- "src/kalman_ou_ii/SeaStateFusionFilter_OU_II.h"
- "src/kalman_ou_iii/SeaStateFusionFilter_OU_III.h"
- "src/util/W3dSimCommon.*"
- "tests/wave_dir/**"
- "CMakeLists.txt"
- "Makefile"
- ".github/workflows/wave-direction.yml"
pull_request:
paths:
- "src/wave_dir/**"
- "src/kalman_ou_ii/SeaStateFusionFilter_OU_II.h"
- "src/kalman_ou_iii/SeaStateFusionFilter_OU_III.h"
- "src/util/W3dSimCommon.*"
- "tests/wave_dir/**"
- "CMakeLists.txt"
- "Makefile"
- ".github/workflows/wave-direction.yml"
workflow_dispatch:
concurrency:
group: wave-direction-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install dependencies
timeout-minutes: 20
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq g++ make libeigen3-dev
- name: Build with strict warnings
shell: bash
run: |
log="${RUNNER_TEMP}/wave-direction-build.log"
if ! make -C tests/wave_dir build >"${log}" 2>&1; then
echo "Strict build failed. Compiler diagnostics:"
grep -nE '(^|[[:space:]])(error:|warning:|fatal error:)|\[-W[^]]+\]|make(\[[0-9]+\])?: \*\*\*' "${log}" || tail -n 160 "${log}"
exit 1
fi
- name: Run direction tests
id: direction_tests
continue-on-error: true
shell: bash
run: make -C tests/wave_dir test >"${RUNNER_TEMP}/wave-direction-test.log" 2>&1
- name: Upload focused test transcript
if: steps.direction_tests.outcome == 'failure'
uses: actions/upload-artifact@v6
with:
name: wave-direction-test-failure
path: ${{ runner.temp }}/wave-direction-test.log
if-no-files-found: error
- name: Enforce direction test result
if: steps.direction_tests.outcome == 'failure'
shell: bash
run: |
cat "${RUNNER_TEMP}/wave-direction-test.log"
exit 1
- name: Show direction test result
if: steps.direction_tests.outcome == 'success'
run: cat "${RUNNER_TEMP}/wave-direction-test.log"
- name: Compile OU-II integration
run: make -C tests/kalman_ou_ii build
- name: Compile OU-III integration
run: make -C tests/kalman_ou_iii build