Skip to content

Single line for ctest_args in Mac CI (#6186) #13

Single line for ctest_args in Mac CI (#6186)

Single line for ctest_args in Mac CI (#6186) #13

Workflow file for this run

name: Fast-DDS MacOS CI reusable workflow
on:
workflow_call:
inputs:
label:
description: 'ID associated to the workflow. Must univocally identify artifacts.'
required: true
type: string
colcon-args:
description: 'Extra arguments for colcon cli'
required: false
type: string
cmake-args:
description: 'Extra arguments for cmake cli'
required: false
type: string
ctest-args:
description: 'Extra arguments for ctest cli'
required: false
type: string
fastdds-branch:
description: 'Branch or tag of Fast DDS repository (https://github.com/eProsima/Fast-DDS)'
required: true
type: string
fastcdr_branch:
description: 'Branch or tag of Fast CDR repository (https://github.com/eProsima/Fast-CDR)'
required: false
type: string
default: '2.2.x'
use-ccache:
description: 'Use CCache to speed up the build'
required: false
type: boolean
default: false
run-tests:
description: 'Run test suite of Fast DDS'
required: false
type: boolean
default: true
env:
test_blocklist: 'InterfaceWhitelist|send_to_allowed_interface|v6'
defaults:
run:
shell: bash
jobs:
fastdds_build:
runs-on: macos-15-intel
strategy:
fail-fast: false
matrix:
cmake-build-type:
- 'RelWithDebInfo'
steps:
- name: Sync eProsima/Fast-DDS repository
uses: eProsima/eProsima-CI/external/checkout@v0
with:
path: src/fastrtps
submodules: true
ref: ${{ inputs.fastdds-branch }}
- name: Install Fix Python version
uses: eProsima/eProsima-CI/external/setup-python@v0
with:
python-version: '3.11'
- name: Get minimum supported version of CMake
uses: eProsima/eProsima-CI/external/get-cmake@v0
with:
cmakeVersion: '3.22.6'
- name: Install brew dependencies
uses: eProsima/eProsima-CI/macos/install_brew_packages@v0
with:
packages: llvm tinyxml2 openssl@3.0
update: false
upgrade: false
- name: Install colcon
uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0
- name: Install Python dependencies
uses: eProsima/eProsima-CI/multiplatform/install_python_packages@v0
with:
packages: vcstool xmlschema
upgrade: false
- name: Setup CCache
uses: eProsima/eProsima-CI/external/setup-ccache-action@v0
if: ${{ inputs.use-ccache == true }}
with:
api_token: ${{ secrets.GITHUB_TOKEN }}
# 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: Get Fast CDR branch
id: get_fastcdr_branch
uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0
with:
remote_repository: eProsima/Fast-CDR
fallback_branch: ${{ inputs.fastcdr_branch }}
- name: Download Fast CDR
uses: eProsima/eProsima-CI/external/checkout@v0
with:
repository: eProsima/Fast-CDR
path: ${{ github.workspace }}/src/fastcdr
ref: ${{ steps.get_fastcdr_branch.outputs.deduced_branch }}
- 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'
- 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/fastdds_test.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.
# We are disabling the warning for now, as the proposed solution does not fix the issue:
# - Not working solution: https://github.com/macports/macports-ports/pull/21839/files
- name: Colcon build
continue-on-error: false
uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0
with:
colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_test.meta
colcon_build_args: ${{ inputs.colcon-args }}
cmake_args: ${{ inputs.cmake-args }}
cmake_args_default: -DCMAKE_CXX_FLAGS="-Werror -Wall -Wno-enum-constexpr-conversion"
cmake_build_type: ${{ matrix.cmake-build-type }}
workspace: ${{ github.workspace }}
- name: Upload build artifacts
if: ${{ inputs.run-tests == true }}
uses: eProsima/eProsima-CI/external/upload-artifact@v0
with:
name: fastdds_build_${{ inputs.label }}
path: ${{ github.workspace }}
fastdds_test:
needs: fastdds_build
name: fastdds_test (${{ matrix.cmake_build_type }})
runs-on: macos-15-intel
strategy:
fail-fast: false
matrix:
cmake-build-type:
- 'RelWithDebInfo'
steps:
- name: Download build artifacts
if: ${{ inputs.run-tests == true }}
uses: eProsima/eProsima-CI/external/download-artifact@v0
with:
name: fastdds_build_${{ inputs.label }}
path: ${{ github.workspace }}
- name: Fix permissions after downloading build artifacts
if: ${{ inputs.run-tests == true }}
run: |
find ${{ github.workspace }}/build -type f -name "*" -exec chmod +x {} \;
find ${{ github.workspace }}/install -type f -name "*" -exec chmod +x {} \;
- name: Install Fix Python version
if: ${{ inputs.run-tests == true }}
uses: eProsima/eProsima-CI/external/setup-python@v0
with:
python-version: '3.11'
- name: Get minimum supported version of CMake
if: ${{ inputs.run-tests == true }}
uses: eProsima/eProsima-CI/external/get-cmake@v0
with:
cmakeVersion: '3.22.6'
- name: Install brew dependencies
if: ${{ inputs.run-tests == true }}
uses: eProsima/eProsima-CI/macos/install_brew_packages@v0
with:
packages: llvm tinyxml2 openssl@3.0
update: false
upgrade: false
- name: Install colcon
if: ${{ inputs.run-tests == true }}
uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0
- name: Install Python dependencies
if: ${{ inputs.run-tests == true }}
uses: eProsima/eProsima-CI/multiplatform/install_python_packages@v0
with:
packages: vcstool xmlschema psutil
upgrade: false
- name: Set up hosts file for DNS testing
if: ${{ inputs.run-tests == true }}
run: |
sudo echo "" | sudo tee -a /etc/hosts
sudo echo "127.0.0.1 localhost.test" | sudo tee -a /etc/hosts
sudo echo "::1 localhost.test" | sudo tee -a /etc/hosts
sudo echo "154.56.134.194 www.eprosima.com.test" | sudo tee -a /etc/hosts
sudo echo "216.58.215.164 www.acme.com.test" | sudo tee -a /etc/hosts
sudo echo "2a00:1450:400e:803::2004 www.acme.com.test" | sudo tee -a /etc/hosts
sudo echo "140.82.121.4 www.foo.com.test" | sudo tee -a /etc/hosts
sudo echo "140.82.121.3 www.foo.com.test" | sudo tee -a /etc/hosts
sudo echo "ff1e::ffff:efff:1 acme.org.test" | sudo tee -a /etc/hosts
- name: Colcon test
if: ${{ inputs.run-tests == true }}
id: test
uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0
with:
colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_test.meta
colcon_test_args: ${{ inputs.colcon-args }}
colcon_test_args_default: --event-handlers=console_direct+
<<<<<<< HEAD

Check failure on line 225 in .github/workflows/reusable-mac-ci.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/reusable-mac-ci.yml

Invalid workflow file

You have an error in your yaml syntax on line 225
ctest_args: >
${{ inputs.ctest-args }}
${{ format('-E "{0}"', env.test_blocklist) }}
packages_names: fastrtps
=======
ctest_args: ${{ inputs.ctest-args }} ${{ format('-E "{0}"', env.test_blocklist) }}
packages_names: fastdds
>>>>>>> 5820fca8 (Single line for ctest_args in Mac CI (#6186))
workspace: ${{ github.workspace }}
test_report_artifact: ${{ format('test_report_{0}_{1}_{2}', inputs.label, github.job, join(matrix.*, '_')) }}
- name: Test summary
uses: eProsima/eProsima-CI/multiplatform/junit_summary@v0
if: ${{ !cancelled() && inputs.run-tests == true }}
with:
junit_reports_dir: "${{ steps.test.outputs.ctest_results_path }}"
print_summary: 'True'
show_failed: 'True'
show_disabled: 'False'
show_skipped: 'False'