Skip to content

Update WaveSpectrumEstimator_Wavelets.h #312

Update WaveSpectrumEstimator_Wavelets.h

Update WaveSpectrumEstimator_Wavelets.h #312

Workflow file for this run

name: build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
dir: [wave_sim, freq, spectrum, ahrs, pii_observer, kalman_ou_ii, kalman_ou_iii, imu_calibrate, detrend]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Download sim data from oceanography-waves-lib GitHub repo release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release download v1.0.9 --repo bareboat-necessities/oceanography-waves-lib --pattern "sim-data-files.zip" --clobber
- name: Unpack simulation data (${{ matrix.dir }})
run: |
unzip -o sim-data-files.zip -d ${{ github.workspace }}/plots/${{ matrix.dir }}
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y g++ make libeigen3-dev \
texlive-xetex texlive-latex-recommended texlive-fonts-recommended texlive-latex-extra texlive-fonts-extra dvipng \
python3-pip python3-matplotlib python3-numpy python3-pandas
- name: Compile tests (${{ matrix.dir }})
run: |
cd tests/${{ matrix.dir }}
make
- name: Copy test data (${{ matrix.dir }})
run: |
cp ${{ github.workspace }}/plots/${{ matrix.dir }}/*.csv tests/${{ matrix.dir }}
- name: Run tests (${{ matrix.dir }})
run: |
cd tests/${{ matrix.dir }}
chmod +x *.sh
./run_tests.sh
cp *.csv ../../plots/${{ matrix.dir }}
- name: Generate PGF plots (${{ matrix.dir }})
shell: bash
run: |
cd plots/${{ matrix.dir }}
chmod +x *.sh
./draw_plots.sh
mv -v *.pgf ../../doc/${{ matrix.dir }}/ || true
mv -v *.svg ../../doc/${{ matrix.dir }}/ || true
mv -v *.png ../../doc/${{ matrix.dir }}/ || true
- name: Compile LaTeX document (${{ matrix.dir }})
uses: xu-cheng/latex-action@v4
with:
root_file: "*.tex"
pre_compile: |
echo "openout_any = a" | tee -a $(kpsewhich texmf.cnf)
curl -L https://github.com/plantuml/plantuml/releases/download/v1.2025.4/plantuml.jar -o plantuml.jar
export PLANTUML_JAR=$(pwd)/plantuml.jar
curl -L https://mirrors.ctan.org/macros/luatex/latex/plantuml/plantuml.sty -o plantuml.sty
echo ">> Debug: TeX config patched, now checking PlantUML installation"
plantuml -version || true
java -version || true
work_in_root_file_dir: true
working_directory: doc/${{ matrix.dir }}
latexmk_use_lualatex: true
latexmk_shell_escape: true
args: "-shell-escape"
extra_system_packages: "inkscape ghostscript graphviz ncurses openjdk11-jre"
env:
PLANTUML_JAR: ${{ github.workspace }}/doc/${{ matrix.dir }}/plantuml.jar
- name: Upload PDF artifacts (${{ matrix.dir }})
uses: actions/upload-artifact@v6
with:
name: latex-pdfs-${{ matrix.dir }}
path: doc/${{ matrix.dir }}/**/*.pdf
if-no-files-found: error
- name: Find SVGs (${{ matrix.dir }})
id: find_svgs
shell: bash
run: |
shopt -s nullglob globstar
files=(
doc/${{ matrix.dir }}/**/*pmstokes*H1.5*.svg
doc/${{ matrix.dir }}/**/*pmstokes*medium*.svg
)
if [ ${#files[@]} -gt 0 ]; then
mkdir -p release-svg/${{ matrix.dir }}
for f in "${files[@]}"; do
cp -v "$f" release-svg/${{ matrix.dir }}/
done
echo "found=true" >> "$GITHUB_OUTPUT"
else
echo "found=false" >> "$GITHUB_OUTPUT"
fi
- name: Upload SVG artifacts (${{ matrix.dir }})
if: steps.find_svgs.outputs.found == 'true'
uses: actions/upload-artifact@v6
with:
name: release-svgs-${{ matrix.dir }}
path: release-svg/${{ matrix.dir }}/**/*.svg
if-no-files-found: error
release:
if: github.event_name == 'push'
runs-on: ubuntu-latest
needs: build
steps:
- name: Download all workflow artifacts
uses: actions/download-artifact@v8
with:
path: release-assets
merge-multiple: false
- name: Show downloaded files
shell: bash
run: |
find release-assets -type f | sort
- name: Upload PDFs to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: release-assets/latex-pdfs-*/*.pdf
tag: ${{ github.ref == 'refs/heads/main' && 'vTest' || github.ref_name }}
overwrite: true
file_glob: true
- name: Upload SVGs to release
shell: bash
run: |
shopt -s nullglob globstar
files=(release-assets/release-svgs-*/*.svg)
if [ ${#files[@]} -eq 0 ]; then
echo "No matching SVG files to upload."
exit 0
fi
printf '%s\n' "${files[@]}" > svg_files.txt
cat svg_files.txt
- name: Upload SVGs to release (serialized)
if: hashFiles('release-assets/release-svgs-*/*.svg') != ''
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: release-assets/release-svgs-*/*.svg
tag: ${{ github.ref == 'refs/heads/main' && 'vTest' || github.ref_name }}
overwrite: true
file_glob: true
build-MCU:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ino_dir: [ "imu_fifo" ]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Compile sketch
uses: ArminJo/arduino-test-compile@v3
with:
arduino-board-fqbn: esp32:esp32:m5stack_atoms3:CDCOnBoot=cdc,USBMode=hwcdc
arduino-platform: esp32:esp32@3.3.5
platform-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
required-libraries: M5Unified@0.2.13,M5GFX@0.2.19,Eigen@0.3.2,Arduino_BMI270_BMM150@1.2.3
sketch-names: "*.ino"
sketch-names-find-start: sensors/${{ matrix.ino_dir }}/*
extra-arduino-cli-args: "--warnings default --build-property compiler.libraries.ldflags=-Wl,--allow-multiple-definition --build-property compiler.cpp.extra_flag=-mvector --build-property compiler.cpp.extra_flag=-funroll-loops --build-property compiler.cpp.extra_flag=-fno-finite-math-only"
set-build-path: true