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 3 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
73 changes: 73 additions & 0 deletions .github/workflows/nightly-ubuntu-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@

elianalf marked this conversation as resolved.
Show resolved Hide resolved
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:
os-image: 'ubuntu-22.04'
label: 'nightly-ubuntu-ci-master'
ctest-args: "-LE xfail"
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/reusable-ubuntu-ci.yml@2.14.x
with:
os-image: 'ubuntu-22.04'
label: '-nightly-ubuntu-ci-2.14.x'
ctest-args: "-LE xfail"
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/reusable-ubuntu-ci.yml@2.13.x
with:
os-image: 'ubuntu-22.04'
label: '-nightly-ubuntu-ci-2.13.x'
ctest-args: "-LE xfail"
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/reusable-ubuntu-ci.yml@2.10.x
with:
os-image: 'ubuntu-22.04'
label: '-nightly-ubuntu-ci-2.10.x'
ctest-args: "-LE xfail"
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/reusable-ubuntu-ci.yml@2.6.x
with:
os-image: 'ubuntu-20.04'
label: '-nightly-ubuntu-ci-2.6.x'
ctest-args: "-LE xfail"
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
273 changes: 273 additions & 0 deletions .github/workflows/reusable-ubuntu-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,273 @@
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

defaults:
run:
shell: bash

jobs:
fastdds_docs_build:
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: Colcon build
continue-on-error: false
uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0
with:
colcon_meta_file: ${{ github.workspace }}/src/fastdds-docs/.github/workflows/config/build.meta
colcon_build_args: ${{ inputs.colcon-args }}
cmake_args: ${{ inputs.cmake-args }}
cmake_build_type: ${{ matrix.cmake-build-type }}
workspace: ${{ github.workspace }}

- name: Upload build artifacts
elianalf marked this conversation as resolved.
Show resolved Hide resolved
uses: eProsima/eProsima-CI/external/upload-artifact@v0
with:
name: fastdds_docs_build_${{ inputs.label }}
path: ${{ github.workspace }}

fastdds_docs_test:
needs: fastdds_docs_build
runs-on: ${{ inputs.os-version }}
if: ${{ inputs.run-tests == true }}
strategy:
fail-fast: false
matrix:
cmake-build-type:
- 'RelWithDebInfo'
steps:
- name: Download build artifacts
elianalf marked this conversation as resolved.
Show resolved Hide resolved
uses: eProsima/eProsima-CI/external/download-artifact@v0
with:
name: fastdds_docs_build_${{ inputs.label }}
path: ${{ github.workspace }}

- 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: Fetch Fast DDS Docs CI dependencies
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: ${{ github.workspace }}/src/fastdds-docs/.github/workflows/config/build.meta ${{ github.workspace }}/src/fastdds-docs/.github/workflows/config/test.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
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() }}
with:
junit_reports_dir: "${{ steps.fastdds_docs_test.outputs.ctest_results_path }}"
print_summary: 'True'
show_failed: 'True'
show_disabled: 'False'
show_skipped: 'False'
Loading
Loading