[21446] Fast DDS Monitor refactor: Fast DDS v3 compatibility #2164
Workflow file for this run
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: test | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- main | |
schedule: | |
- cron: '0 0 * * *' | |
jobs: | |
windows-build-test-release: | |
runs-on: windows-latest | |
environment: | |
name: codecov | |
env: | |
CXXFLAGS: /MP | |
OPENSSL64_ROOT: "C:/Program Files/OpenSSL-Win64" | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
path: Fast-DDS-monitor | |
- name: Install OpenSSL | |
uses: ./Fast-DDS-monitor/.github/actions/install-openssl-windows | |
- name: Install GoogleTest | |
shell: pwsh | |
run: > | |
cmake --find-package -DNAME=GTest -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST | Tee-Object -Variable res; | |
if ( $res -notlike '*GTest found.*') | |
{ | |
git clone https://github.com/google/googletest.git; | |
cmake -DCMAKE_INSTALL_PREFIX='C:\Program Files\gtest' -Dgtest_force_shared_crt=ON -DBUILD_GMOCK=ON ` | |
-B build\gtest -A x64 -T host=x64 googletest; | |
cmake --build build\gtest --config Release --target install | |
} | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
with: | |
version: '5.15.2' | |
arch: 'win64_msvc2019_64' | |
dir: '${{ github.workspace }}/qt_installation/' | |
modules: 'qtcharts' | |
- name: Install foonatham memory | |
shell: pwsh | |
run: > | |
git clone --recurse-submodules --branch v0.6-2 https://github.com/foonathan/memory.git; | |
cmake -DBUILD_SHARED_LIBS=OFF -DFOONATHAN_MEMORY_BUILD_TOOLS=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON ` | |
-DFOONATHAN_MEMORY_BUILD_TESTS=OFF -Ax64 -T host=x64 -B build\memory memory; | |
cmake --build build\memory --config Release --target install | |
- name: install Fast-CDR | |
shell: pwsh | |
run: > | |
git clone https://github.com/eProsima/Fast-CDR.git; | |
cmake -Ax64 -T host=x64 -B build\fastcdr Fast-CDR; | |
cmake --build build\fastcdr --config Release --target install | |
- name: Install Fast-DDS | |
shell: pwsh | |
run: > | |
git clone https://github.com/eProsima/Fast-DDS.git; | |
cmake -DTHIRDPARTY=ON -DSECURITY=ON -DCOMPILE_EXAMPLES=OFF -DEPROSIMA_BUILD_TESTS=OFF ` | |
-DINTERNAL_DEBUG=ON -Ax64 -T host=x64 -B build\fastdds Fast-DDS; | |
cmake --build build\fastdds --config Release --target install | |
- name: Install Fast-DDS-statistics-backend | |
shell: pwsh | |
run: > | |
git clone https://github.com/eProsima/Fast-DDS-statistics-backend.git; | |
cmake -DCMAKE_PREFIX_PATH='C:\Program Files\gtest' ` | |
-B build\backend -A x64 -T host=x64 Fast-DDS-statistics-backend; | |
cmake --build build\backend --config Release --target install | |
- name: Install Fast-DDS-monitor | |
shell: pwsh | |
run: > | |
cmake -DCMAKE_PREFIX_PATH='C:\Program Files\gtest' -DBUILD_APP_TESTS=ON -DBUILD_MOCK=ON ` | |
-DQT_PATH=$GITHUB_WORKSPACE/qt_installation/Qt/5.15.2 -DCMAKE_CXX_FLAGS="/WX /EHsc" ` | |
-B build\monitor -A x64 -T host=x64 Fast-DDS-monitor; | |
cmake --build build\monitor --config Release --target install | |
- name: Run tests | |
shell: pwsh | |
run: ctest -C Release --test-dir build\monitor -V --timeout 60 | |
windows-build-test-debug: | |
runs-on: windows-latest | |
environment: | |
name: codecov | |
env: | |
CXXFLAGS: /MP | |
OPENSSL64_ROOT: "C:/Program Files/OpenSSL-Win64" | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
path: Fast-DDS-monitor | |
- name: Install OpenSSL | |
uses: ./Fast-DDS-monitor/.github/actions/install-openssl-windows | |
- name: Install GoogleTest | |
shell: pwsh | |
run: > | |
cmake --find-package -DNAME=GTest -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST | Tee-Object -Variable res; | |
if ( $res -notlike '*GTest found.*') | |
{ | |
git clone https://github.com/google/googletest.git; | |
cmake -DCMAKE_INSTALL_PREFIX='C:\Program Files\gtest' -Dgtest_force_shared_crt=ON -DBUILD_GMOCK=ON ` | |
-B build\gtest -A x64 -T host=x64 googletest; | |
cmake --build build\gtest --config Debug --target install | |
} | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
with: | |
version: '5.15.2' | |
arch: 'win64_msvc2019_64' | |
dir: '${{ github.workspace }}/qt_installation/' | |
modules: 'qtcharts' | |
- name: Install foonatham memory | |
shell: pwsh | |
run: > | |
git clone --recurse-submodules --branch v0.6-2 https://github.com/foonathan/memory.git; | |
cmake -DBUILD_SHARED_LIBS=OFF -DFOONATHAN_MEMORY_BUILD_TOOLS=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON ` | |
-DFOONATHAN_MEMORY_BUILD_TESTS=OFF -Ax64 -T host=x64 -B build\memory memory; | |
cmake --build build\memory --config Debug --target install | |
- name: install Fast-CDR | |
shell: pwsh | |
run: > | |
git clone https://github.com/eProsima/Fast-CDR.git; | |
cmake -Ax64 -T host=x64 -B build\fastcdr Fast-CDR; | |
cmake --build build\fastcdr --config Debug --target install | |
- name: Install Fast-DDS | |
shell: pwsh | |
run: > | |
git clone https://github.com/eProsima/Fast-DDS.git; | |
cmake -DTHIRDPARTY=ON -DSECURITY=ON -DCOMPILE_EXAMPLES=OFF -DEPROSIMA_BUILD_TESTS=OFF ` | |
-DINTERNAL_DEBUG=ON -Ax64 -T host=x64 -B build\fastdds Fast-DDS; | |
cmake --build build\fastdds --config Debug --target install | |
- name: Install Fast-DDS-statistics-backend | |
shell: pwsh | |
run: > | |
git clone https://github.com/eProsima/Fast-DDS-statistics-backend.git; | |
cmake -DCMAKE_PREFIX_PATH='C:\Program Files\gtest' ` | |
-B build\backend -A x64 -T host=x64 Fast-DDS-statistics-backend; | |
cmake --build build\backend --config Debug --target install | |
- name: Install Fast-DDS-monitor | |
shell: pwsh | |
run: > | |
cmake -DCMAKE_PREFIX_PATH='C:\Program Files\gtest' -DBUILD_APP_TESTS=ON -DBUILD_MOCK=ON ` | |
-DQT_PATH=$GITHUB_WORKSPACE/qt_installation/Qt/5.15.2 -DCMAKE_CXX_FLAGS="/WX /EHsc" ` | |
-B build\monitor -A x64 -T host=x64 Fast-DDS-monitor; | |
cmake --build build\monitor --config Debug --target install | |
- name: Run tests | |
shell: pwsh | |
run: ctest -C Debug --test-dir build\monitor -V --timeout 60 | |
ubuntu-build-test: | |
runs-on: ubuntu-latest | |
environment: | |
name: codecov | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
path: src/Fast-DDS-monitor | |
- name: Install apt packages | |
uses: ./src/Fast-DDS-monitor/.github/actions/install-apt-packages | |
- name: Install GTest | |
uses: ./src/Fast-DDS-monitor/.github/actions/install-gtest | |
- name: Install colcon | |
uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 | |
- name: Install Python packages | |
uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 | |
with: | |
packages: \ | |
sphinx==3.0.3 \ | |
doc8==0.8.0 \ | |
sphinx_rtd_theme==0.4.3 \ | |
sphinxcontrib.spelling==5.0.0 \ | |
sphinxcontrib-imagehelper==1.1.1 \ | |
vcstool \ | |
GitPython \ | |
setuptools \ | |
gcovr==5 | |
- name: Fetch Fast DDS Statistics Backend repositories | |
uses: ./src/Fast-DDS-monitor/.github/actions/fetch-fastdds-statistics-backend-repos | |
- name: Update colcon mixin | |
run: | | |
colcon mixin add default \ | |
https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml | |
colcon mixin update default | |
continue-on-error: true | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
with: | |
version: '5.15.2' | |
dir: '${{ github.workspace }}/qt_installation/' | |
modules: 'qtcharts' | |
- name: Build workspace | |
run: | | |
cat src/Fast-DDS-monitor/.github/workflows/test_colcon.meta | |
colcon build \ | |
--event-handlers=console_direct+ \ | |
--metas src/Fast-DDS-monitor/.github/workflows/test_colcon.meta \ | |
--mixin coverage-gcc asan-gcc | |
- name: Run tests | |
run: | | |
source install/setup.bash && \ | |
QT_QPA_PLATFORM=offscreen \ | |
colcon test \ | |
--packages-select fastdds_monitor \ | |
--event-handlers=console_direct+ \ | |
--return-code-on-test-failure | |
- name: Generate coverage report | |
run: | | |
cp src/Fast-DDS-monitor/codecov.yml . | |
mkdir coverage-report | |
gcovr \ | |
--root src/Fast-DDS-monitor/ \ | |
--object-directory build/fastdds_monitor \ | |
--output coverage-report/coverage.xml \ | |
--xml-pretty \ | |
--exclude='.*docs/.*' \ | |
--exclude='.*test/.*' \ | |
--exclude='.*mock/.*' \ | |
--exclude='.*github/.*' \ | |
--exclude-unreachable-branches | |
- name: Upload coverage | |
uses: actions/upload-artifact@v1 | |
with: | |
name: coverage-report | |
path: coverage-report/ | |
- name: Upload documentation | |
uses: actions/upload-artifact@v1 | |
with: | |
name: Documentation HTML | |
path: install/fastdds_monitor/docs/fastdds_monitor_docs/sphinx/html/ | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
file: coverage-report/coverage.xml | |
root_dir: src/Fast-DDS-monitor | |
fail_ci_if_error: true | |
- name: Upload Logs | |
uses: actions/upload-artifact@v1 | |
with: | |
name: colcon-logs-ubuntu | |
path: log/ | |
if: always() | |
- name: Upload spelling errors | |
uses: actions/upload-artifact@v1 | |
with: | |
name: spelling_errors.txt | |
path: build/fastdds_monitor/docs/test/spelling/output.txt | |
continue-on-error: true | |
clang-tidy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
path: src/Fast-DDS-monitor | |
- uses: ./src/Fast-DDS-monitor/.github/actions/install-apt-packages | |
- uses: ./src/Fast-DDS-monitor/.github/actions/install-gtest | |
- uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 | |
- uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 | |
with: | |
packages: \ | |
sphinx==3.0.3 \ | |
doc8==0.8.0 \ | |
sphinx_rtd_theme==0.4.3 \ | |
sphinxcontrib.spelling==5.0.0 \ | |
sphinxcontrib-imagehelper==1.1.1 \ | |
vcstool \ | |
GitPython \ | |
setuptools \ | |
gcovr==5 | |
- uses: ./src/Fast-DDS-monitor/.github/actions/fetch-fastdds-statistics-backend-repos | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
with: | |
version: '5.15.2' | |
dir: '${{ github.workspace }}/qt_installation/' | |
modules: 'qtcharts' | |
- name: Build workspace | |
run: | | |
cat src/Fast-DDS-monitor/.github/workflows/clang_colcon.meta | |
colcon build \ | |
--event-handlers=console_direct+ \ | |
--metas src/Fast-DDS-monitor/.github/workflows/clang_colcon.meta | |
- name: Run clang-tidy | |
run: | | |
cd build/fastdds_monitor | |
run-clang-tidy -header-filter='.*' -checks='clang-analyzer-cplusplus' -quiet 2> ${{ github.workspace }}/clang_results.yml | |
- name: Upload clang results | |
uses: actions/upload-artifact@v1 | |
with: | |
name: clang_results | |
path: ${{ github.workspace }}/clang_results.yml | |
uncrustify: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
path: src/Fast-DDS-monitor | |
- name: Fetch all branches and tags | |
run: | | |
cd src/Fast-DDS-monitor | |
git fetch --prune --unshallow | |
- uses: ./src/Fast-DDS-monitor/.github/actions/install-apt-packages | |
- uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 | |
- uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 | |
with: | |
packages: \ | |
sphinx==3.0.3 \ | |
doc8==0.8.0 \ | |
sphinx_rtd_theme==0.4.3 \ | |
sphinxcontrib.spelling==5.0.0 \ | |
sphinxcontrib-imagehelper==1.1.1 \ | |
vcstool \ | |
GitPython \ | |
setuptools \ | |
gcovr==5 | |
- name: Install uncrustify | |
run: | | |
git clone https://github.com/uncrustify/uncrustify.git \ | |
--branch uncrustify-0.71.0 \ | |
--single-branch uncrustify | |
mkdir -p uncrustify/build | |
cd uncrustify/build | |
cmake .. | |
sudo cmake --build . --target install | |
cd ../.. | |
sudo rm -rf uncrustify | |
- name: Clone ament_lint | |
run: | | |
git clone https://github.com/ament/ament_lint.git src/ament_lint | |
- name: Build ament_uncrustify | |
run: colcon build --packages-up-to ament_uncrustify | |
- name: Fetch uncrustify config file | |
run: | | |
curl \ | |
-l https://raw.githubusercontent.com/eProsima/cpp-style/master/uncrustify.cfg \ | |
-o uncrustify.cfg | |
- name: Get difference | |
run: | | |
cd src/Fast-DDS-monitor | |
echo "MODIFIED_FILES=$(git diff --name-only origin/${GITHUB_BASE_REF} origin/${GITHUB_HEAD_REF} | grep -e '\.h' -e '\.hpp' -e '\.cpp' -e '\.ipp' | tr '\n' ' ')" >> $GITHUB_ENV | |
- name: Check difference | |
run: | | |
cd src/Fast-DDS-monitor | |
if [[ -z "${MODIFIED_FILES}" ]] | |
then | |
touch empty.hpp | |
echo "MODIFIED_FILES=empty.hpp" >> $GITHUB_ENV | |
fi | |
- name: Check style | |
run: | | |
source install/local_setup.bash | |
cd src/Fast-DDS-monitor | |
ament_uncrustify \ | |
-c ../../uncrustify.cfg \ | |
--language CPP \ | |
--xunit-file ../../uncrustify_results.xml \ | |
${MODIFIED_FILES} | |
- name: Upload uncrustify results | |
uses: actions/upload-artifact@v1 | |
with: | |
name: uncrustify_results | |
path: uncrustify_results.xml |