Update main.yml #14
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
# SPDX-License-Identifier: GPL-3.0-or-later | |
# SPDX-FileCopyrightText: 2020-2022 Carles Fernandez-Prades <[email protected]> | |
name: Simple CI | |
on: | |
pull_request: | |
paths-ignore: | |
- "**/CITATION.cff" | |
push: | |
paths-ignore: | |
- "**/CITATION.cff" | |
workflow_dispatch: | |
jobs: | |
build-ubuntu: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
sudo apt-get update -y | |
sudo apt install -y libunwind-dev | |
sudo apt-get install -y --no-install-recommends ninja-build cmake \ | |
libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev \ | |
libboost-thread-dev libboost-chrono-dev libboost-serialization-dev \ | |
liblog4cpp5-dev gnuradio-dev gr-osmosdr libpugixml-dev libpcap-dev libblas-dev \ | |
liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev \ | |
libgnutls-openssl-dev libmatio-dev googletest protobuf-compiler libprotobuf-dev \ | |
python3-mako liborc-0.4-dev | |
- name: configure | |
run: cd build && cmake -GNinja .. | |
- name: build | |
run: cd build && ninja | |
- name: check | |
run: cd build && ninja check && ../install/volk_gnsssdr_profile && ../install/run_tests | |
- name: default position_test | |
run: cd build && cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. && ninja && ../install/position_test | |
build-macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
brew update | |
brew install --overwrite [email protected] [email protected] | |
python3.11 -m pip install mako | |
brew install ninja pkg-config hdf5 automake armadillo lapack \ | |
gflags glog gnuradio log4cpp openssl pugixml protobuf | |
- name: configure | |
run: cd build && cmake -GNinja .. | |
- name: build | |
run: cd build && ninja | |
- name: check | |
run: cd build && ninja check && ../install/volk_gnsssdr_profile && ../install/run_tests | |
- name: default position_test | |
run: cd build && cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. && ninja && ../install/position_test | |
build-macos-xcode: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
brew update | |
brew install --overwrite [email protected] [email protected] | |
python3.11 -m pip install mako | |
brew install ninja pkg-config hdf5 automake armadillo lapack gflags glog \ | |
gnuradio log4cpp openssl pugixml protobuf | |
- name: configure | |
run: cd build && cmake -GXcode .. | |
- name: build | |
run: cd build && xcodebuild -configuration Release | |
- name: check | |
run: | | |
cd build | |
xcodebuild -configuration Release -target check | |
../install/volk_gnsssdr_profile | |
../install/run_tests | |
- name: default position_test | |
run: | | |
cd build | |
cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. | |
xcodebuild -configuration Release -target position_test | |
../install/position_test | |
clang-format: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: run clang-format | |
uses: jidicula/[email protected] | |
with: | |
clang-format-version: "15" | |
check-path: "src" | |
exclude-regex: '(libs\/gsl\/)|^.*\.(cu|proto)$' | |
clang-tidy: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
brew update | |
brew install --overwrite [email protected] [email protected] | |
python3.11 -m pip install mako | |
brew install llvm pkg-config hdf5 armadillo lapack gflags glog gnuradio libmatio \ | |
log4cpp openssl pugixml protobuf | |
ln -s $(brew --prefix llvm)/bin/clang-tidy /usr/local/bin | |
ln -s $(brew --prefix llvm)/bin/clang-apply-replacements /usr/local/bin | |
ln -s $(brew --prefix llvm)/bin/run-clang-tidy /usr/local/bin | |
- name: Prepare run | |
run: cd build && cmake .. && make volk_gnsssdr_module gtest-1.13.0 core_monitor core_libs pvt_libs | |
- name: run clang-tidy | |
run: cd build && run-clang-tidy -fix | |
- name: check | |
run: | | |
git diff > clang_tidy.patch | |
echo -e "if \n [ -s clang_tidy.patch ] \nthen \n echo "clang_tidy not applied:"; echo ""; more clang_tidy.patch; exit 1 \nfi \n" > detect | |
chmod +x ./detect | |
./detect | |
cpplint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: sudo apt-get install python3-pip && sudo pip3 install cpplint | |
- name: run checks | |
run: "find ./src/ -iname *.h -o -iname *.cc | xargs cpplint | |
--filter=-,+build/class,+build/c++14,+build/deprecated,+build/explicit_make_pair,\ | |
+build/include_what_you_use,+build/printf_format,+build/storage_class,\ | |
+readability/constructors,+readability/namespace,+readability/newline,\ | |
+readability/utf8,+runtime/casting,+runtime/explicit,\ | |
+runtime/indentation_namespace,+runtime/init,+runtime/invalid_increment,\ | |
+runtime/member_string_references,+runtime/memset,+runtime/operator,\ | |
+runtime/printf,+runtime/printf_format,+whitespace/blank_line,\ | |
+whitespace/comma,+whitespace/comments,+whitespace/empty_conditional_body,\ | |
+whitespace/end-of-line,+whitespace/ending-newline,+whitespace/semicolon,\ | |
+whitespace/tab --exclude=./src/core/interfaces/gnss_block_interface.h | |
--exclude=./src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cpu_features/test/hwcaps_for_testing.* | |
--exclude=./src/utils/nav-listener/build/nav_message.pb.h" | |
prettier-markdown: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: sudo npm install --global prettier | |
- name: check markdown | |
run: find . -iname "*.md" | xargs prettier --parser markdown --print-width 80 --prose-wrap always --list-different | |
cmakelint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
sudo python -m pip install --upgrade pip | |
sudo pip install cmakelint | |
- name: check CMake scripts | |
run: find . -iname "CMakeLists.txt" -o -iname "*.cmake" | xargs cmakelint --filter=-linelength,-readability/wonkycase | |
volk-gnsssdr-windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install mako | |
- name: configure | |
shell: powershell | |
run: cd build; cmake -G "Visual Studio 17 2022" ..\src\algorithms\libs\volk_gnsssdr_module\volk_gnsssdr | |
- name: build | |
run: cmake --build build --config Release | |
- name: test | |
shell: powershell | |
run: cd build; ctest -C Release | |
- name: install | |
run: cmake --install build | |
- name: run profile | |
run: cd 'C:\Program Files (x86)\volk_gnsssdr\bin'; .\volk_gnsssdr_profile.exe | |
volk-gnsssdr-ubuntu: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: sudo apt install python3-mako liborc-dev | |
- name: configure | |
run: cd build && cmake ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr | |
- name: build | |
run: cd build && make -j2 | |
- name: install | |
run: cd build && sudo make install && sudo ldconfig | |
- name: test | |
run: volk_gnsssdr_profile | |
volk-gnsssdr-macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: pip3 install mako | |
- name: configure | |
run: cd build && cmake ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr | |
- name: build | |
run: cd build && make -j2 && sudo make install | |
- name: test | |
run: cd build && ctest -C Release --exclude-regex volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc | |
volk-gnsssdr-macos-xcode: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: pip3 install mako | |
- name: configure | |
run: cd build && cmake -GXcode ../src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr | |
- name: build | |
run: cd build && xcodebuild -configuration Release | |
- name: install | |
run: cd build && sudo xcodebuild -configuration Release -target install | |
- name: test | |
run: cd build && ctest -C Release --exclude-regex volk_gnsssdr_32fc_32f_rotator_dotprodxnpuppet_32fc | |
shellcheck: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: sudo apt install shellcheck | |
- name: check scripts | |
run: shellcheck src/utils/scripts/* | |
REUSE-compliance: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Check REUSE compliance | |
uses: docker://fsfe/reuse | |
with: | |
args: lint |