From e6773fb0b084ece054d3d72adc81935c81318b17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20Dom=C3=ADnguez=20L=C3=B3pez?= <116071334+Mario-DL@users.noreply.github.com> Date: Thu, 11 Jul 2024 10:06:46 +0200 Subject: [PATCH] Add Ubuntu weekly ci (#5038) * Refs #21267: Add weekly ubuntu CI to test 2.x branches with CDR 1.1.x Signed-off-by: Mario Dominguez * Refs #21267: Change windows reusable ci to use new merge meta files eProsima CI action Signed-off-by: Mario Dominguez * Refs #21267: move the !(skip_ci) inside the reusable workflows Signed-off-by: Mario Dominguez * Refs #21267: compile fastdds_python package only Signed-off-by: Mario Dominguez * Refs #21267: Apply Jesus suggestions Signed-off-by: Mario Dominguez --------- Signed-off-by: Mario Dominguez --- .github/workflows/nightly-ubuntu-ci.yml | 4 ++++ .github/workflows/reusable-ubuntu-ci.yml | 28 ++++++++++++++++++++++- .github/workflows/reusable-windows-ci.yml | 20 ++++------------ .github/workflows/ubuntu-ci.yml | 6 ++--- .github/workflows/weekly-ubuntu-ci.yml | 23 +++++++++++++++++++ 5 files changed, 60 insertions(+), 21 deletions(-) diff --git a/.github/workflows/nightly-ubuntu-ci.yml b/.github/workflows/nightly-ubuntu-ci.yml index 4a231cb222b..cc4c622ab93 100644 --- a/.github/workflows/nightly-ubuntu-ci.yml +++ b/.github/workflows/nightly-ubuntu-ci.yml @@ -22,6 +22,7 @@ jobs: ctest-args: "-LE xfail" fastdds-branch: 'master' security: ${{ matrix.security }} + run-build: true run-tests: true use-ccache: false @@ -41,6 +42,7 @@ jobs: ctest-args: "-LE xfail" fastdds-branch: '2.14.x' security: ${{ matrix.security }} + run-build: true run-tests: true use-ccache: false @@ -60,6 +62,7 @@ jobs: ctest-args: "-LE xfail" fastdds-branch: '2.13.x' security: ${{ matrix.security }} + run-build: true run-tests: true use-ccache: false @@ -79,6 +82,7 @@ jobs: ctest-args: "-LE xfail" fastdds-branch: '2.10.x' security: ${{ matrix.security }} + run-build: true run-tests: true use-ccache: false diff --git a/.github/workflows/reusable-ubuntu-ci.yml b/.github/workflows/reusable-ubuntu-ci.yml index 6f832291a1a..354cda6f13b 100644 --- a/.github/workflows/reusable-ubuntu-ci.yml +++ b/.github/workflows/reusable-ubuntu-ci.yml @@ -27,11 +27,21 @@ on: description: 'Branch or tag of Fast DDS repository (https://github.com/eProsima/Fast-DDS)' required: true type: string + fastcdr-branch: + description: 'Branch or tag of Fast CDR repository (https://github.com/eProsima/Fast-CDR)' + required: false + type: string + default: 'master' security: description: 'Enable security features' required: false type: boolean default: true + run-build: + description: 'Build Fast DDS (CI skipped otherwise)' + required: false + type: boolean + default: true run-tests: description: 'Run test suite of Fast DDS, Fast DDS python, and Fast DDS Discovery Server' required: false @@ -53,6 +63,7 @@ defaults: jobs: fastdds_build: runs-on: ${{ inputs.os-image }} + if: ${{ inputs.run-build == true }} strategy: fail-fast: false matrix: @@ -105,6 +116,20 @@ jobs: with: api_token: ${{ secrets.GITHUB_TOKEN }} + - name: Get Fast CDR branch + id: get_fastcdr_branch + uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 + with: + remote_repository: eProsima/Fast-CDR + fallback_branch: ${{ inputs.fastcdr-branch }} + + - name: Download Fast CDR + uses: eProsima/eProsima-CI/external/checkout@v0 + with: + repository: eProsima/Fast-CDR + path: ${{ github.workspace }}/src/fastcdr + ref: ${{ steps.get_fastcdr_branch.outputs.deduced_branch }} + - name: Fetch Fast DDS dependencies uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 with: @@ -296,10 +321,11 @@ jobs: uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_build.meta - colcon_build_args: ${{ inputs.colcon-args }} + colcon_build_args: ${{ inputs.colcon-args }} --packages-select fastdds_python cmake_args: '${{ env.security-cmake-flag }} ${{ inputs.cmake-args }}' cmake_args_default: '' cmake_build_type: ${{ matrix.cmake-build-type }} + workspace_dependencies: ${{ github.workspace }}/install workspace: ${{ github.workspace }} - name: Upload python build artifacts diff --git a/.github/workflows/reusable-windows-ci.yml b/.github/workflows/reusable-windows-ci.yml index b9a9a8a6b46..7ea7eb8b6f0 100644 --- a/.github/workflows/reusable-windows-ci.yml +++ b/.github/workflows/reusable-windows-ci.yml @@ -141,22 +141,10 @@ jobs: skip_existing: 'true' - name: Prepare build meta file - run: | - $build_meta_file = '${{ github.workspace }}\src\fastdds\.github\workflows\config\fastdds_build.meta' - $test_meta_file = '${{ github.workspace }}\src\fastdds\.github\workflows\config\fastdds_test.meta' - $build_test_meta_file = '${{ github.workspace }}\src\fastdds\.github\workflows\config\fastdds_build_test.meta' - - # Read the content of the build meta file - $build_meta_content = Get-Content -Path $build_meta_file - - # Read the content of the test meta file, starting from line 4 (skipping "name" line [1], cmake project name line [2] and "cmake-args" line [3]) - $test_meta_content = Get-Content -Path $test_meta_file | Select-Object -Skip 3 - - # Combine the content of the build meta file and the test meta file - $combined_content = $build_meta_content + $test_meta_content - - # Write the combined content to the build test meta file - $combined_content | Out-File -FilePath $build_test_meta_file -Encoding UTF8 + uses: eProsima/eProsima-CI/windows/merge_yaml_metas@v0 + with: + metas: "@('${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_build.meta', '${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_test.meta')" + path: '${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_build_test.meta' - name: Build id: build diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index 0548a9b9664..a2601850577 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -54,10 +54,7 @@ concurrency: jobs: ubuntu-ci: - if: ${{ ( - !contains(github.event.pull_request.labels.*.name, 'skip-ci') && - !contains(github.event.pull_request.labels.*.name, 'conflicts') - ) }} + 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: @@ -69,5 +66,6 @@ jobs: ctest-args: ${{ inputs.ctest-args || '-LE xfail' }} fastdds-branch: ${{ inputs.fastdds_branch || github.ref || 'master' }} security: ${{ ((inputs.security == true) && true) || github.event_name == 'pull_request' }} + run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') }} run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) }} use-ccache: ${{ ((inputs.use-ccache == true) && true) || false }} diff --git a/.github/workflows/weekly-ubuntu-ci.yml b/.github/workflows/weekly-ubuntu-ci.yml index 6e92d333767..c742836d246 100644 --- a/.github/workflows/weekly-ubuntu-ci.yml +++ b/.github/workflows/weekly-ubuntu-ci.yml @@ -7,6 +7,28 @@ on: jobs: + weekly-ubuntu-ci-2_14_x: + strategy: + fail-fast: false + matrix: + fastcdr-branch: + - '1.1.x' + - '2.x' + security: + - true + - false + uses: eProsima/Fast-DDS/.github/workflows/reusable-ubuntu-ci.yml@2.14.x + with: + os-image: 'ubuntu-22.04' + label: 'weekly-sec-${{ matrix.security }}-fastcdr-${{ matrix.fastcdr-branch }}-ubuntu-ci-2.14.x' + ctest-args: "-LE xfail" + fastdds-branch: '2.14.x' + fastcdr-branch: ${{ matrix.fastcdr-branch }} + security: ${{ matrix.security }} + run-build: true + run-tests: true + use-ccache: false + weekly-ubuntu-ci-2_6_x: strategy: fail-fast: false @@ -21,5 +43,6 @@ jobs: ctest-args: "-LE xfail" fastdds-branch: '2.6.x' security: ${{ matrix.security }} + run-build: true run-tests: true use-ccache: false