-
Notifications
You must be signed in to change notification settings - Fork 783
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add nightly Ubuntu Github CI (#4109)
* Refs #17513: Add github actions Ubuntu CI Signed-off-by: EduPonz <[email protected]> * Refs #17513: Do not update /etc/hosts as we don't have permissions Signed-off-by: EduPonz <[email protected]> * Refs #17513: Correctly name job Signed-off-by: EduPonz <[email protected]> * Refs #17513: Install python packages without sudo Signed-off-by: EduPonz <[email protected]> * Refs #17513: Only run Ubuntu CI nightly, and do it in 22.04 Signed-off-by: EduPonz <[email protected]> * DROP: Add push event for testing the workflow Signed-off-by: EduPonz <[email protected]> * Revert "DROP: Add push event for testing the workflow" This reverts commit 5b27c03. --------- Signed-off-by: EduPonz <[email protected]> (cherry picked from commit b656a17)
- Loading branch information
1 parent
ff3d96c
commit 9b99223
Showing
2 changed files
with
167 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,23 @@ | ||
name: Fast-DDS Ubuntu CI (nightly) | ||
|
||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '0 1 * * *' | ||
|
||
jobs: | ||
nightly-sec-ubuntu-ci: | ||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os-image: | ||
- 'ubuntu-22.04' | ||
|
||
uses: ./.github/workflows/reusable-ubuntu-ci.yml | ||
with: | ||
os-image: ${{ matrix.os-image }} | ||
label: '${{ matrix.os-image }}-nightly-sec-ubuntu-ci' | ||
cmake-args: "-DSECURITY=ON" | ||
ctest-args: "-LE xfail" | ||
fastdds-branch: 'master' |
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.22.6' | ||
|
||
- 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' |