Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[21256] Migrate Fast DDS Docs CI to Github #831

Merged
merged 4 commits into from
Jul 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/workflows/config/build.meta
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
names:
fastdds-docs:
cmake-args:
- "-DBUILD_DOCUMENTATION=ON"
fastdds:
cmake-args:
- "-DBUILD_DOCUMENTATION=ON"
- "-DSECURITY=ON"
fastdds_python:
cmake-args:
- "-DBUILD_DOCUMENTATION=ON"
12 changes: 12 additions & 0 deletions .github/workflows/config/test.meta
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
names:
fastdds-docs:
cmake-args:
- "-DCOMPILE_TESTS=ON"
ctest-args: [
"--timeout", "500"
]
googletest-distribution:
cmake-args:
- "-Dgtest_force_shared_crt=ON"
- "-DBUILD_SHARED_LIBS=ON"
- "-DBUILD_GMOCK=ON"
5 changes: 5 additions & 0 deletions .github/workflows/config/test.repos
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
repositories:
googletest-distribution:
type: git
url: https://github.com/google/googletest.git
version: release-1.11.0
77 changes: 77 additions & 0 deletions .github/workflows/nightly-ubuntu-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Fast DDS Docs Ubuntu CI (nightly)

on:
workflow_dispatch:
schedule:
- cron: '0 1 * * *'

jobs:
nightly-ubuntu-ci-master:
uses: eProsima/Fast-DDS-docs/.github/workflows/reusable-ubuntu-ci.yml@master
with:
# It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket:
# https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job.
os-image: 'ubuntu-22.04'
label: 'nightly-ubuntu-ci-master'
fastdds-docs-branch: 'master'
fastdds-branch: 'master'
fastdds-python-branch: 'main'
run-build: true
run-tests: true
use-ccache: false

nightly-ubuntu-ci-2_14_x:
uses: eProsima/Fast-DDS-docs/.github/workflows/[email protected]
with:
# It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket:
# https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job.
os-image: 'ubuntu-22.04'
label: '-nightly-ubuntu-ci-2.14.x'
fastdds-docs-branch: '2.14.x'
fastdds-branch: '2.14.x'
fastdds-python-branch: '1.4.x'
run-build: true
run-tests: true
use-ccache: false

nightly-ubuntu-ci-2_13_x:
uses: eProsima/Fast-DDS-docs/.github/workflows/[email protected]
with:
# It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket:
# https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job.
os-image: 'ubuntu-22.04'
label: '-nightly-ubuntu-ci-2.13.x'
fastdds-docs-branch: '2.13.x'
fastdds-branch: '2.13.x'
fastdds-python-branch: '1.4.x'
run-build: true
run-tests: true
use-ccache: false

nightly-ubuntu-ci-2_10_x:
uses: eProsima/Fast-DDS-docs/.github/workflows/[email protected]
with:
# It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket:
# https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job.
os-image: 'ubuntu-22.04'
label: '-nightly-ubuntu-ci-2.10.x'
fastdds-docs-branch: '2.10.x'
fastdds-branch: '2.10.x'
fastdds-python-branch: '1.2.x'
run-build: true
run-tests: true
use-ccache: false

nightly-ubuntu-ci-2_6_x:
uses: eProsima/Fast-DDS-docs/.github/workflows/[email protected]
with:
# It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket:
# https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job.
os-image: 'ubuntu-20.04'
label: '-nightly-ubuntu-ci-2.6.x'
fastdds-docs-branch: '2.6.x'
fastdds-branch: '2.6.x'
fastdds-python-branch: '1.0.x'
run-build: true
run-tests: true
use-ccache: false
206 changes: 206 additions & 0 deletions .github/workflows/reusable-ubuntu-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
name: Fast DDS Docs Ubuntu CI reusable workflow

on:
workflow_call:
inputs:
os-version:
description: 'The OS image for the workflow'
required: false
default: 'ubuntu-22.04'
type: string
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-docs-branch:
description: 'Branch or tag of Fast DDS Docs repository'
required: true
type: string
fastdds-branch:
description: 'Branch or tag of Fast DDS repository'
required: true
type: string
fastdds-python-branch:
description: 'Branch or tag of Fast DDS Python repository'
required: true
type: string
run-build:
description: 'Build Fast DDS Docs (CI skipped otherwise)'
required: false
type: boolean
default: true
run-tests:
description: 'Run test suite of Fast DDS Docs'
required: false
type: boolean
default: true
use-ccache:
description: 'Use CCache to speed up the build'
required: false
type: boolean
default: false
env:
build-meta: ${{ inputs.run-tests == true && './src/fastdds-docs/.github/workflows/config/build.meta ./src/fastdds-docs/.github/workflows/config/test.meta' || './src/fastdds-docs/.github/workflows/config/build.meta' }}
defaults:
run:
shell: bash

jobs:
reusable-ubuntu-ci:
runs-on: ${{ inputs.os-version }}
if: ${{ inputs.run-build == true }}
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-docs

- name: Sync eProsima/Fast-DDS-docs repository
uses: eProsima/eProsima-CI/external/checkout@v0
with:
path: src/fastdds-docs
ref: ${{ inputs.fastdds-docs-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 apt dependencies
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0
with:
packages: libasio-dev libtinyxml2-dev libssl-dev swig doxygen imagemagick plantuml
update: false
upgrade: false

- name: Install colcon
uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0

- name: Install Python dependencies
uses: eProsima/eProsima-CI/multiplatform/install_python_packages@v0
with:
packages: vcstool xmlschema
upgrade: false

- name: Install Fast DDS Docs required python packages
uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0
with:
upgrade: false
requirements_file_name: src/fastdds-docs/docs/requirements.txt

- name: Setup CCache
uses: eProsima/eProsima-CI/external/setup-ccache-action@v0
if: ${{ inputs.use-ccache == true }}
with:
api_token: ${{ secrets.GITHUB_TOKEN }}

- name: Get Fast DDS branch
id: get_fastdds_branch
uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0
with:
remote_repository: eProsima/Fast-DDS
fallback_branch: ${{ inputs.fastdds-branch }}

- name: Obtain Fast DDS dependencies
uses: eProsima/eProsima-CI/multiplatform/get_file_from_repo@v0
with:
source_repository_branch: ${{ steps.get_fastdds_branch.outputs.deduced_branch }}
source_repository: eProsima/Fast-DDS
file_name: fastdds.repos
file_result: ${{ github.workspace }}/fastdds.repos

- name: Fetch Fast DDS dependencies
uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0
with:
vcs_repos_file: ${{ github.workspace }}/fastdds.repos
destination_workspace: src
skip_existing: 'true'

- name: Get Fast DDS Python branch
id: get_fastdds_python_branch
uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0
with:
remote_repository: eProsima/Fast-DDS-python
fallback_branch: ${{ inputs.fastdds-python-branch }}

- name: Obtain Fast DDS Python dependencies
uses: eProsima/eProsima-CI/multiplatform/get_file_from_repo@v0
with:
source_repository_branch: ${{ steps.get_fastdds_python_branch.outputs.deduced_branch }}
source_repository: eProsima/Fast-DDS-python
file_name: fastdds_python.repos
file_result: ${{ github.workspace }}/fastdds_python.repos

- name: Fetch Fast DDS Python dependencies
uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0
with:
vcs_repos_file: ${{ github.workspace }}/fastdds_python.repos
destination_workspace: src
skip_existing: 'true'

- name: Fetch Fast DDS Docs CI dependencies
if: ${{ inputs.run-tests == true }}
uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0
with:
vcs_repos_file: ${{ github.workspace }}/src/fastdds-docs/.github/workflows/config/test.repos
destination_workspace: src
skip_existing: 'true'

- name: Colcon build
continue-on-error: false
uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0
with:
colcon_meta_file: ${{ env.build-meta }}
colcon_build_args: ${{ inputs.colcon-args }}
cmake_args: ${{ inputs.cmake-args }}
cmake_build_type: ${{ matrix.cmake-build-type }}
workspace: ${{ github.workspace }}

- name: Colcon test
if: ${{ inputs.run-tests == true }}
id: fastdds_docs_test
uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0
with:
colcon_meta_file: ${{ github.workspace }}/src/fastdds-docs/.github/workflows/config/test.meta
colcon_test_args: ${{ inputs.colcon-args }}
colcon_test_args_default: --event-handlers=console_direct+
ctest_args: ${{ inputs.ctest-args }}
packages_names: fastdds-docs
workspace: ${{ github.workspace }}
workspace_dependencies: ''
test_report_artifact: ${{ format('test_report_{0}_{1}_{2}', inputs.label, github.job, join(matrix.*, '_')) }}

- name: Fast DDS Docs test summary
uses: eProsima/eProsima-CI/multiplatform/junit_summary@v0
if: ${{ !cancelled() && inputs.run-tests == true }}
with:
junit_reports_dir: "${{ steps.fastdds_docs_test.outputs.ctest_results_path }}"
print_summary: 'True'
show_failed: 'True'
show_disabled: 'False'
show_skipped: 'False'
76 changes: 76 additions & 0 deletions .github/workflows/ubuntu-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@

name: Fast DDS Docs Ubuntu CI

on:
workflow_dispatch:
inputs:
os-version:
description: 'OS version to run the workflow'
required: false
default: 'ubuntu-22.04'
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-docs-branch:
description: 'Branch or tag of Fast DDS Docs repository'
type: string
required: true
fastdds-branch:
description: 'Branch or tag of Fast DDS repository'
type: string
required: true
fastdds-python-branch:
description: 'Branch or tag of Fast DDS Python repository'
required: true
type: string
run-tests:
description: 'Run test suite of Fast DDS Docs'
required: false
type: boolean
default: true
use-ccache:
description: 'Use CCache to speed up the build'
required: false
type: boolean
default: false

pull_request:
types:
- review_requested
paths-ignore:
- '**.md'
- '**.txt'
- '!**/CMakeLists.txt'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
ubuntu-ci:
elianalf marked this conversation as resolved.
Show resolved Hide resolved
if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'conflicts') }}
uses: ./.github/workflows/reusable-ubuntu-ci.yml
with:
# It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket:
# https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job.
os-version: ${{ inputs.os-version || 'ubuntu-22.04' }}
label: 'ubuntu-ci-master-main'
colcon-args: ${{ inputs.colcon-args }}
cmake-args: ${{ inputs.cmake-args }}
ctest-args: ${{ inputs.ctest-args }}
fastdds-docs-branch: ${{ inputs.fastdds-docs-branch || github.ref }}
fastdds-branch: ${{ inputs.fastdds-branch || 'master' }}
fastdds-python-branch: ${{ inputs.fastdds-python-branch || 'main' }}
run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') }}
run-tests: ${{ (inputs.run-tests == true) || ((github.event_name == 'pull_request') && (!contains(github.event.pull_request.labels.*.name, 'no-test'))) }}
use-ccache: ${{ inputs.use-ccache || false }}
Loading
Loading