1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-10-30 22:56:22 +00:00
gnss-sdr/.github/workflows/main.yml

299 lines
11 KiB
YAML
Raw Normal View History

# SPDX-License-Identifier: GPL-3.0-or-later
2024-02-26 14:05:01 +00:00
# SPDX-FileCopyrightText: 2020-2024 Carles Fernandez-Prades <carles.fernandez@cttc.es>
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@v4
- name: install dependencies
2022-12-11 22:44:44 +00:00
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
2024-07-26 18:21:45 +00:00
run: |
cd build && cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON -DENABLE_UNIT_TESTING_EXTRA=OFF .. && \
2024-07-26 18:21:45 +00:00
ninja && ../install/position_test && ../install/run_tests --gtest_filter=Osnma*
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
2024-03-29 21:57:49 +00:00
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: install dependencies
2022-12-17 08:40:20 +00:00
run: |
brew update
rm /usr/local/bin/2to3 || true
rm /usr/local/bin/idle3 || true
rm /usr/local/bin/pydoc3 || true
rm /usr/local/bin/python3 || true
rm /usr/local/bin/python3-config || true
rm /usr/local/bin/2to3-3.1* || true
rm /usr/local/bin/idle3.1* || true
rm /usr/local/bin/pydoc3.1* || true
rm /usr/local/bin/python3.1* || true
2023-12-21 13:52:41 +00:00
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
2024-03-29 21:57:49 +00:00
brew link --overwrite python@3.12
brew install ninja hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf
2024-03-29 21:57:49 +00:00
pip3 install mako
- 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
2024-07-26 18:21:45 +00:00
run: |
cd build && cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON -DENABLE_UNIT_TESTING_EXTRA=OFF .. && \
2024-07-26 18:21:45 +00:00
ninja && ../install/position_test && ../install/run_tests --gtest_filter=Osnma*
build-macos-xcode:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
2024-03-29 21:57:49 +00:00
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: install dependencies
2022-12-17 08:40:20 +00:00
run: |
brew update
rm /usr/local/bin/2to3 || true
rm /usr/local/bin/idle3 || true
rm /usr/local/bin/pydoc3 || true
rm /usr/local/bin/python3 || true
rm /usr/local/bin/python3-config || true
rm /usr/local/bin/2to3-3.1* || true
rm /usr/local/bin/idle3.1* || true
rm /usr/local/bin/pydoc3.1* || true
rm /usr/local/bin/python3.1* || true
2023-12-21 13:52:41 +00:00
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
2024-03-29 21:57:49 +00:00
brew link --overwrite python@3.12
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf
2024-03-29 21:57:49 +00:00
pip3 install mako
- name: configure
run: cd build && cmake -GXcode ..
- name: build
run: cd build && xcodebuild -configuration Release
- name: check
2022-12-17 08:40:20 +00:00
run: |
cd build
xcodebuild -configuration Release -target check
../install/volk_gnsssdr_profile
../install/run_tests
- name: default position_test
2022-12-17 08:40:20 +00:00
run: |
cd build
cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON -DENABLE_UNIT_TESTING_EXTRA=OFF ..
2022-12-17 08:40:20 +00:00
xcodebuild -configuration Release -target position_test
../install/position_test
2024-07-26 18:02:15 +00:00
../install/run_tests --gtest_filter=Osnma*
clang-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: run clang-format
uses: jidicula/clang-format-action@v4.11.0
with:
clang-format-version: "15"
check-path: "src"
exclude-regex: '(libs\/gsl\/)|^.*\.(cu|proto)$'
clang-tidy:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
2024-03-29 21:57:49 +00:00
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: install dependencies
2022-12-17 08:40:20 +00:00
run: |
brew update
rm /usr/local/bin/2to3 || true
rm /usr/local/bin/idle3 || true
rm /usr/local/bin/pydoc3 || true
rm /usr/local/bin/python3 || true
rm /usr/local/bin/python3-config || true
rm /usr/local/bin/2to3-3.1* || true
rm /usr/local/bin/idle3.1* || true
rm /usr/local/bin/pydoc3.1* || true
rm /usr/local/bin/python3.1* || true
2023-12-21 13:52:41 +00:00
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
2024-03-29 21:57:49 +00:00
brew link --overwrite python@3.12
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf llvm
pip3 install mako
2022-12-17 08:40:20 +00:00
ln -s $(brew --prefix llvm)/bin/clang-tidy /usr/local/bin
ln -s $(brew --prefix llvm)/bin/clang-apply-replacements /usr/local/bin
2024-03-29 21:57:49 +00:00
ln -s $(brew --prefix llvm)/bin/run-clang-tidy.py /usr/local/bin
- name: Prepare run
2024-02-26 14:05:01 +00:00
run: cd build && cmake .. && make volk_gnsssdr_module gtest-1.14.0 core_monitor core_libs pvt_libs
- name: run clang-tidy
run: cd build && /opt/homebrew/opt/llvm/bin/run-clang-tidy -fix
- name: check
2022-12-17 08:40:20 +00:00
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
2020-02-23 09:40:58 +00:00
2020-02-22 23:57:16 +00:00
cpplint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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@v4
- 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
2020-03-01 10:33:51 +00:00
cmakelint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
2020-03-01 10:33:51 +00:00
- 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
2020-03-01 10:33:51 +00:00
volk-gnsssdr-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- 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@v4
- 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@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip 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@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip 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
2022-08-03 10:33:57 +00:00
shellcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: sudo apt install shellcheck
- name: check scripts
run: shellcheck src/utils/scripts/*
2022-08-03 10:33:57 +00:00
REUSE-compliance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check REUSE compliance
uses: docker://fsfe/reuse
with:
args: lint