-
Notifications
You must be signed in to change notification settings - Fork 775
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* Refs #20542: Refactor nightly workflow to be wd (workflow dispatch) only Signed-off-by: JesusPoderoso <[email protected]> Signed-off-by: EduPonz <[email protected]> * Refs #20542: Apply concurrency group suggestion Signed-off-by: JesusPoderoso <[email protected]> Signed-off-by: EduPonz <[email protected]> * Refs #20542: Set ubuntu:20.04 as OS Signed-off-by: JesusPoderoso <[email protected]> Signed-off-by: EduPonz <[email protected]> * Refs #20542: Use CMake 3.16.3 Signed-off-by: EduPonz <[email protected]> --------- Signed-off-by: JesusPoderoso <[email protected]> Signed-off-by: EduPonz <[email protected]> Co-authored-by: JesusPoderoso <[email protected]> Co-authored-by: EduPonz <[email protected]>
- Loading branch information
1 parent
8a6dae4
commit 9abff70
Showing
2 changed files
with
191 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
name: Fast-DDS Ubuntu CI reusable workflow | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
os-image: | ||
description: 'The OS image for the workflow' | ||
required: true | ||
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-branch: | ||
description: 'Branch or tag of Fast DDS repository (https://github.com/eProsima/Fast-DDS)' | ||
required: true | ||
type: string | ||
|
||
defaults: | ||
run: | ||
shell: bash | ||
|
||
jobs: | ||
reusable-ubuntu-ci: | ||
runs-on: ${{ inputs.os-image }} | ||
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-ci') }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
cmake-build-type: | ||
- 'RelWithDebInfo' | ||
steps: | ||
- name: Sync eProsima/Fast-DDS repository | ||
uses: eProsima/eProsima-CI/external/checkout@v0 | ||
with: | ||
path: src/fastrtps | ||
ref: ${{ inputs.fastdds-branch }} | ||
|
||
- name: Get minimum supported version of CMake | ||
uses: lukka/get-cmake@latest | ||
with: | ||
cmakeVersion: '3.16.3' | ||
|
||
- name: Install apt dependencies | ||
uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 | ||
with: | ||
packages: libasio-dev libtinyxml2-dev libssl-dev | ||
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: Setup CCache | ||
uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 | ||
|
||
# TODO(eduponz): Update known hosts file for DNS resolver testing. NOTE: The runner cannot modify /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: Prepare colcon workspace | ||
id: colcon_ws_setup | ||
run: | | ||
# Nightly job | ||
if [[ "${{ inputs.label }}" == *"nightly"* ]] | ||
then | ||
DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/nightly_${{ inputs.fastdds-branch }}.repos" | ||
if [ ! -f ${DEPENDS_REPOS_PATH} ] | ||
then | ||
DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/nightly_master.repos" | ||
fi | ||
META_PATH="./src/fastrtps/.github/workflows/config/nightly.meta" | ||
# Either PR or manual | ||
else | ||
DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/default_ci_${{ inputs.fastdds-branch }}.repos" | ||
if [ ! -f ${DEPENDS_REPOS_PATH} ] | ||
then | ||
DEPENDS_REPOS_PATH="./src/fastrtps/.github/workflows/config/default_ci_master.repos" | ||
fi | ||
META_PATH="./src/fastrtps/.github/workflows/config/default_ci.meta" | ||
fi | ||
echo "Selected repos files: ${DEPENDS_REPOS_PATH}" | ||
cat ${DEPENDS_REPOS_PATH} | ||
echo "Selected metas files: ${META_PATH}" | ||
cp ${META_PATH} ci.meta | ||
cat ci.meta | ||
# Create source dir and download the sources | ||
vcs import src --input ${DEPENDS_REPOS_PATH} --skip-existing | ||
- name: Colcon build | ||
continue-on-error: false | ||
uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0 | ||
with: | ||
colcon_meta_file: ${{ github.workspace }}/ci.meta | ||
colcon_build_args: ${{ inputs.colcon-args }} | ||
cmake_args: ${{ inputs.cmake-args }} | ||
cmake_args_default: -DCMAKE_CXX_FLAGS="-Werror -Wall" | ||
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_test_args: ${{ inputs.colcon-args }} | ||
colcon_test_args_default: --event-handlers=console_direct+ | ||
ctest_args: ${{ inputs.ctest-args }} | ||
ctest_args_default: --repeat until-pass:3 --timeout 300 --label-exclude "xfail" | ||
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' |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: Fast-DDS Ubuntu CI | ||
|
||
on: | ||
workflow_dispatch: | ||
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)' | ||
type: string | ||
required: true | ||
|
||
concurrency: | ||
group: ${{ github.workflow }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
ubuntu-ci: | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os-image: | ||
- 'ubuntu-20.04' | ||
|
||
uses: ./.github/workflows/reusable-ubuntu-ci.yml | ||
with: | ||
os-image: ${{ matrix.os-image }} | ||
label: ${{ inputs.label || 'ubuntu-ci' }} | ||
colcon-args: ${{ inputs.colcon-args }} | ||
cmake-args: ${{ inputs.cmake-args || "-DSECURITY=ON" }} | ||
ctest-args: ${{ inputs.ctest-args || "-LE xfail" }} | ||
fastdds-branch: ${{ inputs.fastdds_branch || github.ref || '2.6.x' }} |