Skip to content

[21585] Update Fast DDS Monitor CI to use eProsima-CI utilities #1759

[21585] Update Fast DDS Monitor CI to use eProsima-CI utilities

[21585] Update Fast DDS Monitor CI to use eProsima-CI utilities #1759

Workflow file for this run

name: test
on:
workflow_dispatch:
inputs:
dependencies_artifact_postfix:
description: 'Postfix name to add to artifact name to download dependencies. This is use to download a specific artifact version from eProsima-CI.'
required: true
default: '_nightly'
pull_request:
push:
branches:
- main
schedule:
- cron: '0 0 * * *'
env:
default_dependencies_artifact_postfix: '_nightly'
jobs:
#####################################################################
# TEST
multiplatform-build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
cmake_build_type:
- Release
- Debug
os:
- ubuntu-20.04
- ubuntu-22.04
- windows-2019
- windows-2022
steps:
- name: Sync repository
uses: eProsima/eProsima-CI/external/checkout@v0
with:
path: ${{ github.workspace }}/src
- name: Download dependencies and install requirements
uses: ./src/.github/actions/project_dependencies
with:
os: ${{ matrix.os }}
cmake_build_type: ${{ matrix.cmake_build_type }}
dependencies_artifact_postfix: ${{ github.event.inputs.dependencies_artifact_postfix || env.default_dependencies_artifact_postfix }}
secret_token: ${{ secrets.GITHUB_TOKEN }}
- name: Compile
uses: eProsima/eProsima-CI/multiplatform/colcon_build_test@v0
#uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0
with:
packages_names: fastdds_monitor
cmake_args: -DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }}
workspace_dependencies: ${{ github.workspace }}/install
colcon_meta_file: ${{ github.workspace }}/src/.github/workflows/configurations/${{ runner.os }}/colcon.meta
#####################################################################
# CLANG
# clang:
# runs-on: ubuntu-22.04
# steps:
# - name: Sync repository
# uses: eProsima/eProsima-CI/external/checkout@v0
# with:
# path: ${{ github.workspace }}/src
# - name: Download dependencies and install requirements
# #uses: ./src/.github/actions/project_dependencies
# uses: ${{ github.workspace }}/src/.github/actions/project_dependencies
# with:
# os: ubuntu-22.04
# cmake_build_type: Release
# dependencies_artifact_postfix: ${{ github.event.inputs.dependencies_artifact_postfix || env.default_dependencies_artifact_postfix }}
# secret_token: ${{ secrets.GITHUB_TOKEN }}
# - name: Compile and run tests
# uses: eProsima/eProsima-CI/multiplatform/clang_build_test@v0
# with:
# #packages_names: ${{ env.code_packages_names }}
# workspace_dependencies: ${{ github.workspace }}/install
# colcon_meta_file: ${{ github.workspace }}/src/.github/workflows/configurations/Linux/clang_colcon.meta
#####################################################################
# UNCRUSTIFY
# uncrustify:
# runs-on: ubuntu-22.04
# steps:
# - name: Uncrustify
# uses: eProsima/eProsima-CI/ubuntu/uncrustify@v0
# 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 Python packages
# uses: ./src/Fast-DDS-monitor/.github/actions/install-python-packages
#
# - 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: ./src/Fast-DDS-monitor/.github/actions/install-python-packages
# - 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: ./src/Fast-DDS-monitor/.github/actions/install-python-packages
#
# - 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
#