gr-filter: Fix cpp templates for severl variable filter taps #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 'Make Test' | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
# We start with checking C++ formatting. No one gets free CPU cycles if they | |
# can't use clang-format. | |
check-formatting: | |
name: Check C++ Formatting | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: DoozyX/[email protected] | |
with: | |
source: '.' | |
exclude: './volk' | |
extensions: 'h,hpp,cpp,cc,cc.in' | |
clangFormatVersion: 14 | |
check-python-formatting: | |
name: Check Python Formatting | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: quentinguidee/pep8-action@v1 | |
with: | |
# ----------------------------------- | |
# UPDATE tox.ini when making changes! | |
arguments: '--max-line-length=120 --ignore E265,E266,E275,E402,E501,E704,E712,E713,E714,E711,E721,E722,E741,W504,W605 --exclude *.yml.py' | |
# ----------------------------------- | |
# Doxygen gets built separately. It has a lot of output and its own weirdness. | |
doxygen: | |
name: Doxygen | |
runs-on: ubuntu-latest # This can run on whatever | |
timeout-minutes: 15 | |
container: | |
image: 'gnuradio/ci:ubuntu-20.04-3.9' | |
volumes: | |
- build_data:/build | |
steps: | |
- uses: actions/checkout@v2 | |
name: Checkout Project | |
- name: CMake | |
run: 'cd /build && cmake ${GITHUB_WORKSPACE}' | |
- name: Make Docs | |
run: 'cd /build && make doxygen_target' | |
linux-docker: | |
# All of these shall depend on the formatting check (needs: check-formatting) | |
needs: [check-formatting, check-python-formatting] | |
runs-on: ubuntu-latest | |
# The GH default is 360 minutes (it's also the max as of Feb-2021). However | |
# we should fail sooner. The only reason to exceed this time is if a test | |
# hangs. | |
timeout-minutes: 120 | |
strategy: | |
# Enabling fail-fast would kill all Dockers if one of them fails. We want | |
# maximum output. | |
fail-fast: false | |
matrix: | |
# For every distro we want to test here, add one key 'distro' with a | |
# descriptive name, and one key 'containerid' with the name of the | |
# container (i.e., what you want to docker-pull) | |
include: | |
- distro: 'Ubuntu 20.04' | |
containerid: 'gnuradio/ci:ubuntu-20.04-3.9' | |
cxxflags: -Werror | |
ctest_args: '-E ""' | |
# ldpath: | |
- distro: 'Ubuntu 22.04' | |
containerid: 'gnuradio/ci:ubuntu-22.04-3.9' | |
cxxflags: -Werror | |
ctest_args: '-E "qa_polar_..coder_(sc_)?systematic"' | |
# ldpath: | |
- distro: 'Ubuntu 24.04' | |
containerid: 'gnuradio/ci:ubuntu-24.04-3.10' | |
cxxflags: -Werror | |
- distro: 'Fedora 39 (with 0xFE memory initialization, GLIBCXX_ASSERTIONS)' | |
containerid: 'gnuradio/ci:fedora-39-3.10' | |
cxxflags: -Werror -ftrivial-auto-var-init=pattern -Wp,-D_GLIBCXX_ASSERTIONS | |
ctest_args: '-E ""' | |
ldpath: /usr/local/lib64/ | |
- distro: 'Fedora 40 (clang)' | |
containerid: 'gnuradio/ci:fedora-40-3.10' | |
cxxflags: -Werror | |
cmakeflags: -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang | |
ctest_args: '-E ""' | |
ldpath: /usr/local/lib64 | |
- distro: 'Debian 12' | |
containerid: 'gnuradio/ci:debian-12-3.10' | |
cxxflags: -Werror | |
ctest_args: '-E ""' | |
# ldpath: | |
- distro: 'Debian 11 (32-bit)' | |
containerid: 'gnuradio/ci:debian-i386-11-3.10' | |
containeroptions: '--platform linux/i386' | |
cxxflags: -Werror | |
ctest_args: '-E "qa_polar_..coder_(sc_)?systematic"' | |
# ldpath: | |
name: ${{ matrix.distro }} | |
container: | |
image: ${{ matrix.containerid }} | |
volumes: | |
- build_data:/build | |
options: --cpus 2 ${{ matrix.containeroptions }} | |
steps: | |
- uses: actions/checkout@v1 | |
name: Checkout Project | |
- name: CMake | |
env: | |
CXXFLAGS: ${{ matrix.cxxflags }} | |
run: 'cd /build && cmake ${{ matrix.cmakeflags }} ${GITHUB_WORKSPACE} -DENABLE_DOXYGEN=OFF' | |
- name: Dump compile commands | |
run: 'cd /build && cat compile_commands.json' | |
- name: Make | |
run: 'cd /build && make -j2 -k' | |
- name: Make Test | |
env: | |
QT_QPA_PLATFORM: offscreen | |
run: 'cd /build && ctest --output-on-failure ${{ matrix.ctest_args }}' | |
- name: Make Install | |
run: | | |
cd /build | |
su -c "make install" | |
su -c "echo ${{matrix.ldpath}} >> /etc/ld.so.conf" | |
su -c ldconfig | |
- name: Test Python3 | |
run: python3 -c "import gnuradio.blocks; print(gnuradio.blocks.complex_to_float())" | |
no-python: | |
# All of these shall depend on the formatting check (needs: check-formatting) | |
needs: [check-formatting, check-python-formatting] | |
runs-on: ubuntu-latest | |
# The GH default is 360 minutes (it's also the max as of Feb-2021). However | |
# we should fail sooner. The only reason to exceed this time is if a test | |
# hangs. | |
timeout-minutes: 120 | |
name: C++ Only Build (Ubuntu 20.04) | |
container: | |
image: 'gnuradio/ci:ubuntu-20.04-3.9' | |
volumes: | |
- build_data:/build | |
options: --cpus 2 | |
steps: | |
- uses: actions/checkout@v2 | |
name: Checkout Project | |
- name: CMake | |
env: | |
CXXFLAGS: -Werror | |
run: 'cd /build && cmake ${GITHUB_WORKSPACE} -DENABLE_DOXYGEN=OFF -DENABLE_PYTHON=OFF' | |
- name: Make | |
run: 'cd /build && make -j2 -k' | |
- name: Make Test | |
run: 'cd /build && ctest --output-on-failure' | |
mingw64: | |
# All of these shall depend on the formatting check (needs: check-formatting) | |
needs: [check-formatting, check-python-formatting] | |
runs-on: windows-latest | |
name: MinGW-w64 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Setup MSYS2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
update: true | |
install: >- | |
git | |
make | |
pacboy: >- | |
toolchain:p | |
cmake:p | |
ninja:p | |
boost:p | |
cppzmq:p | |
fftw:p | |
gsl:p | |
gsm:p | |
gtk3:p | |
jack2:p | |
libsndfile:p | |
libunwind:p | |
pango:p | |
portaudio:p | |
pybind11:p | |
python:p | |
python-click:p | |
python-gobject:p | |
python-jsonschema:p | |
python-mako:p | |
python-numpy:p | |
python-pip:p | |
python-pyqt5:p | |
python-pyzmq:p | |
python-yaml:p | |
qt5-base:p | |
qwt-qt5:p | |
SDL:p | |
soapysdr:p | |
spdlog:p | |
thrift:p | |
volk:p | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: CMake | |
run: | | |
cmake -S . -B build \ | |
-DCMAKE_INSTALL_PREFIX=${RUNNER_TEMP}/msys64/mingw64 \ | |
-DENABLE_DOXYGEN=OFF | |
- name: Make | |
run: cmake --build build | |
- name: Make Install | |
run: cmake --install build | |
- name: Make Test | |
working-directory: ./build | |
run: ctest --output-on-failure |