diff --git a/.github/actions/project_dependencies/action.yml b/.github/actions/project_dependencies/action.yml new file mode 100644 index 00000000..86f5b210 --- /dev/null +++ b/.github/actions/project_dependencies/action.yml @@ -0,0 +1,120 @@ +name: fastdds_monitor_dependencies_ubuntu +description: Common first step for all jobs. Checkout repository, download dependencies and install required packages. + +inputs: + + os: + description: Specify runs-on machine to download specific artifact + required: true + + cmake_build_type: + description: Specify cmake_build_type option to download specific artifact + required: true + + dependencies_artifact_postfix: + description: Specify artifact postfix in case it wants to use a manual one + required: false + default: _nightly + + target_workspace: + description: Specify directory to download dependencies + required: false + default: ${{ github.workspace }}/install + + # This must be passed as an argument because actions do not access to workflow secrets: + # Unrecognized named-value: 'secrets'. https://github.com/orgs/community/discussions/27054 + # Pass argument {{ secrets.GITHUB_TOKEN }} from workflow + secret_token: + description: 'Secret token to authenticate the WebRequest so it not get a rate limit error.' + required: false + default: '' + +runs: + using: composite + steps: + + - name: Install Fast DDS dependencies + uses: eProsima/eProsima-CI/multiplatform/install_fastdds_dependencies@v0 + with: + cmake_build_type: ${{ inputs.cmake_build_type }} + + # - name: Install apt packages + # if: ${{ inputs.os }} == ubuntu-20.04 or ${{ inputs.os }} == ubuntu-22.04 + # uses: ./src/Fast-DDS-monitor/.github/actions/install-apt-packages + + # - name: Install Python packages + # if: ${{ inputs.os }} == ubuntu-20.04 or ${{ inputs.os }} == ubuntu-22.04 + # uses: ./src/Fast-DDS-monitor/.github/actions/install-python-packages + + # # - name: Fetch Fast DDS Statistics Backend repositories + # # if: ${{ inputs.os }} == ubuntu-20.04 or ${{ inputs.os }} == ubuntu-22.04 + # # uses: ./src/Fast-DDS-monitor/.github/actions/fetch-fastdds-statistics-backend-repos + + # - name: Update colcon mixin + # if: ${{ inputs.os }} == ubuntu-20.04 or ${{ inputs.os }} == ubuntu-22.04 + # 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 + # if: ${{ inputs.os }} == ubuntu-20.04 or ${{ inputs.os }} == ubuntu-22.04 + # uses: jurplel/install-qt-action@v2.13.0 + # with: + # version: '5.15.2' + # dir: '${{ github.workspace }}/qt_installation/' + # modules: 'qtcharts' + + + +# name: fastdds_monitor_dependencies_windows +# description: Common first step for all jobs. Checkout repository, download dependencies and install required packages. + +# inputs: + +# os: +# description: Specify runs-on machine to download specific artifact +# required: true + +# cmake_build_type: +# description: Specify cmake_build_type option to download specific artifact +# required: true + +# dependencies_artifact_postfix: +# description: Specify artifact postfix in case it wants to use a manual one +# required: false +# default: _nightly + +# target_workspace: +# description: Specify directory to download dependencies +# required: false +# default: ${{ github.workspace }}/install + +# # This must be passed as an argument because actions do not access to workflow secrets: +# # Unrecognized named-value: 'secrets'. https://github.com/orgs/community/discussions/27054 +# # Pass argument {{ secrets.GITHUB_TOKEN }} from workflow +# secret_token: +# description: 'Secret token to authenticate the WebRequest so it not get a rate limit error.' +# required: false +# default: '' + +# runs: +# using: composite +# steps: + +# - name: Install Fast DDS dependencies +# uses: eProsima/eProsima-CI/multiplatform/install_fastdds_dependencies@v0 +# with: +# cmake_build_type: ${{ inputs.cmake_build_type }} + +# - name: Install OpenSSL# +# uses: ./Fast-DDS-monitor/.github/actions/install-openssl-windows + +# - name: Install Qt +# uses: jurplel/install-qt-action@v2.13.0 +# with: +# version: '5.15.2' +# arch: 'win64_msvc2019_64' +# dir: '${{ github.workspace }}/qt_installation/' +# modules: 'qtcharts' diff --git a/.github/workflows/clang_colcon.meta b/.github/workflows/configurations/Linux/clang_colcon.meta similarity index 100% rename from .github/workflows/clang_colcon.meta rename to .github/workflows/configurations/Linux/clang_colcon.meta diff --git a/.github/workflows/test_colcon.meta b/.github/workflows/configurations/Linux/colcon.meta similarity index 91% rename from .github/workflows/test_colcon.meta rename to .github/workflows/configurations/Linux/colcon.meta index baf1018f..a063e913 100644 --- a/.github/workflows/test_colcon.meta +++ b/.github/workflows/configurations/Linux/colcon.meta @@ -12,7 +12,6 @@ { "cmake-args": [ - "-DCMAKE_BUILD_TYPE=Debug", "-DBUILD_MOCK=ON", "-DQT_PATH=$GITHUB_WORKSPACE/qt_installation/Qt/5.15.2", "-DBUILD_DOCUMENTATION=ON", diff --git a/.github/workflows/configurations/Windows/colcon.meta b/.github/workflows/configurations/Windows/colcon.meta new file mode 100644 index 00000000..394e0560 --- /dev/null +++ b/.github/workflows/configurations/Windows/colcon.meta @@ -0,0 +1,56 @@ +{ + "names": + { + "foonathan_memory": + { + "cmake-args": + [ + "-DCMAKE_CXX_FLAGS='/WX /EHsc'", + "-Ax64", + "-T host=x64", + "-DBUILD_SHARED_LIBS=OFF", + "-DFOONATHAN_MEMORY_BUILD_TOOLS=ON", + "-DCMAKE_POSITION_INDEPENDENT_CODE=ON", + "-DFOONATHAN_MEMORY_BUILD_TESTS=OFF" + ] + }, + + "fastcdr": + { + "cmake-args": + [ + "-DCMAKE_CXX_FLAGS='/WX /EHsc'", + "-Ax64", + "-T host=x64" + ] + }, + + "fastrtps": + { + "cmake-args": + [ + "-DCMAKE_CXX_FLAGS='/WX /EHsc'", + "-Ax64", + "-T host=x64", + "-DFASTDDS_STATISTICS=ON", + "-DTHIRDPARTY=ON", + "-DSECURITY=ON", + "-DCOMPILE_EXAMPLES=OFF", + "-DEPROSIMA_BUILD_TESTS=OFF", + "-DINTERNAL_DEBUG=ON" + ] + }, + + "fastdds_monitor": + { + "cmake-args": + [ + "-DCMAKE_CXX_FLAGS='/WX /EHsc'", + "-Ax64", + "-T host=x64", + "-DBUILD_MOCK=ON", + "-DQT_PATH=$GITHUB_WORKSPACE/qt_installation/Qt/5.15.2" + ] + }, + } +} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5b7f06ef..2a62a9b6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,7 +1,15 @@ 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: @@ -9,371 +17,454 @@ on: 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/install-qt-action@v2.13.0 - 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/install-qt-action@v2.13.0 - 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 +env: + default_dependencies_artifact_postfix: '_nightly' - - 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/install-qt-action@v2.13.0 - 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() +jobs: - - 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 +##################################################################### +# 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 - 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/install-qt-action@v2.13.0 - 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 + - name: Sync repository + uses: eProsima/eProsima-CI/external/checkout@v0 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} + path: ${{ github.workspace }}/src - - name: Upload uncrustify results - uses: actions/upload-artifact@v1 + - name: Download dependencies and install requirements + uses: ${{ github.workspace }}/src/.github/actions/project_dependencies/ with: - name: uncrustify_results - path: uncrustify_results.xml + 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@v0 + # with: + # 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/install-qt-action@v2.13.0 +# 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/install-qt-action@v2.13.0 +# 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/install-qt-action@v2.13.0 +# 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/install-qt-action@v2.13.0 +# 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 +#