test #654
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 | |
# | |
# - uncrustify | |
# - ubuntu-22.04 | |
# - test uncrustify | |
# | |
# - python-linter | |
# - ubuntu-22.04 | |
# - test python linter | |
# | |
# TODO: when merge CI in eprosima-CI repository, the jparisu fork must change for eProsima in actions. | |
# | |
# TODO: Add Windows CI | |
# | |
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: 'fastddsspy_participants fastddsspy_yaml fastddsspy_tool' | |
docs_packages_names: 'fastddsspy_docs' | |
default_dependencies_artifact_postfix: '_nightly' | |
jobs: | |
##################################################################### | |
# UBUNTU 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: 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: './install' | |
ctest_args: --label-exclude "xfail" | |
colcon_meta_file: ./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: 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: './install' | |
##################################################################### | |
# TSAN | |
tsan: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Sync repository | |
uses: eProsima/eProsima-CI/external/checkout@v0 | |
with: | |
path: 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: './install' | |
##################################################################### | |
# CLANG | |
clang: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Sync repository | |
uses: eProsima/eProsima-CI/external/checkout@v0 | |
with: | |
path: 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: './install' | |
##################################################################### | |
# COVERAGE | |
coverage: | |
runs-on: ubuntu-22.04 | |
environment: | |
name: codecov | |
steps: | |
- name: Sync repository | |
uses: eProsima/eProsima-CI/external/checkout@v0 | |
with: | |
path: 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: './install' | |
codecov_token: ${{ secrets.CODECOV_TOKEN }} | |
codecov_fix_file_path: ./src/codecov.yml | |
##################################################################### | |
# FLAKY | |
flaky: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Sync repository | |
uses: eProsima/eProsima-CI/external/checkout@v0 | |
with: | |
path: 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: './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 |