diff --git a/.github/workflows/fastcdr-test.yml b/.github/workflows/fastcdr-test.yml index b601ae98..f8b35977 100644 --- a/.github/workflows/fastcdr-test.yml +++ b/.github/workflows/fastcdr-test.yml @@ -13,6 +13,7 @@ on: branches: - master - 1.0.x + - 1.1.x workflow_dispatch: inputs: @@ -31,6 +32,7 @@ on: branches: - master - 1.0.x + - 1.1.x paths-ignore: - '**.md' - '**.txt' @@ -40,36 +42,38 @@ concurrency: cancel-in-progress: true jobs: - -############################# -###### UBUNTU BUILD ####### -############################# - ubuntu-build-and-test: + build-and-test: name: Colcon build and test if: ${{ !(contains(github.event.pull_request.labels.*.name, 'no-test') || contains(github.event.pull_request.labels.*.name, 'skip-ci')) }} - runs-on: ${{ matrix.ubuntu-version }} + runs-on: ${{ matrix.runner-image }} strategy: fail-fast: false matrix: - ubuntu-version: + runner-image: - 'ubuntu-20.04' - 'ubuntu-22.04' + - 'windows-2019' steps: - name: Sync eProsima/Fast-CDR repository - uses: actions/checkout@v3 + uses: eProsima/eProsima-CI/external/checkout@v0 with: path: src/Fast-CDR + - name: Get minimum supported version of CMake + uses: eProsima/eProsima-CI/external/get-cmake@v0 + with: + cmakeVersion: '3.16.3' + - name: Install Colcon dependencies - uses: eProsima/eProsima-CI/ubuntu/install_colcon@main + uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0 # Temporal step as this platform will be discontinued soon - name: Install Gtest Backwards Compatibility - if: ${{ matrix.ubuntu-version == 'ubuntu-20.04' }} + if: ${{ matrix.runner-image == 'ubuntu-20.04' }} run: | git clone --branch release-1.12.1 https://github.com/google/googletest.git && \ colcon build \ @@ -77,28 +81,51 @@ jobs: --packages-select googletest-distribution - name: Install Gtest - if: ${{ matrix.ubuntu-version == 'ubuntu-22.04' }} - uses: eProsima/eProsima-CI/ubuntu/install_gtest@feature/install_gtest - - - name: Build - run: | - colcon build \ - --event-handlers=console_direct+ \ - --packages-select fastcdr \ - --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DEPROSIMA_BUILD_TESTS=ON \ - ${{ inputs.cmake_args }} + if: ${{ matrix.runner-image != 'ubuntu-20.04' }} + uses: eProsima/eProsima-CI/multiplatform/install_gtest@v0 - - name: Run Tests - run: | - colcon test \ - --event-handlers=console_direct+ \ - --packages-select fastcdr \ - --return-code-on-test-failure \ - --ctest-args ${{ inputs.ctest_args }} + - name: Colcon build + uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0 + with: + colcon_build_args_default: --event-handlers=console_direct+ + cmake_args: ${{ inputs.cmake_args }} + cmake_args_default: -DEPROSIMA_BUILD_TESTS=ON + cmake_build_type: RelWithDebInfo + workspace: ${{ github.workspace }} + + - name: Colcon test + id: test + uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0 + with: + colcon_test_args_default: --event-handlers=console_direct+ --return-code-on-test-failure + ctest_args: ${{ inputs.ctest_args }} + ctest_args_default: --repeat until-pass:3 --timeout 300 + packages_names: fastcdr + workspace: ${{ github.workspace }} + + - 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' + + - name: Test Report + uses: eProsima/eProsima-CI/external/test-reporter@v0 + if: ${{ !cancelled() && !contains(github.event.pull_request.labels.*.name, 'no-test') }} + with: + name: "Report: ${{ matrix.runner-image }}" + path: "${{ steps.test.outputs.ctest_results_path }}*.xml" + working-directory: 'src/Fast-CDR' + path-replace-backslashes: 'true' + list-tests: 'failed' - name: Archive Test Results if: always() uses: actions/upload-artifact@v1 with: - name: test-results-${{ matrix.ubuntu-version }} + name: test-results-${{ matrix.runner-image }} path: log/latest_test/fastcdr