Skip to content

Refactor CI to use eProsima-CI #2390

Refactor CI to use eProsima-CI

Refactor CI to use eProsima-CI #2390

Workflow file for this run

name: fastdds-statistics-backend-tests
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 5 * * *'
env:
code_packages_names: 'fastdds_statistics_backend'
docs_packages_names: 'fastdds_statistics_backend'
default_dependencies_artifact_postfix: '_nightly'
jobs:
#####################################################################
# TEST
multiplatform-tests:
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 and run tests
id: compile_and_test
uses: eProsima/eProsima-CI/multiplatform/colcon_build_test@v0
with:
packages_names: ${{ env.code_packages_names }}
cmake_args: -DBUILD_TESTS=ON -DCOMPILE_EXAMPLES=ON -DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }}
workspace_dependencies: ${{ github.workspace }}/install
ctest_args: --label-exclude "xfail"
colcon_meta_file: ${{ github.workspace }}/src/.github/workflows/configurations/${{ runner.os }}/colcon.meta
- name: Test Report
uses: eProsima/eProsima-CI/external/test-reporter@v0
if: success() || failure()
with:
name: "Report: ${{ matrix.os }} | ${{ matrix.cmake_build_type }} "
path: "${{ steps.compile_and_test.outputs.ctest_results_path }}*.xml"
working-directory: 'src'
path-replace-backslashes: 'true'
list-tests: 'failed'
#####################################################################
# ASAN
asan:
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
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
id: compile_and_test
uses: eProsima/eProsima-CI/multiplatform/asan_build_test@v0
with:
packages_names: ${{ env.code_packages_names }}
workspace_dependencies: ${{ github.workspace }}/install
- name: Test Report
uses: eProsima/eProsima-CI/external/test-reporter@v0
if: success() || failure()
with:
name: "Report: ASAN "
path: "${{ steps.compile_and_test.outputs.ctest_results_path }}*.xml"
working-directory: 'src'
list-tests: 'failed'
#####################################################################
# TSAN
# Commented out until we have a TSAN build for Fast DDS Statistics Backend
# tsan:
# 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
# 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
# id: compile_and_test
# uses: eProsima/eProsima-CI/multiplatform/tsan_build_test@v0
# with:
# packages_names: ${{ env.code_packages_names }}
# workspace_dependencies: ${{ github.workspace }}/install
# - name: Test Report
# uses: eProsima/eProsima-CI/external/test-reporter@v0
# if: success() || failure()
# with:
# name: "Report: TSAN "
# path: "${{ steps.compile_and_test.outputs.ctest_results_path }}*.xml"
# working-directory: 'src'
# list-tests: 'failed'
#####################################################################
# 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
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
#####################################################################
# COVERAGE
coverage:
runs-on: ubuntu-22.04
environment:
name: codecov
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: 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/ubuntu/coverage_build_test_upload@v0
with:
packages_names: ${{ env.code_packages_names }}
workspace_dependencies: ${{ github.workspace }}/install
codecov_token: ${{ secrets.CODECOV_TOKEN }}
codecov_fix_file_path: ${{ github.workspace }}/src/codecov.yml
#####################################################################
# FLAKY
flaky:
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
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
id: compile_and_test
uses: eProsima/eProsima-CI/multiplatform/colcon_build_test@v0
with:
packages_names: ${{ env.code_packages_names }}
workspace_dependencies: ${{ github.workspace }}/install
ctest_args: --label-regex "xfail"
- name: Test Report
uses: eProsima/eProsima-CI/external/test-reporter@v0
if: success() || failure()
with:
name: "Report: Flaky "
path: "${{ steps.compile_and_test.outputs.ctest_results_path }}*.xml"
working-directory: 'src'
fail-on-empty: 'false'
list-tests: 'failed'
#####################################################################
# DOCUMENTATION TEST
docs:
runs-on: ubuntu-22.04
steps:
- name: Install libtinyxml in ubuntu
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@main
with:
packages: libtinyxml2-dev
- name: Install doxygen
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@main
with:
packages: doxygen
- name: Build and test documentation
uses: eProsima/eProsima-CI/ubuntu/sphinx_docs@v0
with:
checkout_path: "${{ github.workspace }}/src/fastdds_statistics_backend"
path_to_requirements: "${{ github.workspace }}/src/fastdds_statistics_backend/docs/requirements.txt"
docs_subpackage_name: ${{ env.docs_packages_names }}
secret_token: ${{ secrets.GITHUB_TOKEN }}
#####################################################################
# UNCRUSTIFY
uncrustify:
runs-on: ubuntu-22.04
steps:
- name: Uncrustify
uses: eProsima/eProsima-CI/ubuntu/uncrustify@bugfix/fix_uncrustify