CI - Avoid CCache in workflows and nightlies (#4971) #5
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
name: Fast-DDS MacOS CI reusable workflow | ||
on: | ||
workflow_call: | ||
inputs: | ||
label: | ||
description: 'ID associated to the workflow' | ||
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 | ||
use-ccache: | ||
description: 'Use CCache to speed up the build' | ||
required: false | ||
type: boolean | ||
default: false | ||
defaults: | ||
run: | ||
shell: bash | ||
jobs: | ||
reusable-mac-ci: | ||
# As explained in https://github.com/actions/runner-images/tree/main?tab=readme-ov-file#available-images, | ||
# *-latest images are not always the latest available versions. The minimum version of the macOS image | ||
# with clang 15 is macos-13 (see | ||
# https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md#language-and-runtime), | ||
# so we'll use that one for now, as clang 15 is the supported compiler for Fast DDS in macOS. | ||
# (see https://github.com/eProsima/Fast-DDS/blob/master/PLATFORM_SUPPORT.md#compilers) | ||
runs-on: macos-13 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
cmake-build-type: | ||
- 'RelWithDebInfo' | ||
steps: | ||
- name: Add ci-pending label if PR | ||
if: ${{ github.event_name == 'pull_request' }} | ||
uses: eProsima/eProsima-CI/external/add_labels@v0 | ||
with: | ||
labels: ci-pending | ||
number: ${{ github.event.number }} | ||
repo: eProsima/Fast-DDS | ||
- name: Sync eProsima/Fast-DDS repository | ||
uses: eProsima/eProsima-CI/external/checkout@v0 | ||
with: | ||
path: src/fastrtps | ||
ref: ${{ inputs.fastdds-branch }} | ||
- 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.16.3' | ||
- name: Install brew dependencies | ||
uses: eProsima/eProsima-CI/macos/install_brew_packages@v0 | ||
with: | ||
packages: llvm asio tinyxml2 openssl@1.1 | ||
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 | ||
<<<<<<< HEAD | ||
======= | ||
if: ${{ inputs.use-ccache == true }} | ||
with: | ||
api_token: ${{ secrets.GITHUB_TOKEN }} | ||
>>>>>>> 7f6f42357 (CI - Avoid CCache in workflows and nightlies (#4971)) | ||
- name: Set up hosts file for DNS testing | ||
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 | ||
# 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: 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: Colcon test | ||
id: test | ||
if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-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+ | ||
ctest_args: ${{ inputs.ctest-args }} | ||
packages_names: fastrtps | ||
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() && !contains(github.event.pull_request.labels.*.name, 'no-test') }} | ||
with: | ||
junit_reports_dir: "${{ steps.test.outputs.ctest_results_path }}" | ||
print_summary: 'True' | ||
show_failed: 'True' | ||
show_disabled: 'False' | ||
show_skipped: 'False' |