test #805
Workflow file for this run
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: | |
# | |
# - windows-multiplatform-tests | |
# - [ windows-2019 | windows-2022 ] | |
# - [ Debug | Release ] | |
# - execute tests in different versions of windows with different build types | |
# | |
# - ubuntu-multiplatform-tests | |
# - [ ubuntu-22.04 | ubuntu-20.04 ] | |
# - [ 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: 'ddspipe_core ddspipe_yaml ddspipe_participants' | |
default_dependencies_artifact_postfix: '_nightly' | |
jobs: | |
##################################################################### | |
# TEST | |
windows-multiplatform-tests: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
cmake_build_type: | |
- Release | |
- Debug | |
os: | |
- windows-2019 | |
- windows-2022 | |
env: | |
workspace_dependencies: '${{ github.workspace }}/install' | |
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 }} | |
target_workspace: ${{ env.workspace_dependencies }} | |
dependencies_artifact_postfix: ${{ github.event.inputs.dependencies_artifact_postfix || env.default_dependencies_artifact_postfix }} | |
secret_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Compile with colcon | |
uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0 | |
with: | |
colcon_meta_file: ${{ github.workspace }}/src/.github/workflows/configurations/${{ runner.os }}/colcon.meta | |
colcon_build_args: '--packages-up-to ${{ env.code_packages_names }}' | |
cmake_args: ' -DBUILD_TESTS=ON -DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }}' | |
workspace: '${{ github.workspace }}' | |
workspace_dependencies: ${{ env.workspace_dependencies }} | |
cmake_build_type: ${{ matrix.cmake_build_type }} | |
- name: Run tests ddspipe_core | |
uses: ./src/.github/actions/run-test-windows | |
if: always() | |
with: | |
package_name: ddspipe_core | |
cmake_build_type: ${{ matrix.cmake_build_type }} | |
workspace_dependencies: ${{ env.workspace_dependencies }} | |
- name: Run tests ddspipe_participants | |
uses: ./src/.github/actions/run-test-windows | |
if: always() | |
with: | |
package_name: ddspipe_participants | |
cmake_build_type: ${{ matrix.cmake_build_type }} | |
workspace_dependencies: ${{ env.workspace_dependencies }} | |
- name: Run tests ddspipe_yaml | |
uses: ./src/.github/actions/run-test-windows | |
if: always() | |
with: | |
package_name: ddspipe_yaml | |
cmake_build_type: ${{ matrix.cmake_build_type }} | |
workspace_dependencies: ${{ env.workspace_dependencies }} | |
ubuntu-multiplatform-tests: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
cmake_build_type: | |
- Release | |
- Debug | |
os: | |
- ubuntu-20.04 | |
- 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: ${{ 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 | |
##################################################################### | |
# 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 |