Skip to content

build_fastdds

build_fastdds #161

Workflow file for this run

# This Workflow builds an artifact with Fast DDS installed.
# This is used by other workflows in this and other repositories to avoid compiling Fast DDS every time is needed.
#
# DESCRIPTION:
# This workflow takes a .repos file from "./.github/workflows/configurations/fastdds/dependencies.repos" (in this same repository) and downloads the repositories included.
# Then uses the colcon.meta files in "./.github/workflows/configurations/metas/<os>/colcon.meta" to the build projects.
# Finally it takes the install directory generated from colcon build and uploads it as an artifact.
# This is done for several OS and cmake built types:
# - ubuntu-22.04 | ubuntu-20.04 | windows-2019 | windows-2022
# - Debug | Release
#
# ARTIFACT RESULT:
# The artifact generated is called "built_fastdds_<os>_<cmake_build_type><postfix>"
# - <os> is "ubuntu-20.04", "ubuntu-22.04", "windows-2019", or "windows-2022"
# - <cmake_build_type> is "Debug", or "Release"
# - <postfix> is "_nightly" for scheduled runs every night, or is set manually by the user.
#
# SCHEDULE:
# This workflow runs every night at 00:00 using latest version of Fast DDS (master).
#
# MANUAL RUN:
# Running this workflow manually, the following arguments might be set:
#
# built_configuration_branch: set a branch to download dependencies.repos and colcon.meta files from
# this repository [Default: main]
#
# artifacts_name_postfix: set the postfix name for the uploading artifact [Default: _manual]
# Note: do not use "_nightly" in this argument, or other workflows may be affected
#
name: build_fastdds
on:
workflow_dispatch:
inputs:
built_configuration_branch:
description: Branch or tag of eProsima-CI repository to get .repos and colcon.meta that will be applied
required: false
default: main
artifacts_name_postfix:
description: Addition to artifacts name creation (do not use _nightly postfix when creating artifacts with specific arguments).
required: false
default: _manual
schedule:
# Every night at 00:00
- cron: '0 0 * * *'
env:
default_configuration_branch: main
default_artifact_postfix: _nightly
artifact_prefix: built_fastdds
jobs:
build_fastdds:
name: build_fastdds
runs-on: ${{ matrix.os }}
strategy:
matrix:
cmake_build_type:
- Release
- Debug
os:
- ubuntu-20.04
- ubuntu-22.04
- windows-2019
- windows-2022
# Not cancel workflow if any matrix job fails
fail-fast: false
steps:
- name: Sync this repository
uses: eProsima/eProsima-CI/external/checkout@main
with:
path: src/eprosima-CI
- name: Install Fast DDS dependencies
uses: eProsima/eProsima-CI/multiplatform/install_fastdds_dependencies@main
with:
cmake_build_type: ${{ matrix.cmake_build_type }}
- name: Get colcon.meta and .repos files to build fastdds
uses: eProsima/eProsima-CI/multiplatform/get_configurations_from_repo@main
with:
source_repository_branch: ${{ inputs.built_configuration_branch || env.default_configuration_branch }}
colcon_meta_file_path: .github/workflows/configurations/metas/${{ matrix.os }}/colcon.meta
repos_file_path: .github/workflows/configurations/fastdds/dependencies.repos
colcon_meta_file_result: ${{ github.workspace }}/colcon.meta
repos_file_result: ${{ github.workspace }}/dependencies.repos
- name: Build Fast DDS and generate artifact
uses: eProsima/eProsima-CI/multiplatform/generate_dependency_artifact@main
with:
vcs_repos_file: ${{ github.workspace }}/dependencies.repos
artifact_name: ${{ env.artifact_prefix }}_${{ matrix.os }}_${{ matrix.cmake_build_type }}${{ inputs.artifacts_name_postfix || env.default_artifact_postfix }}
colcon_meta_file: ${{ github.workspace }}/colcon.meta
cmake_build_type: ${{ matrix.cmake_build_type }}