test #2943
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
# Main CI | |
# This is executed: | |
# - every PullRequest (new or update) | |
# - every merge in main | |
# - every night (05:00) | |
# | |
# These jobs that require to install eprosima libraries uses the artifact generated for eprosima-CI nightly | |
# so they do not have to compile the whole project. This saves huge amount of time. | |
# | |
# JOBS: | |
# | |
# - multiplatform-tests | |
# - [ ubuntu-22.04 | ubuntu-20.04 | windows-2019 | windows-2022 ] | |
# - [ Debug | Release ] | |
# - execute tests in different versions of ubuntu with different build types | |
# | |
# - asan | |
# - ubuntu-22.04 | |
# - execute tests with ASAN flag | |
# | |
# - tsan | |
# - ubuntu-22.04 | |
# - execute tests with TSAN flag | |
# | |
# - clang | |
# - ubuntu-22.04 | |
# - execute clang-tidy check | |
# | |
# - coverage | |
# - ubuntu-22.04 | |
# - execute test with coverage flag and upload results | |
# | |
# - flaky | |
# - ubuntu-22.04 | |
# - execute flaky tests | |
# | |
# - docs | |
# - ubuntu-22.04 | |
# - execute docs compile and tests | |
# | |
# - uncrustify | |
# - ubuntu-22.04 | |
# - test uncrustify | |
# | |
# - python-linter | |
# - ubuntu-22.04 | |
# - test python linter | |
# | |
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 5 * * *' | |
env: | |
code_packages_names: 'ddsrouter_core ddsrouter_yaml ddsrouter_tool' | |
docs_packages_names: 'ddsrouter_docs' | |
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 | |
uses: eProsima/eProsima-CI/multiplatform/colcon_build_test@v0 | |
with: | |
packages_names: ${{ env.code_packages_names }} | |
cmake_args: -DBUILD_TESTS=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 | |
##################################################################### | |
# 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 | |
uses: eProsima/eProsima-CI/multiplatform/asan_build_test@v0 | |
with: | |
packages_names: ${{ env.code_packages_names }} | |
workspace_dependencies: ${{ github.workspace }}/install | |
##################################################################### | |
# TSAN | |
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 | |
uses: eProsima/eProsima-CI/multiplatform/tsan_build_test@v0 | |
with: | |
packages_names: ${{ env.code_packages_names }} | |
workspace_dependencies: ${{ github.workspace }}/install | |
##################################################################### | |
# 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 | |
uses: eProsima/eProsima-CI/multiplatform/colcon_build_test_flaky@v0 | |
with: | |
packages_names: ${{ env.code_packages_names }} | |
workspace_dependencies: ${{ github.workspace }}/install | |
##################################################################### | |
# DOCUMENTATION TEST | |
docs: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Build and test documentation | |
uses: eProsima/eProsima-CI/ubuntu/sphinx_docs@v0 | |
with: | |
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@v0 | |
##################################################################### | |
# PYTHON LINTER | |
python-linter: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Python Linter | |
uses: eProsima/eProsima-CI/ubuntu/python_linter@v0 |