Skip to content

Commit

Permalink
Migrate Fast DDS Docs CI to Github (#831)
Browse files Browse the repository at this point in the history
* Refs #21256: Add GitHub Ubuntu CI

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #21256: Add Discovery server to the list of related products

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #21256: Add RELEASE_SUPPORT.md file

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #21256: Apply rev suggestions

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>
(cherry picked from commit 2266b1a)

# Conflicts:
#	docs/notes/versions.rst
  • Loading branch information
JesusPoderoso authored and mergify[bot] committed Jul 1, 2024
1 parent efe2b5f commit 34b5759
Show file tree
Hide file tree
Showing 8 changed files with 407 additions and 0 deletions.
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:
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

0 comments on commit 34b5759

Please sign in to comment.