Skip to content

[19607] Feature: Monitor service status topic #2193

[19607] Feature: Monitor service status topic

[19607] Feature: Monitor service status topic #2193

Workflow file for this run

name: test
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
schedule:
- cron: '0 0 * * *'
jobs:
windows-build-test:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
cmake-config:
- 'Release'
- 'Debug'
env:
CXXFLAGS: /MP
OPENSSL64_ROOT: "C:/Program Files/OpenSSL-Win64"
steps:
- name: Sync eProsima/Fast-DDS-Statistics-Backend repository
uses: actions/checkout@v2
with:
path: Fast-DDS-statistics-backend
- name: Install OpenSSL
shell: pwsh
run: >
choco install openssl -yr --no-progress;
@(ls -Path C:\Windows\System32\* -Include libssl-*.dll; ls -Path C:\Windows\SysWOW64\* -Include libssl-*.dll)
| rm -ErrorAction SilentlyContinue
- 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 ${{ matrix.cmake-config }} --target install;
}
- 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 ${{ matrix.cmake-config }} --target install;
- name: Install Fast-CDR
shell: pwsh
run: >
git clone https://github.com/eProsima/Fast-CDR.git --branch master;
cmake -Ax64 -T host=x64 -B build\fastcdr Fast-CDR;
cmake --build build\fastcdr --config ${{ matrix.cmake-config }} --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 ${{ matrix.cmake-config }} --target install;
- name: Install Fast-DDS-statistics-backend
shell: pwsh
run: >
cmake -DCMAKE_PREFIX_PATH='C:\Program Files\gtest' -DBUILD_LIBRARY_TESTS=ON `
-B build\backend -A x64 -T host=x64 Fast-DDS-statistics-backend;
cmake --build build\backend --config ${{ matrix.cmake-config }} --target install;
- name: Run tests on ${{ matrix.cmake-config }}
shell: pwsh
run: ctest -C ${{ matrix.cmake-config }} --test-dir build\backend -V --timeout 60 --label-exclude xfail
# ubuntu-build-test:
# runs-on: ubuntu-latest
# environment:
# name: codecov
# steps:
# - uses: actions/checkout@v2
# with:
# path: src/Fast-DDS-statistics-backend
# - name: Install apt packages
# uses: ./src/Fast-DDS-statistics-backend/.github/actions/install-apt-packages
# - 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 \
# breathe==4.19.0 \
# 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.2 \
# tomark
# - name: Fetch eProsima dependencies
# run: |
# vcs import src < ./src/Fast-DDS-statistics-backend/.github/workflows/ci.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: Build gtest
# run: |
# colcon build \
# --event-handlers=console_direct+ \
# --packages-select googletest-distribution
# - name: Build workspace
# run: |
# cat src/Fast-DDS-statistics-backend/.github/workflows/test.meta
# colcon build \
# --packages-skip googletest-distribution \
# --event-handlers=console_direct+ \
# --metas src/Fast-DDS-statistics-backend/.github/workflows/test.meta
# - name: Run tests
# run: |
# source install/setup.bash && \
# colcon test \
# --packages-select fastdds_statistics_backend \
# --event-handlers=console_direct+ \
# --return-code-on-test-failure \
# --ctest-args \
# --timeout 60 \
# --label-exclude xfail
# - name: Generate coverage report
# run: |
# cp src/Fast-DDS-statistics-backend/codecov.yml .
# mkdir coverage-report
# gcovr \
# --root src/Fast-DDS-statistics-backend/ \
# --object-directory build/fastdds_statistics_backend \
# --output coverage-report/coverage.xml \
# --xml-pretty \
# --exclude='.*nlohmann-json/.*' \
# --exclude='.*docs/.*' \
# --exclude='.*examples/.*' \
# --exclude='.*test/.*' \
# --exclude='.*github/.*' \
# --exclude='.*topic_types/.*' \
# --exclude-unreachable-branches
# if: always()
# - name: Upload coverage
# uses: actions/upload-artifact@v1
# with:
# name: coverage-report
# path: coverage-report/
# if: always()
# - 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-statistics-backend
# fail_ci_if_error: true
# - name: Upload Logs
# uses: actions/upload-artifact@v1
# with:
# name: colcon-logs-ubuntu
# path: log/
# if: always()
# - name: Upload documentation
# uses: actions/upload-artifact@v1
# with:
# name: Documentation HTML
# path: install/fastdds_statistics_backend/docs/fastdds_statistics_backend/sphinx/html/
# if: always()
# asan-test:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# with:
# path: src/Fast-DDS-statistics-backend
# - name: Install apt packages
# uses: ./src/Fast-DDS-statistics-backend/.github/actions/install-apt-packages
# - 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 \
# breathe==4.19.0 \
# 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.2 \
# tomark
# - name: Fetch eProsima dependencies
# run: |
# vcs import src < ./src/Fast-DDS-statistics-backend/.github/workflows/ci.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: Build workspace
# run: |
# cat src/Fast-DDS-statistics-backend/.github/workflows/asan.meta
# colcon build \
# --event-handlers=console_direct+ \
# --metas src/Fast-DDS-statistics-backend/.github/workflows/asan.meta
# - name: Run tests
# run: |
# source install/setup.bash && \
# colcon test \
# --packages-select fastdds_statistics_backend \
# --event-handlers=console_direct+ \
# --return-code-on-test-failure \
# --ctest-args \
# --timeout 60 \
# --label-exclude xasan xfail
# - name: Upload Logs
# uses: actions/upload-artifact@v1
# with:
# name: asan-logs
# path: log/
# if: always()
# - name: Report ASAN errors
# continue-on-error: true
# if: always()
# run: |
# echo -n "**ASAN Errors**: " >> $GITHUB_STEP_SUMMARY
# echo $(sed 's/==.*==ERROR:/==.*==ERROR:\n/g' log/latest_test/fastdds_statistics_backend/stdout_stderr.log | grep -c "==.*==ERROR:") >> $GITHUB_STEP_SUMMARY
# python3 src/Fast-DDS-statistics-backend/.github/workflows/asan_log_parser.py
# flaky-test:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# with:
# path: src/Fast-DDS-statistics-backend
# - name: Install apt packages
# uses: ./src/Fast-DDS-statistics-backend/.github/actions/install-apt-packages
# - 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 \
# breathe==4.19.0 \
# 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.2 \
# tomark
# - name: Fetch eProsima dependencies
# run: |
# vcs import src < ./src/Fast-DDS-statistics-backend/.github/workflows/ci.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: Build workspace
# run: |
# cat src/Fast-DDS-statistics-backend/.github/workflows/test.meta
# colcon build \
# --event-handlers=console_direct+ \
# --metas src/Fast-DDS-statistics-backend/.github/workflows/test.meta
# - name: Run tests
# run: |
# source install/setup.bash && \
# colcon test \
# --packages-select fastdds_statistics_backend \
# --event-handlers=console_direct+ \
# --return-code-on-test-failure \
# --ctest-args \
# --timeout 60 \
# --label-regex xfail
# - name: Upload Logs
# uses: actions/upload-artifact@v1
# with:
# name: asan-logs
# path: log/
# if: always()
# clang-tidy:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# with:
# path: src/Fast-DDS-statistics-backend
# - name: Install apt packages
# uses: ./src/Fast-DDS-statistics-backend/.github/actions/install-apt-packages
# - 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 \
# breathe==4.19.0 \
# 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.2 \
# tomark
# - name: Fetch eProsima dependencies
# run: |
# vcs import src < ./src/Fast-DDS-statistics-backend/.github/workflows/ci.repos
# - name: Build workspace
# run: |
# cat src/Fast-DDS-statistics-backend/.github/workflows/clang.meta
# colcon build \
# --event-handlers=console_direct+ \
# --metas src/Fast-DDS-statistics-backend/.github/workflows/clang.meta
# - name: Run clang-tidy
# run: |
# cd build/fastdds_statistics_backend
# run-clang-tidy -header-filter='.*' -checks='clang-analyzer-cplusplus' -quiet 2> ${{ github.workspace }}/clang_results.yml
# uncrustify:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# with:
# path: src/Fast-DDS-statistics-backend
# - name: Fetch all branches and tags
# run: |
# cd src/Fast-DDS-statistics-backend
# git fetch --prune --unshallow
# - name: Install apt packages
# uses: ./src/Fast-DDS-statistics-backend/.github/actions/install-apt-packages
# - 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 \
# breathe==4.19.0 \
# 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.2 \
# tomark
# - 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-statistics-backend
# echo "MODIFIED_FILES=$(git diff --name-only origin/${GITHUB_BASE_REF} origin/${GITHUB_HEAD_REF} | grep -e '\.h' -e '\.hpp' -e '\.cpp' | tr '\n' ' ')" >> $GITHUB_ENV
# - name: Check difference
# run: |
# cd src/Fast-DDS-statistics-backend
# 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-statistics-backend
# 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
# if: always()