From 62f7af26f1bbb44f1004b0874798c28c33049a57 Mon Sep 17 00:00:00 2001 From: EduPonz Date: Wed, 13 Mar 2024 12:26:51 +0100 Subject: [PATCH] Refs #20542: Manual cherry-pick of PR #4549 Signed-off-by: EduPonz --- .github/workflows/config/asan_colcon.meta | 51 +++++++------------ .../config/{default_ci.meta => ci.meta} | 1 - .github/workflows/config/ci.repos | 5 ++ .github/workflows/config/coverage.repos | 17 ------- .../workflows/config/default_ci_2.10.x.repos | 13 ----- .../workflows/config/default_ci_2.12.x.repos | 13 ----- .../workflows/config/default_ci_2.6.x.repos | 13 ----- .../workflows/config/default_ci_master.repos | 13 ----- .github/workflows/config/tsan_colcon.meta | 51 +++++++------------ .github/workflows/mac-ci.yml | 2 +- .github/workflows/reusable-mac-ci.yml | 43 +++++----------- .github/workflows/reusable-ubuntu-ci.yml | 43 +++++----------- .github/workflows/reusable-windows-ci.yml | 49 +++++------------- .github/workflows/ubuntu-ci.yml | 2 +- .github/workflows/windows-ci.yml | 2 +- 15 files changed, 82 insertions(+), 236 deletions(-) rename .github/workflows/config/{default_ci.meta => ci.meta} (97%) create mode 100644 .github/workflows/config/ci.repos delete mode 100644 .github/workflows/config/coverage.repos delete mode 100644 .github/workflows/config/default_ci_2.10.x.repos delete mode 100644 .github/workflows/config/default_ci_2.12.x.repos delete mode 100644 .github/workflows/config/default_ci_2.6.x.repos delete mode 100644 .github/workflows/config/default_ci_master.repos diff --git a/.github/workflows/config/asan_colcon.meta b/.github/workflows/config/asan_colcon.meta index 9ece0c38ed5..89a6194b49a 100644 --- a/.github/workflows/config/asan_colcon.meta +++ b/.github/workflows/config/asan_colcon.meta @@ -1,32 +1,19 @@ -{ - "names": - { - "fastrtps": - { - "cmake-args": - [ - "-DCMAKE_BUILD_TYPE=Debug", - "-DEPROSIMA_BUILD_TESTS=ON", - "-DGTEST_INDIVIDUAL=ON", - "-DRTPS_API_TESTS=ON", - "-DFASTRTPS_API_TESTS=ON", - "-DFASTDDS_PIM_API_TESTS=ON", - "-DPERFORMANCE_TESTS=ON", - "-DNO_TLS=OFF", - "-DSECURITY=ON", - "-DFASTDDS_STATISTICS=ON", - "-DSANITIZER=Address", - "-DCMAKE_CXX_FLAGS='-Werror'" - ] - }, - - "discovery-server": - { - "cmake-args": - [ - "-DCMAKE_BUILD_TYPE=Debug", - "-DSANITIZER=Address", - ] - } - } -} +names: + fastrtps: + cmake-args: + - "-DCMAKE_BUILD_TYPE=Debug", + - "-DEPROSIMA_BUILD_TESTS=ON", + - "-DGTEST_INDIVIDUAL=ON", + - "-DRTPS_API_TESTS=ON", + - "-DFASTRTPS_API_TESTS=ON", + - "-DFASTDDS_PIM_API_TESTS=ON", + - "-DPERFORMANCE_TESTS=ON", + - "-DNO_TLS=OFF", + - "-DSECURITY=ON", + - "-DFASTDDS_STATISTICS=ON", + - "-DSANITIZER=Address", + - "-DCMAKE_CXX_FLAGS='-Werror'" + discovery-server: + cmake-args: + - "-DCMAKE_BUILD_TYPE=Debug", + - "-DSANITIZER=Address", diff --git a/.github/workflows/config/default_ci.meta b/.github/workflows/config/ci.meta similarity index 97% rename from .github/workflows/config/default_ci.meta rename to .github/workflows/config/ci.meta index 26a40a08ab9..657982f1d8a 100644 --- a/.github/workflows/config/default_ci.meta +++ b/.github/workflows/config/ci.meta @@ -16,7 +16,6 @@ names: - "-DNO_TLS=OFF" - "-DPERFORMANCE_TESTS=ON" - "-DPROFILING_TESTS=OFF" - - "-DSECURITY=ON" - "-DSHM_TRANSPORT_DEFAULT=ON" - "-DSTRICT_REALTIME=OFF" - "-DSYSTEM_TESTS=ON" diff --git a/.github/workflows/config/ci.repos b/.github/workflows/config/ci.repos new file mode 100644 index 00000000000..5052ee825f4 --- /dev/null +++ b/.github/workflows/config/ci.repos @@ -0,0 +1,5 @@ +repositories: + googletest-distribution: + type: git + url: https://github.com/google/googletest.git + version: release-1.11.0 diff --git a/.github/workflows/config/coverage.repos b/.github/workflows/config/coverage.repos deleted file mode 100644 index f6580b0e8f8..00000000000 --- a/.github/workflows/config/coverage.repos +++ /dev/null @@ -1,17 +0,0 @@ -repositories: - fastcdr: - type: git - url: https://github.com/eProsima/Fast-CDR.git - version: 1.1.x - foonathan_memory_vendor: - type: git - url: https://github.com/eProsima/foonathan_memory_vendor.git - version: master - googletest-distribution: - type: git - url: https://github.com/google/googletest.git - version: release-1.10.0 - discovery-server: - type: git - url: https://github.com/eProsima/Discovery-Server.git - version: master diff --git a/.github/workflows/config/default_ci_2.10.x.repos b/.github/workflows/config/default_ci_2.10.x.repos deleted file mode 100644 index e5a8ab31ec8..00000000000 --- a/.github/workflows/config/default_ci_2.10.x.repos +++ /dev/null @@ -1,13 +0,0 @@ -repositories: - fastcdr: - type: git - url: https://github.com/eProsima/Fast-CDR.git - version: 1.0.x - foonathan_memory_vendor: - type: git - url: https://github.com/eProsima/foonathan_memory_vendor.git - version: v1.3.0 - googletest-distribution: - type: git - url: https://github.com/google/googletest.git - version: release-1.11.0 diff --git a/.github/workflows/config/default_ci_2.12.x.repos b/.github/workflows/config/default_ci_2.12.x.repos deleted file mode 100644 index 5541d131c26..00000000000 --- a/.github/workflows/config/default_ci_2.12.x.repos +++ /dev/null @@ -1,13 +0,0 @@ -repositories: - fastcdr: - type: git - url: https://github.com/eProsima/Fast-CDR.git - version: 2.1.x - foonathan_memory_vendor: - type: git - url: https://github.com/eProsima/foonathan_memory_vendor.git - version: v1.3.1 - googletest-distribution: - type: git - url: https://github.com/google/googletest.git - version: release-1.11.0 diff --git a/.github/workflows/config/default_ci_2.6.x.repos b/.github/workflows/config/default_ci_2.6.x.repos deleted file mode 100644 index dafcf2fd3f7..00000000000 --- a/.github/workflows/config/default_ci_2.6.x.repos +++ /dev/null @@ -1,13 +0,0 @@ -repositories: - fastcdr: - type: git - url: https://github.com/eProsima/Fast-CDR.git - version: 1.0.x - foonathan_memory_vendor: - type: git - url: https://github.com/eProsima/foonathan_memory_vendor.git - version: v1.2.1 - googletest-distribution: - type: git - url: https://github.com/google/googletest.git - version: release-1.11.0 diff --git a/.github/workflows/config/default_ci_master.repos b/.github/workflows/config/default_ci_master.repos deleted file mode 100644 index 5d3651ca82c..00000000000 --- a/.github/workflows/config/default_ci_master.repos +++ /dev/null @@ -1,13 +0,0 @@ -repositories: - fastcdr: - type: git - url: https://github.com/eProsima/Fast-CDR.git - version: master - foonathan_memory_vendor: - type: git - url: https://github.com/eProsima/foonathan_memory_vendor.git - version: master - googletest-distribution: - type: git - url: https://github.com/google/googletest.git - version: release-1.11.0 diff --git a/.github/workflows/config/tsan_colcon.meta b/.github/workflows/config/tsan_colcon.meta index b434c33736c..823aa31fbdd 100644 --- a/.github/workflows/config/tsan_colcon.meta +++ b/.github/workflows/config/tsan_colcon.meta @@ -1,32 +1,19 @@ -{ - "names": - { - "fastcdr": - { - "cmake-args": - [ - "-DCMAKE_C_FLAGS='-fsanitize=thread -O2 -g -fno-omit-frame-pointer'", - "-DCMAKE_CXX_FLAGS='-fsanitize=thread -O2 -g -fno-omit-frame-pointer'" - ] - }, - "fastrtps": - { - "cmake-args": - [ - "-DCOMPILE_EXAMPLES=OFF", - "-DEPROSIMA_BUILD_TESTS=ON", - "-DGTEST_INDIVIDUAL=ON", - "-DRTPS_API_TESTS=ON", - "-DFASTRTPS_API_TESTS=OFF", - "-DFASTDDS_PIM_API_TESTS=ON", - "-DPERFORMANCE_TESTS=ON", - "-DNO_TLS=OFF", - "-DSECURITY=ON", - "-DFASTDDS_STATISTICS=ON", - "-DCMAKE_C_FLAGS='-fsanitize=thread -O2 -g -fno-omit-frame-pointer'", - "-DCMAKE_CXX_FLAGS='-fsanitize=thread -O2 -g -fno-omit-frame-pointer'" - ] - } - - } -} +names: + fastcdr: + cmake-args: + - "-DCMAKE_C_FLAGS='-fsanitize=thread -O2 -g -fno-omit-frame-pointer'", + - "-DCMAKE_CXX_FLAGS='-fsanitize=thread -O2 -g -fno-omit-frame-pointer'" + fastrtps: + cmake-args: + - "-DCOMPILE_EXAMPLES=OFF", + - "-DEPROSIMA_BUILD_TESTS=ON", + - "-DGTEST_INDIVIDUAL=ON", + - "-DRTPS_API_TESTS=ON", + - "-DFASTRTPS_API_TESTS=OFF", + - "-DFASTDDS_PIM_API_TESTS=ON", + - "-DPERFORMANCE_TESTS=ON", + - "-DNO_TLS=OFF", + - "-DSECURITY=ON", + - "-DFASTDDS_STATISTICS=ON", + - "-DCMAKE_C_FLAGS='-fsanitize=thread -O2 -g -fno-omit-frame-pointer'", + - "-DCMAKE_CXX_FLAGS='-fsanitize=thread -O2 -g -fno-omit-frame-pointer'" diff --git a/.github/workflows/mac-ci.yml b/.github/workflows/mac-ci.yml index a436fe03d79..45c5854a295 100644 --- a/.github/workflows/mac-ci.yml +++ b/.github/workflows/mac-ci.yml @@ -44,6 +44,6 @@ jobs: with: label: ${{ inputs.label || 'mac-ci' }} colcon-args: ${{ inputs.colcon-args }} - cmake-args: ${{ inputs.cmake-args }} + cmake-args: '-DSECURITY=ON ${{ inputs.cmake-args }}' ctest-args: ${{ inputs.ctest-args }} fastdds-branch: ${{ inputs.fastdds_branch || github.ref || '2.12.x' }} diff --git a/.github/workflows/reusable-mac-ci.yml b/.github/workflows/reusable-mac-ci.yml index 100f49641d0..bc555cf983c 100644 --- a/.github/workflows/reusable-mac-ci.yml +++ b/.github/workflows/reusable-mac-ci.yml @@ -82,38 +82,19 @@ jobs: # TODO(eduponz): Set up libp11 and SoftHSM. NOTE: using SoftHSM requires adding the runner to a group, # which entails logout/login or rebooting the machine. This is not feasible in a CI environment. - - name: Prepare colcon workspace - id: colcon_ws_setup - run: | - # Nightly job - if [[ "${{ inputs.label }}" == *"nightly"* ]] - then - DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/nightly_${{ inputs.fastdds-branch }}.repos" - if [ ! -f ${DEPENDS_REPOS_PATH} ] - then - DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/nightly_2.12.x.repos" - fi - META_PATH="./src/fastrtps/.github/workflows/config/nightly.meta" - - # Either PR or manual - else - DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/default_ci_${{ inputs.fastdds-branch }}.repos" - if [ ! -f ${DEPENDS_REPOS_PATH} ] - then - DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/default_ci_2.12.x.repos" - fi - META_PATH="./src/fastrtps/.github/workflows/config/default_ci.meta" - fi - - echo "Selected repos files: ${DEPENDS_REPOS_PATH}" - cat ${DEPENDS_REPOS_PATH} - - echo "Selected metas files: ${META_PATH}" - cp ${META_PATH} ci.meta - cat ci.meta + - name: Fetch Fast DDS dependencies + uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}/src/fastrtps/fastrtps.repos + destination_workspace: src + skip_existing: 'true' - # Create source dir and download the sources - vcs import src --input ${DEPENDS_REPOS_PATH} --skip-existing + - name: Fetch Fast DDS CI dependencies + uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/ci.repos + destination_workspace: src + skip_existing: 'true' # TODO(eduponz): There is a warning in clang >= 16 regarding enum-constexpr-conversion: # - Issue: https://github.com/boostorg/mpl/issues/69. diff --git a/.github/workflows/reusable-ubuntu-ci.yml b/.github/workflows/reusable-ubuntu-ci.yml index 7ea382d4972..7e03819d2fd 100644 --- a/.github/workflows/reusable-ubuntu-ci.yml +++ b/.github/workflows/reusable-ubuntu-ci.yml @@ -76,38 +76,19 @@ jobs: # TODO(eduponz): Set up libp11 and SoftHSM. NOTE: using SoftHSM requires adding the runner to a group, # which entails logout/login or rebooting the machine. This is not feasible in a CI environment. - - name: Prepare colcon workspace - id: colcon_ws_setup - run: | - # Nightly job - if [[ "${{ inputs.label }}" == *"nightly"* ]] - then - DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/nightly_${{ inputs.fastdds-branch }}.repos" - if [ ! -f ${DEPENDS_REPOS_PATH} ] - then - DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/nightly_master.repos" - fi - META_PATH="./src/fastrtps/.github/workflows/config/nightly.meta" - - # Either PR or manual - else - DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/default_ci_${{ inputs.fastdds-branch }}.repos" - if [ ! -f ${DEPENDS_REPOS_PATH} ] - then - DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/default_ci_master.repos" - fi - META_PATH="./src/fastrtps/.github/workflows/config/default_ci.meta" - fi - - echo "Selected repos files: ${DEPENDS_REPOS_PATH}" - cat ${DEPENDS_REPOS_PATH} - - echo "Selected metas files: ${META_PATH}" - cp ${META_PATH} ci.meta - cat ci.meta + - name: Fetch Fast DDS dependencies + uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}/src/fastrtps/fastrtps.repos + destination_workspace: src + skip_existing: 'true' - # Create source dir and download the sources - vcs import src --input ${DEPENDS_REPOS_PATH} --skip-existing + - name: Fetch Fast DDS CI dependencies + uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/ci.repos + destination_workspace: src + skip_existing: 'true' - name: Colcon build continue-on-error: false diff --git a/.github/workflows/reusable-windows-ci.yml b/.github/workflows/reusable-windows-ci.yml index 63bd6b8a706..2536d9ca291 100644 --- a/.github/workflows/reusable-windows-ci.yml +++ b/.github/workflows/reusable-windows-ci.yml @@ -115,44 +115,19 @@ jobs: # Show the result gc $hostfile - - name: Prepare colcon workspace - run: | - # Get some convenient tools - Install-Module -Name ConvertBase64Strings -Force -AllowClobber - Import-Module -name ConvertBase64Strings -Prefix CI - Install-Module powershell-yaml -Force - - # Nightly job - if ("${{ inputs.label }}".Contains("nightly")) - { - $depends_repos_path = ".\src\fastrtps\.github\workflows\config\nightly_${{ inputs.fastdds_branch }}.repos" - if (!(Test-Path -Path $depends_repos_path)) - { - $depends_repos_path = ".\src\fastrtps\.github\workflows\config\nightly_2.12.x.repos" - } - $meta_path = ".\src\fastrtps\.github\workflows\config\nightly.meta" - } - # Either PR or manual - else - { - $depends_repos_path = ".\src\fastrtps\.github\workflows\config\default_ci_${{ inputs.fastdds_branch }}.repos" - if (!(Test-Path -Path $depends_repos_path)) - { - $depends_repos_path = ".\src\fastrtps\.github\workflows\config\default_ci_2.12.x.repos" - } - $meta_path = ".\src\fastrtps\.github\workflows\config\default_ci.meta" - } - Write-Output "Selected repos files: $depends_repos_path" - Write-Output "Selected metas files: $meta_path" - - # Generate the meta file - "::group::deployed colcon.meta file" - $meta = Get-Content $meta_path | ConvertFrom-Yaml - $meta | ConvertTo-Json -Depth 3 | Tee-Object -FilePath ci.meta -Encoding OEM - "::endgroup::" + - name: Fetch Fast DDS dependencies + uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}\src\fastrtps\fastrtps.repos + destination_workspace: src + skip_existing: 'true' - # create source dir and download the sources - vcs import src --input $depends_repos_path --skip-existing + - name: Fetch Fast DDS CI dependencies + uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}\src\fastrtps\.github\workflows\config\ci.repos + destination_workspace: src + skip_existing: 'true' - name: Build id: build diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index 1ec8d2d434e..7749c0153b8 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -42,6 +42,6 @@ jobs: os-image: ${{ matrix.os-image }} label: ${{ inputs.label || 'ubuntu-ci' }} colcon-args: ${{ inputs.colcon-args }} - cmake-args: ${{ inputs.cmake-args || '-DSECURITY=ON' }} + cmake-args: '-DSECURITY=ON ${{ inputs.cmake-args }}' ctest-args: ${{ inputs.ctest-args || '-LE xfail' }} fastdds-branch: ${{ inputs.fastdds_branch || github.ref || '2.12.x' }} diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index e6f8a715078..6c6124b481b 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -44,6 +44,6 @@ jobs: with: label: ${{ inputs.label || 'windows-ci' }} colcon-args: ${{ inputs.colcon-args }} - cmake-args: ${{ inputs.cmake-args }} + cmake-args: '-DSECURITY=ON ${{ inputs.cmake-args }}' ctest-args: ${{ inputs.ctest-args }} fastdds_branch: ${{ inputs.fastdds_branch || github.ref || '2.12.x' }}