From 5e8d0e0415546c848c198fc219b55cd33be0e98e Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Tue, 25 Jun 2024 11:54:43 +0200 Subject: [PATCH 01/21] Refs #21228: Refactor Ubuntu CI Signed-off-by: JesusPoderoso --- .../fetch-fastdds_python-repos/action.yml | 23 -- .../{test.meta => config/build.meta} | 3 - .github/workflows/config/test.meta | 15 ++ .github/workflows/config/test.repos | 5 + .github/workflows/nightly-ubuntu-ci.yml | 88 +++++++ .github/workflows/reusable-ubuntu-ci.yml | 216 ++++++++++++++++++ .github/workflows/ubuntu-ci.yml | 63 +++++ 7 files changed, 387 insertions(+), 26 deletions(-) delete mode 100644 .github/actions/fetch-fastdds_python-repos/action.yml rename .github/workflows/{test.meta => config/build.meta} (60%) create mode 100644 .github/workflows/config/test.meta create mode 100644 .github/workflows/config/test.repos create mode 100644 .github/workflows/nightly-ubuntu-ci.yml create mode 100644 .github/workflows/reusable-ubuntu-ci.yml create mode 100644 .github/workflows/ubuntu-ci.yml diff --git a/.github/actions/fetch-fastdds_python-repos/action.yml b/.github/actions/fetch-fastdds_python-repos/action.yml deleted file mode 100644 index 145def23..00000000 --- a/.github/actions/fetch-fastdds_python-repos/action.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: 'fetch-fastdds_python-repos' -description: 'Fetch Fast DDS Python dependencies' -inputs: - foonathan-memory-vendor-branch: - description: 'foonathan_memory_vendor branch to be used' - required: true - fastcdr-branch: - description: 'Fast-CDR branch to be used' - required: true - fastdds-branch: - description: 'Fast-DDS branch to be used' - required: true -runs: - using: "composite" - steps: - - id: fetch-fastdds_python-repos - shell: bash - run: | - cd src - git clone https://github.com/eProsima/foonathan_memory_vendor.git --branch ${{ inputs.foonathan-memory-vendor-branch }} - git clone https://github.com/eProsima/Fast-CDR.git --branch ${{ inputs.fastcdr-branch }} - git clone https://github.com/eProsima/Fast-DDS.git --branch ${{ inputs.fastdds-branch }} - cd .. diff --git a/.github/workflows/test.meta b/.github/workflows/config/build.meta similarity index 60% rename from .github/workflows/test.meta rename to .github/workflows/config/build.meta index e9fa04dd..20de57d7 100644 --- a/.github/workflows/test.meta +++ b/.github/workflows/config/build.meta @@ -3,6 +3,3 @@ names: cmake-args: - "-DSECURITY=ON" - "-DLOG_CONSUMER_DEFAULT=STDOUT" - fastdds_python: - cmake-args: - - "-DBUILD_TESTING=ON" diff --git a/.github/workflows/config/test.meta b/.github/workflows/config/test.meta new file mode 100644 index 00000000..fc086118 --- /dev/null +++ b/.github/workflows/config/test.meta @@ -0,0 +1,15 @@ +names: + fastdds_python: + cmake-args: + - "-DBUILD_TESTING=ON" + - "-DBUILD_DOCUMENTATION=ON" + ctest-args: [ + "--repeat", "until-pass:3", + "--timeout", "300", + "--label-exclude", "xfail" + ] + googletest-distribution: + cmake-args: + - "-Dgtest_force_shared_crt=ON" + - "-DBUILD_SHARED_LIBS=ON" + - "-DBUILD_GMOCK=ON" diff --git a/.github/workflows/config/test.repos b/.github/workflows/config/test.repos new file mode 100644 index 00000000..5052ee82 --- /dev/null +++ b/.github/workflows/config/test.repos @@ -0,0 +1,5 @@ +repositories: + googletest-distribution: + type: git + url: https://github.com/google/googletest.git + version: release-1.11.0 diff --git a/.github/workflows/nightly-ubuntu-ci.yml b/.github/workflows/nightly-ubuntu-ci.yml new file mode 100644 index 00000000..0990c824 --- /dev/null +++ b/.github/workflows/nightly-ubuntu-ci.yml @@ -0,0 +1,88 @@ +name: Fast DDS Python Ubuntu CI (nightly) + +on: + workflow_dispatch: + schedule: + - cron: '0 1 * * *' + +jobs: + # python main - fastdds master + nightly-ubuntu-ci-main: + strategy: + fail-fast: false + matrix: + os-version: + - 'ubuntu-22.04' + fastdds-python-branch: + - 'main' + fastdds-branch: + - 'master' + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@main + with: + os-version: ${{ matrix.os-version }} + label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}' + fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + fastdds-branch: ${{ matrix.fastdds-branch }} + run-build: true + run-tests: true + + # python 1.4.x - fastdds 2.14.x/2.13.x + nightly-ubuntu-ci-1_4_x: + strategy: + fail-fast: false + matrix: + os-version: + - 'ubuntu-22.04' + fastdds-python-branch: + - '1.4.x' + fastdds-branch: + - '2.14.x' + - '2.13.x' + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.4.x + with: + os-version: ${{ matrix.os-version }} + label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}' + fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + fastdds-branch: ${{ matrix.fastdds-branch }} + run-build: true + run-tests: true + + # python 1.2.x - fastdds 2.10.x + nightly-ubuntu-ci-1_2_x: + strategy: + fail-fast: false + matrix: + os-version: + - 'ubuntu-22.04' + fastdds-python-branch: + - '1.2.x' + fastdds-branch: + - '2.10.x' + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.2.x + with: + os-version: ${{ matrix.os-version }} + label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}' + fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + fastdds-branch: ${{ matrix.fastdds-branch }} + run-build: true + run-tests: true + + # python 1.0.x - fastdds 2.6.x + nightly-ubuntu-ci-1_0_x: + strategy: + fail-fast: false + matrix: + os-version: + - 'ubuntu-20.04' + fastdds-python-branch: + - '1.0.x' + fastdds-branch: + - '2.6.x' + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.0.x + with: + os-version: ${{ matrix.os-version }} + label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}' + fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + fastdds-branch: ${{ matrix.fastdds-branch }} + run-build: true + run-tests: false diff --git a/.github/workflows/reusable-ubuntu-ci.yml b/.github/workflows/reusable-ubuntu-ci.yml new file mode 100644 index 00000000..1fbd1e19 --- /dev/null +++ b/.github/workflows/reusable-ubuntu-ci.yml @@ -0,0 +1,216 @@ +name: Fast DDS Python 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-python-branch: + description: 'Branch or tag of Fast DDS Python repository' + required: true + type: string + fastdds-branch: + description: 'Branch or tag of Fast DDS repository' + required: true + type: string + run-build: + description: 'Build Fast DDS Python (CI skipped otherwise)' + required: false + type: boolean + default: true + run-tests: + description: 'Run test suite of Fast DDS python' + required: false + type: boolean + default: true + +defaults: + run: + shell: bash + +jobs: + fastdds_python_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-Python + + - name: Sync eProsima/Fast-DDS-Python repository + uses: eProsima/eProsima-CI/external/checkout@v0 + with: + path: src/fastdds_python + ref: ${{ inputs.fastdds-python-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 + 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: 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: Download Fast DDS repo + uses: eProsima/eProsima-CI/external/checkout@v0 + with: + repository: eProsima/Fast-DDS + path: src/fastdds + ref: ${{ steps.get_fastdds_branch.outputs.deduced_branch }} + + - name: Fetch Fast DDS Python dependencies + uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}/src/fastdds_python/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_python/.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 + uses: eProsima/eProsima-CI/external/upload-artifact@v0 + with: + name: fastdds_python_build_${{ inputs.label }} + path: ${{ github.workspace }} + + fastdds_python_test: + needs: fastdds_python_build + runs-on: ${{ inputs.os-version }} + if: ${{ inputs.run-tests == true }} + strategy: + fail-fast: false + matrix: + cmake-build-type: + - 'RelWithDebInfo' + steps: + - name: Download python build artifacts + uses: eProsima/eProsima-CI/external/download-artifact@v0 + with: + name: fastdds_python_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 packages + uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 + with: + packages: libasio-dev libtinyxml2-dev libssl-dev swig + + - name: Install colcon + uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 + + - name: Install Python dependencies + uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 + with: + packages: vcstool xmlschema + + - name: Fetch Fast DDS Python CI dependencies + uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}/src/fastdds_python/.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_python/.github/workflows/config/build.meta ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/test.meta + colcon_build_args: ${{ inputs.colcon-args }} + cmake_args: ${{ inputs.cmake-args }} + cmake_args_default: '' + cmake_build_type: ${{ matrix.cmake-build-type }} + workspace: ${{ github.workspace }} + + - name: Colcon test + id: python_test + uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0 + with: + colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.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_python + workspace: ${{ github.workspace }} + workspace_dependencies: '' + test_report_artifact: ${{ format('test_report_{0}_{1}_{2}', inputs.label, github.job, join(matrix.*, '_')) }} + + - name: Fast DDS Python test summary + uses: eProsima/eProsima-CI/multiplatform/junit_summary@v0 + if: ${{ !cancelled() }} + with: + junit_reports_dir: "${{ steps.python_test.outputs.ctest_results_path }}" + print_summary: 'True' + show_failed: 'True' + show_disabled: 'False' + show_skipped: 'False' diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml new file mode 100644 index 00000000..bf5f63bd --- /dev/null +++ b/.github/workflows/ubuntu-ci.yml @@ -0,0 +1,63 @@ +name: Fast DDS Python Ubuntu CI + +on: + workflow_dispatch: + inputs: + os-version: + description: 'OS version to run the workflow' + required: false + default: 'ubuntu-22.04' + 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-python-branch: + description: 'Branch or tag of Fast DDS Python repository' + required: true + type: string + fastdds-branch: + description: 'Branch or tag of Fast DDS repository' + type: string + required: true + run-tests: + description: 'Run test suite of Fast DDS python' + required: false + type: boolean + default: true + + pull_request: + types: + - review_requested + paths-ignore: + - '**.md' + - '**.txt' + - '!**/CMakeLists.txt' + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + ubuntu-ci: + 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: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: ${{ inputs.os-version || 'ubuntu-22.04' }} + label: 'ubuntu-ci' + colcon-args: ${{ inputs.colcon-args }} + cmake-args: ${{ inputs.cmake-args }} + ctest-args: ${{ inputs.ctest-args }} + fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref || 'main' }} + fastdds-branch: ${{ inputs.fastdds-branch || 'master' }} + run-build: ${{ !(github.event_name == 'pull_request') && true || (!contains(github.event.pull_request.labels.*.name, 'skip-ci') && !contains(github.event.pull_request.labels.*.name, 'conflicts')) && true || false }} + run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) && true || false }} From 4e8509676c0e58fc919eb518333c55f2d3ef899c Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Tue, 25 Jun 2024 12:49:19 +0200 Subject: [PATCH 02/21] Refs #21228: Refactor Windows CI Signed-off-by: JesusPoderoso --- .github/workflows/nightly-windows-ci.yml | 103 ++++++++ .github/workflows/reusable-windows-ci.yml | 286 ++++++++++++++++++++++ .github/workflows/windows-ci.yml | 69 ++++++ 3 files changed, 458 insertions(+) create mode 100644 .github/workflows/nightly-windows-ci.yml create mode 100644 .github/workflows/reusable-windows-ci.yml create mode 100644 .github/workflows/windows-ci.yml diff --git a/.github/workflows/nightly-windows-ci.yml b/.github/workflows/nightly-windows-ci.yml new file mode 100644 index 00000000..855b9a1a --- /dev/null +++ b/.github/workflows/nightly-windows-ci.yml @@ -0,0 +1,103 @@ +name: Fast DDS Python Windows CI (nightly) + +on: + workflow_dispatch: + schedule: + - cron: '0 1 * * *' + +jobs: + # python main - fastdds master + nightly-windows-ci-main: + strategy: + fail-fast: false + matrix: + os-version: + - 'windows-2019' + vs-toolset: + - 'v142' + fastdds-python-branch: + - 'main' + fastdds-branch: + - 'master' + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@main + with: + os-version: ${{ matrix.os-version }} + vs.toolset: ${{ matrix.vs-toolset }} + label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}' + fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + fastdds-branch: ${{ matrix.fastdds-branch }} + run-build: true + run-tests: true + + # python 1.4.x - fastdds 2.14.x/2.13.x + nightly-windows-ci-1_4_x: + strategy: + fail-fast: false + matrix: + os-version: + - image: 'windows-2019' + vs-toolset: 'v142' + - image: 'windows-2017' + vs-toolset: 'v141' + fastdds-python-branch: + - '1.4.x' + fastdds-branch: + - '2.14.x' + - '2.13.x' + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.4.x + with: + os-version: ${{ matrix.os-version.image }} + vs.toolset: ${{ matrix.os-version.vs-toolset }} + label: 'nightly-${{ matrix.os-version.image }}-${{ matrix.os-version.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' + fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + fastdds-branch: ${{ matrix.fastdds-branch }} + run-build: true + run-tests: true + + # python 1.2.x - fastdds 2.10.x + nightly-windows-ci-1_2_x: + strategy: + fail-fast: false + matrix: + os-version: + - image: 'windows-2019' + vs-toolset: 'v142' + - image: 'windows-2017' + vs-toolset: 'v141' + fastdds-python-branch: + - '1.2.x' + fastdds-branch: + - '2.10.x' + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.2.x + with: + os-version: ${{ matrix.os-version.image }} + vs.toolset: ${{ matrix.os-version.vs-toolset }} + label: 'nightly-${{ matrix.os-version.image }}-${{ matrix.os-version.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}' + fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + fastdds-branch: ${{ matrix.fastdds-branch }} + run-build: true + run-tests: true + + # python 1.0.x - fastdds 2.6.x + nightly-windows-ci-1_0_x: + strategy: + fail-fast: false + matrix: + os-version: + - image: 'windows-2019' + vs-toolset: 'v142' + - image: 'windows-2017' + vs-toolset: 'v141' + fastdds-python-branch: + - '1.0.x' + fastdds-branch: + - '2.6.x' + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.0.x + with: + os-version: ${{ matrix.os-version.image }} + vs.toolset: ${{ matrix.os-version.vs-toolset }} + label: 'nightly-${{ matrix.os-version.image }}-${{ matrix.os-version.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}' + fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + fastdds-branch: ${{ matrix.fastdds-branch }} + run-build: true + run-tests: false diff --git a/.github/workflows/reusable-windows-ci.yml b/.github/workflows/reusable-windows-ci.yml new file mode 100644 index 00000000..fb462972 --- /dev/null +++ b/.github/workflows/reusable-windows-ci.yml @@ -0,0 +1,286 @@ +name: Fast DDS Python Windows CI reusable workflow + +on: + workflow_call: + inputs: + os-version: + description: 'The OS image for the workflow' + required: false + default: 'windows-2019' + type: string + vs-toolset: + description: 'The VS toolset to use for the build' + required: false + default: 'v142' + 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-python-branch: + description: 'Branch or tag of Fast DDS Python repository' + required: true + type: string + fastdds-branch: + description: 'Branch or tag of Fast DDS repository' + required: true + type: string + run-build: + description: 'Build Fast DDS Python (CI skipped otherwise)' + required: false + type: boolean + default: true + run-tests: + description: 'Run test suite of Fast DDS python' + required: false + type: boolean + default: true +env: + colcon-build-default-cmake-args: '-DTHIRDPARTY_Asio=FORCE -DTHIRDPARTY_TinyXML2=FORCE -DTHIRDPARTY_fastcdr=OFF -DTHIRDPARTY_UPDATE=ON -DEPROSIMA_EXTRA_CMAKE_CXX_FLAGS="/MP /WX"' +defaults: + run: + shell: pwsh + +jobs: + fastdds_python_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-Python + + - name: Sync eProsima/Fast-DDS-Python repository + uses: eProsima/eProsima-CI/external/checkout@v0 + with: + path: src/fastdds_python + ref: ${{ inputs.fastdds-python-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 OpenSSL + uses: eProsima/eprosima-CI/windows/install_openssl@v0 + with: + version: '3.1.1' + + - name: Update OpenSSL environment variables + run: | + # Update the environment + if (Test-Path -Path $Env:ProgramW6432\OpenSSL) + { + "OPENSSL64_ROOT=$Env:ProgramW6432\OpenSSL" | Out-File $Env:GITHUB_ENV -Append -Encoding OEM + } + elseif (Test-Path -Path $Env:ProgramW6432\OpenSSL-Win) + { + "OPENSSL64_ROOT=$Env:ProgramW6432\OpenSSL-Win" | Out-File $Env:GITHUB_ENV -Append -Encoding OEM + } + elseif (Test-Path -Path $Env:ProgramW6432\OpenSSL-Win64) + { + "OPENSSL64_ROOT=$Env:ProgramW6432\OpenSSL-Win64" | Out-File $Env:GITHUB_ENV -Append -Encoding OEM + } + else + { + Write-Error -Message "Cannot find OpenSSL installation." + exit 1 + } + + - name: Install colcon + uses: eProsima/eProsima-CI/windows/install_colcon@v0 + + - name: Install Python dependencies + uses: eProsima/eProsima-CI/windows/install_python_packages@v0 + with: + packages: vcstool xmlschema pywin32 + + - name: Install swig + shell: pwsh + run: choco install swig --allow-downgrade --version=4.0.2.04082020 + + # Although this is a ubuntu action becuase it uses bash, it is compatible with windows + - 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: Download Fast DDS repo + uses: eProsima/eProsima-CI/external/checkout@v0 + with: + repository: eProsima/Fast-DDS + path: src/fastdds + ref: ${{ steps.get_fastdds_branch.outputs.deduced_branch }} + + - name: Fetch Fast DDS Python dependencies + uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}/src/fastdds_python/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_python/.github/workflows/config/build.meta + colcon_build_args: ${{ inputs.colcon-args }} + colcon_build_args_default: --event-handlers console_direct+ + cmake_args: ${{ inputs.cmake-args }} + cmake_args_default: '-T ${{ inputs.vs-toolset }} ${{ env.colcon-build-default-cmake-args }}' + cmake_build_type: ${{ matrix.cmake-build-type }} + workspace: ${{ github.workspace }} + + - name: Upload build artifacts + uses: eProsima/eProsima-CI/external/upload-artifact@v0 + with: + name: fastdds_python_build_${{ inputs.label }} + path: ${{ github.workspace }} + + + fastdds_python_test: + needs: fastdds_python_build + runs-on: ${{ inputs.os-version }} + if: ${{ inputs.run-tests == true }} + strategy: + fail-fast: false + matrix: + cmake-build-type: + - 'RelWithDebInfo' + steps: + - name: Download python build artifacts + uses: eProsima/eProsima-CI/external/download-artifact@v0 + with: + name: fastdds_python_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 OpenSSL + uses: eProsima/eprosima-CI/windows/install_openssl@v0 + with: + version: '3.1.1' + + - name: Update OpenSSL environment variables + run: | + # Update the environment + if (Test-Path -Path $Env:ProgramW6432\OpenSSL) + { + "OPENSSL64_ROOT=$Env:ProgramW6432\OpenSSL" | Out-File $Env:GITHUB_ENV -Append -Encoding OEM + } + elseif (Test-Path -Path $Env:ProgramW6432\OpenSSL-Win) + { + "OPENSSL64_ROOT=$Env:ProgramW6432\OpenSSL-Win" | Out-File $Env:GITHUB_ENV -Append -Encoding OEM + } + elseif (Test-Path -Path $Env:ProgramW6432\OpenSSL-Win64) + { + "OPENSSL64_ROOT=$Env:ProgramW6432\OpenSSL-Win64" | Out-File $Env:GITHUB_ENV -Append -Encoding OEM + } + else + { + Write-Error -Message "Cannot find OpenSSL installation." + exit 1 + } + + - name: Install colcon + uses: eProsima/eProsima-CI/windows/install_colcon@v0 + + - name: Install Python dependencies + uses: eProsima/eProsima-CI/windows/install_python_packages@v0 + with: + packages: vcstool xmlschema pywin32 pytest + + - name: Install swig + shell: pwsh + run: choco install swig --allow-downgrade --version=4.0.2.04082020 + + + - name: Prepare build meta file + run: | + $build_meta_file = '${{ github.workspace }}\src\fastdds_python\.github\workflows\config\build.meta' + $test_meta_file = '${{ github.workspace }}\src\fastdds_python\.github\workflows\config\test.meta' + $build_test_meta_file = '${{ github.workspace }}\src\fastdds_python\.github\workflows\config\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 + + - name: Colcon build + continue-on-error: false + uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0 + with: + colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build_test.meta + colcon_build_args: ${{ inputs.colcon-args }} + colcon_build_args_default: --event-handlers console_direct+ + cmake_args: ${{ inputs.cmake-args }} + cmake_args_default: '-T ${{ inputs.vs-toolset }} ${{ env.colcon-build-default-cmake-args }}' + cmake_build_type: ${{ matrix.cmake-build-type }} + workspace: ${{ github.workspace }} + + - name: Colcon test + id: python_test + uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0 + with: + colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.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_python + workspace: ${{ github.workspace }} + workspace_dependencies: '' + 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() }} + with: + junit_reports_dir: "${{ steps.python_test.outputs.ctest_results_path }}" + print_summary: 'True' + show_failed: 'True' + show_disabled: 'False' + show_skipped: 'False' diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml new file mode 100644 index 00000000..165eb15b --- /dev/null +++ b/.github/workflows/windows-ci.yml @@ -0,0 +1,69 @@ +name: Fast DDS Python Windows CI + +on: + workflow_dispatch: + inputs: + os-version: + description: 'OS version to run the workflow' + required: false + default: 'windows-2019' + type: string + vs-toolset: + description: 'The VS toolset to use for the build' + required: false + default: 'v142' + 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-python-branch: + description: 'Branch or tag of Fast DDS Python repository' + required: true + type: string + fastdds-branch: + description: 'Branch or tag of Fast DDS repository' + type: string + required: true + run-tests: + description: 'Run test suite of Fast DDS python' + required: false + type: boolean + default: true + + pull_request: + types: + - review_requested + paths-ignore: + - '**.md' + - '**.txt' + - '!**/CMakeLists.txt' + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + windows-ci: + uses: ./.github/workflows/reusable-windows-ci.yml + with: + # It would be desirable to have a matrix of windows OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: ${{ inputs.os-version || 'windows-2019' }} + vs-toolset: ${{ inputs.vs-toolset || 'v142' }} + label: '${{ inputs.os-version }}-${{ inputs.vs-toolset }}-ci-${{ inputs.fastdds-python-branch }}-${{ inputs.fastdds-branch }}' + colcon-args: ${{ inputs.colcon-args }} + cmake-args: ${{ inputs.cmake-args }} + ctest-args: ${{ inputs.ctest-args }} + fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref || 'main' }} + fastdds-branch: ${{ inputs.fastdds-branch || 'master' }} + run-build: ${{ !(github.event_name == 'pull_request') && true || (!contains(github.event.pull_request.labels.*.name, 'skip-ci') && !contains(github.event.pull_request.labels.*.name, 'conflicts')) && true || false }} + run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) && true || false }} From a4831b92ba186698fbf48ff802c59996cb09b2e0 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Tue, 25 Jun 2024 12:50:09 +0200 Subject: [PATCH 03/21] Refs #21228: Remove previous workflow Signed-off-by: JesusPoderoso --- .github/workflows/build_and_test.yml | 232 --------------------------- 1 file changed, 232 deletions(-) delete mode 100644 .github/workflows/build_and_test.yml diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml deleted file mode 100644 index eea405a9..00000000 --- a/.github/workflows/build_and_test.yml +++ /dev/null @@ -1,232 +0,0 @@ -name: test - -on: - workflow_dispatch: - inputs: - foonathan_memory_vendor_branch: - description: 'foonathan_memory_vendor branch to be used' - required: false - default: 'master' - fastcdr_versions: - description: 'Fast CDR branches to be used' - required: false - default: '["master"]' - fastdds_branch: - description: 'Fast DDS branch to be used' - required: false - default: 'master' - pull_request: - push: - branches: - - main - schedule: - - cron: '0 0 * * *' - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - windows-build-test: - runs-on: windows-2019 - strategy: - fail-fast: false - matrix: - foonathan_memory_vendor_version: - - ${{ github.event.inputs.foonathan_memory_vendor_branch || 'master' }} - fastcdr_version: ${{ fromJson(github.event.inputs.fastcdr_versions || '["master"]') }} - fastdds_version: - - ${{ github.event.inputs.fastdds_branch || 'master' }} - - env: - CXXFLAGS: /MP - OPENSSL64_ROOT: "C:/Program Files/OpenSSL-Win64" - - steps: - - - uses: eProsima/eprosima-CI/windows/install_openssl@v0 - with: - version: '3.1.1' - - - name: Install Asio and TinyXML2 - shell: pwsh - run: | - mkdir "$pwdpath/choco_packages" - Invoke-WebRequest -Uri https://github.com/ros2/choco-packages/releases/download/2020-02-24/asio.1.12.1.nupkg -OutFile "$pwdpath/choco_packages/asio.1.12.1.nupkg" - Invoke-WebRequest -Uri https://github.com/ros2/choco-packages/releases/download/2020-02-24/tinyxml2.6.0.0.nupkg -OutFile "$pwdpath/choco_packages/tinyxml2.6.0.0.nupkg" - choco install -y -s "$pwdpath/choco_packages" asio tinyxml2 - Set-Item -Force -Path "env:PATH" -Value "C:\ProgramData\chocolatey\lib\asio;C:\ProgramData\chocolatey\lib\tinyxml2;C:\ProgramData\chocolatey\lib\tinyxml2\lib;$env:PATH" - echo "PATH=$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - - - name: Install swig - shell: pwsh - run: choco install swig --allow-downgrade --version=4.0.2.04082020 - - - name: Setup Python version - uses: eProsima/eProsima-CI/external/setup-python@v0 - with: - python-version: '3.11' - - - name: Install Python dependencies - uses: eProsima/eProsima-CI/multiplatform/install_python_packages@v0 - with: - packages: pytest pywin32 - - - name: Install colcon - uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0 - - - name: Checkout Fast DDS Python - uses: eProsima/eProsima-CI/external/checkout@v0 - with: - path: src/fastdds_python - - - name: Checkout foonathan memory vendor - uses: eProsima/eProsima-CI/external/checkout@v0 - with: - repository: eProsima/foonathan_memory_vendor - path: src/foonathan_memory_vendor - ref: ${{ matrix.foonathan_memory_vendor_version }} - - - name: Checkout Fast CDR - uses: eProsima/eProsima-CI/external/checkout@v0 - with: - repository: eProsima/Fast-CDR - path: src/fastcdr - ref: ${{ matrix.fastcdr_version }} - - - name: Checkout Fast DDS - uses: eProsima/eProsima-CI/external/checkout@v0 - with: - repository: eProsima/Fast-DDS - path: src/fastdds - ref: ${{ matrix.fastdds_version }} - - - name: Setup CMake version - uses: eProsima/eProsima-CI/external/get-cmake@v0 - with: - cmakeVersion: 3.22.6 - - - name: Setting ninja - id: ninja - if: github.event.schedule == '' - shell: pwsh - run: | - echo "cmake_generator=ninja" >> $Env:GITHUB_OUTPUT - - - name: Setup ccache - uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - with: - windows_compile_environment: msvc - api_token: ${{ secrets.GITHUB_TOKEN }} - - - name: Build workspace - uses: eProsima/eProsima-CI/windows/colcon_build@v0 - with: - colcon_meta_file: ./src/fastdds_python/.github/workflows/test.meta - colcon_build_args: --executor parallel --mixin ccache ${{ steps.ninja.outputs.cmake_generator }} - colcon_build_args_default: --event-handlers console_direct+ desktop_notification- - cmake_build_type: RelWithDebInfo - cmake_args_default: ' ' - workspace: ${{ github.workspace }} - - - name: Run tests - id: test - uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0 - with: - colcon_test_args: --return-code-on-test-failure - colcon_test_args_default: --event-handlers console_direct+ desktop_notification- - ctest_args_default: --timeout 60 - packages_names: fastdds_python - workspace: ${{ github.workspace }} - workspace_dependencies: ${{ github.workspace }} - - - name: Upload Logs - uses: actions/upload-artifact@v1 - with: - name: colcon-logs-windows - path: log/ - if: always() - - ubuntu-build-test: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - foonathan_memory_vendor_version: - - ${{ github.event.inputs.foonathan_memory_vendor_branch || 'master' }} - fastcdr_version: ${{ fromJson(github.event.inputs.fastcdr_versions || '["master"]') }} - fastdds_version: - - ${{ github.event.inputs.fastdds_branch || 'master' }} - - - steps: - - name: Checkout Fast DDS Python - uses: eProsima/eProsima-CI/external/checkout@v0 - with: - path: src/fastdds_python - - - name: Install apt dependencies - uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 - with: - packages: libasio-dev libtinyxml2-dev libpython3-dev swig - - - name: Install colcon - uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0 - - - name: Checkout foonathan memory vendor - uses: eProsima/eProsima-CI/external/checkout@v0 - with: - repository: eProsima/foonathan_memory_vendor - path: src/foonathan_memory_vendor - ref: ${{ matrix.foonathan_memory_vendor_version }} - - - name: Checkout Fast CDR - uses: eProsima/eProsima-CI/external/checkout@v0 - with: - repository: eProsima/Fast-CDR - path: src/fastcdr - ref: ${{ matrix.fastcdr_version }} - - - name: Checkout Fast DDS - uses: eProsima/eProsima-CI/external/checkout@v0 - with: - repository: eProsima/Fast-DDS - path: src/fastdds - ref: ${{ matrix.fastdds_version }} - - - name: Setup CMake version - uses: eProsima/eProsima-CI/external/get-cmake@v0 - with: - cmakeVersion: 3.22.6 - - - name: Setup ccache - uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - with: - api_token: ${{ secrets.GITHUB_TOKEN }} - - - name: Build workspace - uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0 - with: - colcon_meta_file: ./src/fastdds_python/.github/workflows/test.meta - colcon_build_args: --executor parallel --mixin ccache - colcon_build_args_default: --event-handlers console_direct+ - cmake_build_type: RelWithDebInfo - cmake_args_default: '' - workspace: ${{ github.workspace }} - - - name: Run tests - id: test - uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0 - with: - colcon_test_args: --return-code-on-test-failure - colcon_test_args_default: --event-handlers console_direct+ - ctest_args_default: --timeout 60 - packages_names: fastdds_python - workspace: ${{ github.workspace }} - - - name: Upload Logs - uses: actions/upload-artifact@v1 - with: - name: colcon-logs-ubuntu - path: log/ - if: always() From 62a83681e5cc722a4ab27a8391db5c7379294c7a Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Tue, 25 Jun 2024 13:05:37 +0200 Subject: [PATCH 04/21] Refs #21228: Add RELEASE_SUPPORT.md with Fast DDS references Signed-off-by: JesusPoderoso --- RELEASE_SUPPORT.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 RELEASE_SUPPORT.md diff --git a/RELEASE_SUPPORT.md b/RELEASE_SUPPORT.md new file mode 100644 index 00000000..2b512a84 --- /dev/null +++ b/RELEASE_SUPPORT.md @@ -0,0 +1,20 @@ +# Release support + + +Please, refer to the [main branch](https://github.com/eProsima/Fast-DDS-Python/blob/master/RELEASE_SUPPORT.md) for the latest version of this document. + +*eProsima Fast DDS Python* maintains several releases with different support cycles. +**All of them are attached to different *eProsima Fast DDS* releases.** + +## *eProsima Fast DDS* and *Fast DDS Python* version compatibility + +|Fast DDS Version|Fast DDS Python Version|Fast DDS Python Version branch|Fast DDS Python Latest Release| +|----------------|-----------------------|------------------------------|------------------------------| +|2.14|1.4|[1.4.x](https://github.com/eProsima/Fast-DDS-Python/tree/1.4.x)|[v1.4.2](https://github.com/eProsima/Fast-DDS-Python/releases/tag/v1.4.2)| +|2.13|1.4|[1.4.x](https://github.com/eProsima/Fast-DDS-Python/tree/1.4.x)|[v1.4.2](https://github.com/eProsima/Fast-DDS-Python/releases/tag/v1.4.2)| +|2.10|1.2|[1.2.x](https://github.com/eProsima/Fast-DDS-Python/tree/1.2.x)|[v1.2.3](https://github.com/eProsima/Fast-DDS-Python/releases/tag/v1.2.3)| +|2.6|1.0|[1.0.x](https://github.com/eProsima/Fast-DDS-Python/tree/1.0.x)|[v1.0.2](https://github.com/eProsima/Fast-DDS-Python/releases/tag/v1.0.2)| + + +For detailed information about the lifecycle of the different *Fast DDS* versions (and their corresponding counterpart in this repository), please refer to the [release support section of the Fast DDS repository](https://github.com/eProsima/Fast-DDS/blob/master/RELEASE_SUPPORT.md). + From d03c10508cc851a1ce7b9036b8e10d460d0066a6 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Wed, 26 Jun 2024 10:59:20 +0200 Subject: [PATCH 05/21] Refs #21228: Add install doxygen step in windows reusable workflow Signed-off-by: JesusPoderoso --- .github/workflows/reusable-windows-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/reusable-windows-ci.yml b/.github/workflows/reusable-windows-ci.yml index fb462972..ee0a56c9 100644 --- a/.github/workflows/reusable-windows-ci.yml +++ b/.github/workflows/reusable-windows-ci.yml @@ -231,6 +231,8 @@ jobs: shell: pwsh run: choco install swig --allow-downgrade --version=4.0.2.04082020 + - name: Install doxygen + uses: ssciwr/doxygen-install@v1 - name: Prepare build meta file run: | @@ -268,7 +270,7 @@ jobs: with: colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/test.meta colcon_test_args: ${{ inputs.colcon-args }} - colcon_test_args_default: --event-handlers=console_direct+ + colcon_test_args_default: --event-handlers=console_direct+ ctest_args: ${{ inputs.ctest-args }} packages_names: fastdds_python workspace: ${{ github.workspace }} From 8ff63e23cf7623eff5764609fb1cd1fcfe7d6d61 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Wed, 26 Jun 2024 11:16:45 +0200 Subject: [PATCH 06/21] Refs #21228: Add fast dds branch to nightly labels Signed-off-by: JesusPoderoso --- .github/workflows/nightly-ubuntu-ci.yml | 8 ++--- .github/workflows/nightly-windows-ci.yml | 44 ++++++++++++------------ 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/nightly-ubuntu-ci.yml b/.github/workflows/nightly-ubuntu-ci.yml index 0990c824..cd808a1e 100644 --- a/.github/workflows/nightly-ubuntu-ci.yml +++ b/.github/workflows/nightly-ubuntu-ci.yml @@ -20,7 +20,7 @@ jobs: uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@main with: os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}' + label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' fastdds-python-branch: ${{ matrix.fastdds-python-branch }} fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true @@ -41,7 +41,7 @@ jobs: uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.4.x with: os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}' + label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' fastdds-python-branch: ${{ matrix.fastdds-python-branch }} fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true @@ -61,7 +61,7 @@ jobs: uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.2.x with: os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}' + label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' fastdds-python-branch: ${{ matrix.fastdds-python-branch }} fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true @@ -81,7 +81,7 @@ jobs: uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.0.x with: os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}' + label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' fastdds-python-branch: ${{ matrix.fastdds-python-branch }} fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true diff --git a/.github/workflows/nightly-windows-ci.yml b/.github/workflows/nightly-windows-ci.yml index 855b9a1a..ad6baf75 100644 --- a/.github/workflows/nightly-windows-ci.yml +++ b/.github/workflows/nightly-windows-ci.yml @@ -23,7 +23,7 @@ jobs: with: os-version: ${{ matrix.os-version }} vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}' + label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' fastdds-python-branch: ${{ matrix.fastdds-python-branch }} fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true @@ -35,10 +35,10 @@ jobs: fail-fast: false matrix: os-version: - - image: 'windows-2019' - vs-toolset: 'v142' - - image: 'windows-2017' - vs-toolset: 'v141' + - 'windows-2019' + vs-toolset: + - 'v141' + - 'v142' fastdds-python-branch: - '1.4.x' fastdds-branch: @@ -46,9 +46,9 @@ jobs: - '2.13.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.4.x with: - os-version: ${{ matrix.os-version.image }} - vs.toolset: ${{ matrix.os-version.vs-toolset }} - label: 'nightly-${{ matrix.os-version.image }}-${{ matrix.os-version.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' + os-version: ${{ matrix.os-version }} + vs.toolset: ${{ matrix.vs-toolset }} + label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' fastdds-python-branch: ${{ matrix.fastdds-python-branch }} fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true @@ -60,19 +60,19 @@ jobs: fail-fast: false matrix: os-version: - - image: 'windows-2019' - vs-toolset: 'v142' - - image: 'windows-2017' - vs-toolset: 'v141' + - 'windows-2019' + vs-toolset: + - 'v141' + - 'v142' fastdds-python-branch: - '1.2.x' fastdds-branch: - '2.10.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.2.x with: - os-version: ${{ matrix.os-version.image }} - vs.toolset: ${{ matrix.os-version.vs-toolset }} - label: 'nightly-${{ matrix.os-version.image }}-${{ matrix.os-version.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}' + os-version: ${{ matrix.os-version }} + vs.toolset: ${{ matrix.vs-toolset }} + label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' fastdds-python-branch: ${{ matrix.fastdds-python-branch }} fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true @@ -84,19 +84,19 @@ jobs: fail-fast: false matrix: os-version: - - image: 'windows-2019' - vs-toolset: 'v142' - - image: 'windows-2017' - vs-toolset: 'v141' + - 'windows-2019' + vs-toolset: + - 'v141' + - 'v142' fastdds-python-branch: - '1.0.x' fastdds-branch: - '2.6.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.0.x with: - os-version: ${{ matrix.os-version.image }} - vs.toolset: ${{ matrix.os-version.vs-toolset }} - label: 'nightly-${{ matrix.os-version.image }}-${{ matrix.os-version.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}' + os-version: ${{ matrix.os-version }} + vs.toolset: ${{ matrix.vs-toolset }} + label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' fastdds-python-branch: ${{ matrix.fastdds-python-branch }} fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true From e9d97590acb7bca19931423df871d69b2e1d5b35 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Wed, 26 Jun 2024 12:52:32 +0200 Subject: [PATCH 07/21] Refs #21228: Deactivate Windows build temporary on 1.0.x Signed-off-by: JesusPoderoso --- .github/workflows/nightly-windows-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly-windows-ci.yml b/.github/workflows/nightly-windows-ci.yml index ad6baf75..63a010a8 100644 --- a/.github/workflows/nightly-windows-ci.yml +++ b/.github/workflows/nightly-windows-ci.yml @@ -99,5 +99,5 @@ jobs: label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' fastdds-python-branch: ${{ matrix.fastdds-python-branch }} fastdds-branch: ${{ matrix.fastdds-branch }} - run-build: true + run-build: false run-tests: false From 2cc0571ecf195cfa04608a7255e50c9bfc253d24 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Wed, 26 Jun 2024 12:55:52 +0200 Subject: [PATCH 08/21] Refs #21228: Move build documentation in tests steps only in Ubuntu CI Signed-off-by: JesusPoderoso --- .github/workflows/config/test.meta | 1 - .github/workflows/reusable-ubuntu-ci.yml | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/config/test.meta b/.github/workflows/config/test.meta index fc086118..327b64df 100644 --- a/.github/workflows/config/test.meta +++ b/.github/workflows/config/test.meta @@ -2,7 +2,6 @@ names: fastdds_python: cmake-args: - "-DBUILD_TESTING=ON" - - "-DBUILD_DOCUMENTATION=ON" ctest-args: [ "--repeat", "until-pass:3", "--timeout", "300", diff --git a/.github/workflows/reusable-ubuntu-ci.yml b/.github/workflows/reusable-ubuntu-ci.yml index 1fbd1e19..1e56da73 100644 --- a/.github/workflows/reusable-ubuntu-ci.yml +++ b/.github/workflows/reusable-ubuntu-ci.yml @@ -42,7 +42,8 @@ on: required: false type: boolean default: true - +env: + colcon-build-default-cmake-args: '-DBUILD_DOCUMENTATION=ON' defaults: run: shell: bash @@ -164,7 +165,7 @@ jobs: - name: Install apt packages uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 with: - packages: libasio-dev libtinyxml2-dev libssl-dev swig + packages: libasio-dev libtinyxml2-dev libssl-dev swig doxygen - name: Install colcon uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 @@ -188,7 +189,7 @@ jobs: colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build.meta ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/test.meta colcon_build_args: ${{ inputs.colcon-args }} cmake_args: ${{ inputs.cmake-args }} - cmake_args_default: '' + cmake_args_default: ${{ env.colcon-build-default-cmake-args }} cmake_build_type: ${{ matrix.cmake-build-type }} workspace: ${{ github.workspace }} From 7c66a53e9e54914847bdf26f77aa10b5b49a9c4d Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Wed, 26 Jun 2024 17:04:58 +0200 Subject: [PATCH 09/21] Refs #21228: Apply rev suggestions Signed-off-by: JesusPoderoso --- .github/workflows/config/test.meta | 5 ---- .github/workflows/nightly-ubuntu-ci.yml | 28 ++++++++++------------- .github/workflows/nightly-windows-ci.yml | 24 +++++++------------ .github/workflows/reusable-ubuntu-ci.yml | 23 +++++++++++++------ .github/workflows/reusable-windows-ci.yml | 25 +++++--------------- .github/workflows/ubuntu-ci.yml | 6 +++++ 6 files changed, 48 insertions(+), 63 deletions(-) diff --git a/.github/workflows/config/test.meta b/.github/workflows/config/test.meta index 327b64df..bb759e45 100644 --- a/.github/workflows/config/test.meta +++ b/.github/workflows/config/test.meta @@ -7,8 +7,3 @@ names: "--timeout", "300", "--label-exclude", "xfail" ] - googletest-distribution: - cmake-args: - - "-Dgtest_force_shared_crt=ON" - - "-DBUILD_SHARED_LIBS=ON" - - "-DBUILD_GMOCK=ON" diff --git a/.github/workflows/nightly-ubuntu-ci.yml b/.github/workflows/nightly-ubuntu-ci.yml index cd808a1e..79048104 100644 --- a/.github/workflows/nightly-ubuntu-ci.yml +++ b/.github/workflows/nightly-ubuntu-ci.yml @@ -13,18 +13,17 @@ jobs: matrix: os-version: - 'ubuntu-22.04' - fastdds-python-branch: - - 'main' fastdds-branch: - 'master' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@main with: os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' - fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + label: 'nightly-${{ matrix.os-version }}-ci-main-${{ matrix.fastdds-branch }}' + fastdds-python-branch: 'main' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true run-tests: true + use-ccache: false # python 1.4.x - fastdds 2.14.x/2.13.x nightly-ubuntu-ci-1_4_x: @@ -33,19 +32,18 @@ jobs: matrix: os-version: - 'ubuntu-22.04' - fastdds-python-branch: - - '1.4.x' fastdds-branch: - '2.14.x' - '2.13.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.4.x with: os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' - fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + label: 'nightly-${{ matrix.os-version }}-ci-1.4.x-${{ matrix.fastdds-branch }}' + fastdds-python-branch: '1.4.x' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true run-tests: true + use-ccache: false # python 1.2.x - fastdds 2.10.x nightly-ubuntu-ci-1_2_x: @@ -54,18 +52,17 @@ jobs: matrix: os-version: - 'ubuntu-22.04' - fastdds-python-branch: - - '1.2.x' fastdds-branch: - '2.10.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.2.x with: os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' - fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + label: 'nightly-${{ matrix.os-version }}-ci-1.2.x-${{ matrix.fastdds-branch }}' + fastdds-python-branch: '1.2.x' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true run-tests: true + use-ccache: false # python 1.0.x - fastdds 2.6.x nightly-ubuntu-ci-1_0_x: @@ -74,15 +71,14 @@ jobs: matrix: os-version: - 'ubuntu-20.04' - fastdds-python-branch: - - '1.0.x' fastdds-branch: - '2.6.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.0.x with: os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' - fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + label: 'nightly-${{ matrix.os-version }}-ci-1.0.x-${{ matrix.fastdds-branch }}' + fastdds-python-branch: '1.0.x' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true run-tests: false + use-ccache: false diff --git a/.github/workflows/nightly-windows-ci.yml b/.github/workflows/nightly-windows-ci.yml index 63a010a8..7c6580dc 100644 --- a/.github/workflows/nightly-windows-ci.yml +++ b/.github/workflows/nightly-windows-ci.yml @@ -15,16 +15,14 @@ jobs: - 'windows-2019' vs-toolset: - 'v142' - fastdds-python-branch: - - 'main' fastdds-branch: - 'master' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@main with: os-version: ${{ matrix.os-version }} vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' - fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-main-${{ matrix.fastdds-branch }}' + fastdds-python-branch: 'main' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true run-tests: true @@ -39,8 +37,6 @@ jobs: vs-toolset: - 'v141' - 'v142' - fastdds-python-branch: - - '1.4.x' fastdds-branch: - '2.14.x' - '2.13.x' @@ -48,8 +44,8 @@ jobs: with: os-version: ${{ matrix.os-version }} vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' - fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-1.4.x-${{ matrix.fastdds-branch }}' + fastdds-python-branch: '1.4.x' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true run-tests: true @@ -64,16 +60,14 @@ jobs: vs-toolset: - 'v141' - 'v142' - fastdds-python-branch: - - '1.2.x' fastdds-branch: - '2.10.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.2.x with: os-version: ${{ matrix.os-version }} vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' - fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-1.2.x-${{ matrix.fastdds-branch }}' + fastdds-python-branch: '1.2.x' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true run-tests: true @@ -88,16 +82,14 @@ jobs: vs-toolset: - 'v141' - 'v142' - fastdds-python-branch: - - '1.0.x' fastdds-branch: - '2.6.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.0.x with: os-version: ${{ matrix.os-version }} vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-${{ matrix.fastdds-python-branch }}-${{ matrix.fastdds-branch }}' - fastdds-python-branch: ${{ matrix.fastdds-python-branch }} + label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-1.0.x-${{ matrix.fastdds-branch }}' + fastdds-python-branch: '1.0.x' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: false run-tests: false diff --git a/.github/workflows/reusable-ubuntu-ci.yml b/.github/workflows/reusable-ubuntu-ci.yml index 1e56da73..b796e7be 100644 --- a/.github/workflows/reusable-ubuntu-ci.yml +++ b/.github/workflows/reusable-ubuntu-ci.yml @@ -42,6 +42,11 @@ on: required: false type: boolean default: true + use-ccache: + description: 'Use CCache to speed up the build' + required: false + type: boolean + default: false env: colcon-build-default-cmake-args: '-DBUILD_DOCUMENTATION=ON' defaults: @@ -98,6 +103,12 @@ jobs: packages: vcstool xmlschema upgrade: false + - 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 @@ -119,7 +130,6 @@ jobs: destination_workspace: src skip_existing: 'true' - - name: Colcon build continue-on-error: false uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0 @@ -173,14 +183,13 @@ jobs: - name: Install Python dependencies uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 with: - packages: vcstool xmlschema + packages: xmlschema pytest - - name: Fetch Fast DDS Python CI dependencies - uses: eProsima/eProsima-CI/multiplatform/vcs_import@v0 + - name: Setup CCache + uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 + if: ${{ inputs.use-ccache == true }} with: - vcs_repos_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/test.repos - destination_workspace: src - skip_existing: 'true' + api_token: ${{ secrets.GITHUB_TOKEN }} - name: Colcon build continue-on-error: false diff --git a/.github/workflows/reusable-windows-ci.yml b/.github/workflows/reusable-windows-ci.yml index ee0a56c9..cc7ff331 100644 --- a/.github/workflows/reusable-windows-ci.yml +++ b/.github/workflows/reusable-windows-ci.yml @@ -126,10 +126,9 @@ jobs: shell: pwsh run: choco install swig --allow-downgrade --version=4.0.2.04082020 - # Although this is a ubuntu action becuase it uses bash, it is compatible with windows - name: Get Fast DDS branch id: get_fastdds_branch - uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 + uses: eProsima/eProsima-CI/multiplatform/get_related_branch_from_repo@feature/21228 with: remote_repository: eProsima/Fast-DDS fallback_branch: ${{ inputs.fastdds-branch }} @@ -232,25 +231,13 @@ jobs: run: choco install swig --allow-downgrade --version=4.0.2.04082020 - name: Install doxygen - uses: ssciwr/doxygen-install@v1 + uses: eProsima/eProsima-CI/external/install_doxygen@feature/21228 - name: Prepare build meta file - run: | - $build_meta_file = '${{ github.workspace }}\src\fastdds_python\.github\workflows\config\build.meta' - $test_meta_file = '${{ github.workspace }}\src\fastdds_python\.github\workflows\config\test.meta' - $build_test_meta_file = '${{ github.workspace }}\src\fastdds_python\.github\workflows\config\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@feature/21228 + with: + metas: "@('${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build.meta', '${{ github.workspace }}/src/fastdds_python/.github/workflows/config/test.meta')" + path: '${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build_test.meta' - name: Colcon build continue-on-error: false diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index bf5f63bd..9efff825 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -33,6 +33,11 @@ on: required: false type: boolean default: true + use-ccache: + description: 'Use CCache to speed up the build' + required: false + type: boolean + default: false pull_request: types: @@ -61,3 +66,4 @@ jobs: fastdds-branch: ${{ inputs.fastdds-branch || 'master' }} run-build: ${{ !(github.event_name == 'pull_request') && true || (!contains(github.event.pull_request.labels.*.name, 'skip-ci') && !contains(github.event.pull_request.labels.*.name, 'conflicts')) && true || false }} run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) && true || false }} + use-ccache: ${{ inputs.use-ccache || false }} From 342e6f9aaac5a0e43b2fd595638e2b61cc0b0e98 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Thu, 27 Jun 2024 14:50:42 +0200 Subject: [PATCH 10/21] Refs #21228: Fix test.meta issue in Ubuntu vs Windows Signed-off-by: JesusPoderoso --- .github/workflows/config/ubuntu_test.meta | 10 ++++++++++ .../workflows/config/{test.meta => windows_test.meta} | 0 .github/workflows/reusable-ubuntu-ci.yml | 7 ++----- .github/workflows/reusable-windows-ci.yml | 4 ++-- 4 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/config/ubuntu_test.meta rename .github/workflows/config/{test.meta => windows_test.meta} (100%) diff --git a/.github/workflows/config/ubuntu_test.meta b/.github/workflows/config/ubuntu_test.meta new file mode 100644 index 00000000..a96a78ea --- /dev/null +++ b/.github/workflows/config/ubuntu_test.meta @@ -0,0 +1,10 @@ +names: + fastdds_python: + cmake-args: + - "-DBUILD_TESTING=ON" + - "-DBUILD_DOCUMENTATION=ON" + ctest-args: [ + "--repeat", "until-pass:3", + "--timeout", "300", + "--label-exclude", "xfail" + ] diff --git a/.github/workflows/config/test.meta b/.github/workflows/config/windows_test.meta similarity index 100% rename from .github/workflows/config/test.meta rename to .github/workflows/config/windows_test.meta diff --git a/.github/workflows/reusable-ubuntu-ci.yml b/.github/workflows/reusable-ubuntu-ci.yml index b796e7be..ab9d12ab 100644 --- a/.github/workflows/reusable-ubuntu-ci.yml +++ b/.github/workflows/reusable-ubuntu-ci.yml @@ -47,8 +47,6 @@ on: required: false type: boolean default: false -env: - colcon-build-default-cmake-args: '-DBUILD_DOCUMENTATION=ON' defaults: run: shell: bash @@ -195,10 +193,9 @@ jobs: continue-on-error: false uses: eProsima/eProsima-CI/multiplatform/colcon_build@v0 with: - colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build.meta ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/test.meta + colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build.meta ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/ubuntu_test.meta colcon_build_args: ${{ inputs.colcon-args }} cmake_args: ${{ inputs.cmake-args }} - cmake_args_default: ${{ env.colcon-build-default-cmake-args }} cmake_build_type: ${{ matrix.cmake-build-type }} workspace: ${{ github.workspace }} @@ -206,7 +203,7 @@ jobs: id: python_test uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0 with: - colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/test.meta + colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/ubuntu_test.meta colcon_test_args: ${{ inputs.colcon-args }} colcon_test_args_default: --event-handlers=console_direct+ ctest_args: ${{ inputs.ctest-args }} diff --git a/.github/workflows/reusable-windows-ci.yml b/.github/workflows/reusable-windows-ci.yml index cc7ff331..b3aea8e1 100644 --- a/.github/workflows/reusable-windows-ci.yml +++ b/.github/workflows/reusable-windows-ci.yml @@ -236,7 +236,7 @@ jobs: - name: Prepare build meta file uses: eProsima/eProsima-CI/windows/merge_yaml_metas@feature/21228 with: - metas: "@('${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build.meta', '${{ github.workspace }}/src/fastdds_python/.github/workflows/config/test.meta')" + metas: "@('${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build.meta', '${{ github.workspace }}/src/fastdds_python/.github/workflows/config/windows_test.meta')" path: '${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build_test.meta' - name: Colcon build @@ -255,7 +255,7 @@ jobs: id: python_test uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0 with: - colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/test.meta + colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/windows_test.meta colcon_test_args: ${{ inputs.colcon-args }} colcon_test_args_default: --event-handlers=console_direct+ ctest_args: ${{ inputs.ctest-args }} From 0eabeb72b170636d3611aaf549461a16f0e66892 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Thu, 27 Jun 2024 14:51:21 +0200 Subject: [PATCH 11/21] Refs #21228: Remove test.repos Signed-off-by: JesusPoderoso --- .github/workflows/config/test.repos | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .github/workflows/config/test.repos diff --git a/.github/workflows/config/test.repos b/.github/workflows/config/test.repos deleted file mode 100644 index 5052ee82..00000000 --- a/.github/workflows/config/test.repos +++ /dev/null @@ -1,5 +0,0 @@ -repositories: - googletest-distribution: - type: git - url: https://github.com/google/googletest.git - version: release-1.11.0 From 06ff62b6d7b9a486511084926eaffcd8db387f07 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Thu, 27 Jun 2024 15:30:18 +0200 Subject: [PATCH 12/21] Refs #21228: Apply last rev suggestion Signed-off-by: JesusPoderoso --- .github/workflows/ubuntu-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index 9efff825..64a1d922 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -58,7 +58,7 @@ jobs: # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. os-version: ${{ inputs.os-version || 'ubuntu-22.04' }} - label: 'ubuntu-ci' + label: 'ubuntu-ci-${{ inputs.fastdds-python-branch }}-${{ inputs.fastdds-branch }}' colcon-args: ${{ inputs.colcon-args }} cmake-args: ${{ inputs.cmake-args }} ctest-args: ${{ inputs.ctest-args }} From 236083c8985dc2fca92e38d77034720cc3217b38 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Fri, 28 Jun 2024 08:55:48 +0200 Subject: [PATCH 13/21] Refs #21228: Add if conflicts check in PR trigger to avoid passing required CI Signed-off-by: JesusPoderoso --- .github/workflows/ubuntu-ci.yml | 3 ++- .github/workflows/windows-ci.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index 64a1d922..3d170d21 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -53,6 +53,7 @@ concurrency: jobs: ubuntu-ci: + if: ${{ (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'conflicts')) && false || true }} 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: @@ -64,6 +65,6 @@ jobs: ctest-args: ${{ inputs.ctest-args }} fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref || 'main' }} fastdds-branch: ${{ inputs.fastdds-branch || 'master' }} - run-build: ${{ !(github.event_name == 'pull_request') && true || (!contains(github.event.pull_request.labels.*.name, 'skip-ci') && !contains(github.event.pull_request.labels.*.name, 'conflicts')) && true || false }} + run-build: ${{ !(github.event_name == 'pull_request') && true || (!contains(github.event.pull_request.labels.*.name, 'skip-ci')) && true || false }} run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) && true || false }} use-ccache: ${{ inputs.use-ccache || false }} diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 165eb15b..94df249b 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -53,6 +53,7 @@ concurrency: jobs: windows-ci: + if: ${{ (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'conflicts')) && false || true }} uses: ./.github/workflows/reusable-windows-ci.yml with: # It would be desirable to have a matrix of windows OS for this job, but due to the issue opened in this ticket: @@ -65,5 +66,5 @@ jobs: ctest-args: ${{ inputs.ctest-args }} fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref || 'main' }} fastdds-branch: ${{ inputs.fastdds-branch || 'master' }} - run-build: ${{ !(github.event_name == 'pull_request') && true || (!contains(github.event.pull_request.labels.*.name, 'skip-ci') && !contains(github.event.pull_request.labels.*.name, 'conflicts')) && true || false }} + run-build: ${{ !(github.event_name == 'pull_request') && true || (!contains(github.event.pull_request.labels.*.name, 'skip-ci')) && true || false }} run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) && true || false }} From fde37ad78e51ea1e335d90ffcb1b590a17d8bf6b Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Fri, 28 Jun 2024 09:28:57 +0200 Subject: [PATCH 14/21] Refs #21228: Update eProsima-CI action references Signed-off-by: JesusPoderoso --- .github/workflows/reusable-windows-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/reusable-windows-ci.yml b/.github/workflows/reusable-windows-ci.yml index b3aea8e1..acbdb1cb 100644 --- a/.github/workflows/reusable-windows-ci.yml +++ b/.github/workflows/reusable-windows-ci.yml @@ -128,7 +128,7 @@ jobs: - name: Get Fast DDS branch id: get_fastdds_branch - uses: eProsima/eProsima-CI/multiplatform/get_related_branch_from_repo@feature/21228 + uses: eProsima/eProsima-CI/multiplatform/get_related_branch_from_repo@v0 with: remote_repository: eProsima/Fast-DDS fallback_branch: ${{ inputs.fastdds-branch }} @@ -231,10 +231,10 @@ jobs: run: choco install swig --allow-downgrade --version=4.0.2.04082020 - name: Install doxygen - uses: eProsima/eProsima-CI/external/install_doxygen@feature/21228 + uses: eProsima/eProsima-CI/external/install_doxygen@v0 - name: Prepare build meta file - uses: eProsima/eProsima-CI/windows/merge_yaml_metas@feature/21228 + uses: eProsima/eProsima-CI/windows/merge_yaml_metas@v0 with: metas: "@('${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build.meta', '${{ github.workspace }}/src/fastdds_python/.github/workflows/config/windows_test.meta')" path: '${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build_test.meta' From 283ae4e5d3626a760e19d35167d9b6541e2d1fca Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Fri, 28 Jun 2024 14:14:35 +0200 Subject: [PATCH 15/21] Refs #21228: Avoid building dependencies again Signed-off-by: JesusPoderoso --- .github/workflows/reusable-ubuntu-ci.yml | 2 ++ .github/workflows/reusable-windows-ci.yml | 3 ++- .github/workflows/ubuntu-ci.yml | 6 +++--- .github/workflows/windows-ci.yml | 6 +++--- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/reusable-ubuntu-ci.yml b/.github/workflows/reusable-ubuntu-ci.yml index ab9d12ab..2db04926 100644 --- a/.github/workflows/reusable-ubuntu-ci.yml +++ b/.github/workflows/reusable-ubuntu-ci.yml @@ -195,9 +195,11 @@ jobs: with: colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build.meta ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/ubuntu_test.meta colcon_build_args: ${{ inputs.colcon-args }} + colcon_build_args_default: '--packages-select fastdds_python' cmake_args: ${{ inputs.cmake-args }} cmake_build_type: ${{ matrix.cmake-build-type }} workspace: ${{ github.workspace }} + workspace_dependencies: ${{ github.workspace }}/install - name: Colcon test id: python_test diff --git a/.github/workflows/reusable-windows-ci.yml b/.github/workflows/reusable-windows-ci.yml index acbdb1cb..ecdb26af 100644 --- a/.github/workflows/reusable-windows-ci.yml +++ b/.github/workflows/reusable-windows-ci.yml @@ -245,11 +245,12 @@ jobs: with: colcon_meta_file: ${{ github.workspace }}/src/fastdds_python/.github/workflows/config/build_test.meta colcon_build_args: ${{ inputs.colcon-args }} - colcon_build_args_default: --event-handlers console_direct+ + colcon_build_args_default: '--event-handlers console_direct+ --packages-select fastdds_python' cmake_args: ${{ inputs.cmake-args }} cmake_args_default: '-T ${{ inputs.vs-toolset }} ${{ env.colcon-build-default-cmake-args }}' cmake_build_type: ${{ matrix.cmake-build-type }} workspace: ${{ github.workspace }} + workspace_dependencies: ${{ github.workspace }}/install - name: Colcon test id: python_test diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index 3d170d21..75196078 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -53,7 +53,7 @@ concurrency: jobs: ubuntu-ci: - if: ${{ (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'conflicts')) && false || true }} + if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'conflicts') || false }} 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: @@ -65,6 +65,6 @@ jobs: ctest-args: ${{ inputs.ctest-args }} fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref || 'main' }} fastdds-branch: ${{ inputs.fastdds-branch || 'master' }} - run-build: ${{ !(github.event_name == 'pull_request') && true || (!contains(github.event.pull_request.labels.*.name, 'skip-ci')) && true || false }} - run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) && true || false }} + run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') || false }} + run-tests: ${{ (inputs.run-tests == true) || ((github.event_name == 'pull_request') && (!contains(github.event.pull_request.labels.*.name, 'no-test'))) || false }} use-ccache: ${{ inputs.use-ccache || false }} diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 94df249b..9257a69b 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -53,7 +53,7 @@ concurrency: jobs: windows-ci: - if: ${{ (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'conflicts')) && false || true }} + if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'conflicts') || false }} uses: ./.github/workflows/reusable-windows-ci.yml with: # It would be desirable to have a matrix of windows OS for this job, but due to the issue opened in this ticket: @@ -66,5 +66,5 @@ jobs: ctest-args: ${{ inputs.ctest-args }} fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref || 'main' }} fastdds-branch: ${{ inputs.fastdds-branch || 'master' }} - run-build: ${{ !(github.event_name == 'pull_request') && true || (!contains(github.event.pull_request.labels.*.name, 'skip-ci')) && true || false }} - run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) && true || false }} + run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') || false }} + run-tests: ${{ (inputs.run-tests == true) || ((github.event_name == 'pull_request') && (!contains(github.event.pull_request.labels.*.name, 'no-test'))) || false }} From fcd74540d8c2fa70f67106f146d2eb385053ae6e Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Mon, 1 Jul 2024 12:29:47 +0200 Subject: [PATCH 16/21] Refs #21228: Apply rev suggestions Signed-off-by: JesusPoderoso --- .github/workflows/ubuntu-ci.yml | 8 ++++---- .github/workflows/windows-ci.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index 75196078..dd75b422 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -53,7 +53,7 @@ concurrency: jobs: ubuntu-ci: - if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'conflicts') || false }} + 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: @@ -63,8 +63,8 @@ jobs: colcon-args: ${{ inputs.colcon-args }} cmake-args: ${{ inputs.cmake-args }} ctest-args: ${{ inputs.ctest-args }} - fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref || 'main' }} + fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref }} fastdds-branch: ${{ inputs.fastdds-branch || 'master' }} - run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') || false }} - run-tests: ${{ (inputs.run-tests == true) || ((github.event_name == 'pull_request') && (!contains(github.event.pull_request.labels.*.name, 'no-test'))) || false }} + run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') }} + run-tests: ${{ (inputs.run-tests == true) || ((github.event_name == 'pull_request') && (!contains(github.event.pull_request.labels.*.name, 'no-test'))) }} use-ccache: ${{ inputs.use-ccache || false }} diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 9257a69b..d933cca5 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -53,7 +53,7 @@ concurrency: jobs: windows-ci: - if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'conflicts') || false }} + if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'conflicts') }} uses: ./.github/workflows/reusable-windows-ci.yml with: # It would be desirable to have a matrix of windows OS for this job, but due to the issue opened in this ticket: @@ -64,7 +64,7 @@ jobs: colcon-args: ${{ inputs.colcon-args }} cmake-args: ${{ inputs.cmake-args }} ctest-args: ${{ inputs.ctest-args }} - fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref || 'main' }} + fastdds-python-branch: ${{ inputs.fastdds-python-branch || github.ref }} fastdds-branch: ${{ inputs.fastdds-branch || 'master' }} - run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') || false }} - run-tests: ${{ (inputs.run-tests == true) || ((github.event_name == 'pull_request') && (!contains(github.event.pull_request.labels.*.name, 'no-test'))) || false }} + run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') }} + run-tests: ${{ (inputs.run-tests == true) || ((github.event_name == 'pull_request') && (!contains(github.event.pull_request.labels.*.name, 'no-test'))) }} From 557a5d81f9ab6114f4c6d4c321f1a26730097210 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Mon, 1 Jul 2024 14:42:49 +0200 Subject: [PATCH 17/21] Refs #21228: Simplify nightly removing unnecessary matrix options Signed-off-by: JesusPoderoso --- .github/workflows/nightly-ubuntu-ci.yml | 53 +++++++++--------------- .github/workflows/nightly-windows-ci.yml | 51 +++++++++-------------- 2 files changed, 39 insertions(+), 65 deletions(-) diff --git a/.github/workflows/nightly-ubuntu-ci.yml b/.github/workflows/nightly-ubuntu-ci.yml index 79048104..02f6df60 100644 --- a/.github/workflows/nightly-ubuntu-ci.yml +++ b/.github/workflows/nightly-ubuntu-ci.yml @@ -8,19 +8,14 @@ on: jobs: # python main - fastdds master nightly-ubuntu-ci-main: - strategy: - fail-fast: false - matrix: - os-version: - - 'ubuntu-22.04' - fastdds-branch: - - 'master' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@main with: - os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-main-${{ matrix.fastdds-branch }}' + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'ubuntu-22.04' + label: 'nightly-ubuntu-ci-main-master' fastdds-python-branch: 'main' - fastdds-branch: ${{ matrix.fastdds-branch }} + fastdds-branch: 'master' run-build: true run-tests: true use-ccache: false @@ -30,15 +25,15 @@ jobs: strategy: fail-fast: false matrix: - os-version: - - 'ubuntu-22.04' fastdds-branch: - '2.14.x' - '2.13.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.4.x with: - os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-1.4.x-${{ matrix.fastdds-branch }}' + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'ubuntu-22.04' + label: 'nightly-ubuntu-ci-1.4.x-${{ matrix.fastdds-branch }}' fastdds-python-branch: '1.4.x' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true @@ -47,38 +42,28 @@ jobs: # python 1.2.x - fastdds 2.10.x nightly-ubuntu-ci-1_2_x: - strategy: - fail-fast: false - matrix: - os-version: - - 'ubuntu-22.04' - fastdds-branch: - - '2.10.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.2.x with: - os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-1.2.x-${{ matrix.fastdds-branch }}' + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'ubuntu-22.04' + label: 'nightly-ubuntu-ci-1.2.x-2.10.x' fastdds-python-branch: '1.2.x' - fastdds-branch: ${{ matrix.fastdds-branch }} + fastdds-branch: '2.10.x' run-build: true run-tests: true use-ccache: false # python 1.0.x - fastdds 2.6.x nightly-ubuntu-ci-1_0_x: - strategy: - fail-fast: false - matrix: - os-version: - - 'ubuntu-20.04' - fastdds-branch: - - '2.6.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.0.x with: - os-version: ${{ matrix.os-version }} - label: 'nightly-${{ matrix.os-version }}-ci-1.0.x-${{ matrix.fastdds-branch }}' + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'ubuntu-20.04' + label: 'nightly-ubuntu-ci-1.0.x-2.6.x' fastdds-python-branch: '1.0.x' - fastdds-branch: ${{ matrix.fastdds-branch }} + fastdds-branch: '2.6.x' run-build: true run-tests: false use-ccache: false diff --git a/.github/workflows/nightly-windows-ci.yml b/.github/workflows/nightly-windows-ci.yml index 7c6580dc..f4778291 100644 --- a/.github/workflows/nightly-windows-ci.yml +++ b/.github/workflows/nightly-windows-ci.yml @@ -8,22 +8,15 @@ on: jobs: # python main - fastdds master nightly-windows-ci-main: - strategy: - fail-fast: false - matrix: - os-version: - - 'windows-2019' - vs-toolset: - - 'v142' - fastdds-branch: - - 'master' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@main with: - os-version: ${{ matrix.os-version }} - vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-main-${{ matrix.fastdds-branch }}' + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'windows-2019' + vs.toolset: 'v142' + label: 'nightly-windows-v142-ci-main-master' fastdds-python-branch: 'main' - fastdds-branch: ${{ matrix.fastdds-branch }} + fastdds-branch: 'master' run-build: true run-tests: true @@ -32,8 +25,6 @@ jobs: strategy: fail-fast: false matrix: - os-version: - - 'windows-2019' vs-toolset: - 'v141' - 'v142' @@ -42,9 +33,11 @@ jobs: - '2.13.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.4.x with: - os-version: ${{ matrix.os-version }} + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'windows-2019' vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-1.4.x-${{ matrix.fastdds-branch }}' + label: 'nightly-windows-${{ matrix.vs-toolset }}-ci-1.4.x-${{ matrix.fastdds-branch }}' fastdds-python-branch: '1.4.x' fastdds-branch: ${{ matrix.fastdds-branch }} run-build: true @@ -55,20 +48,18 @@ jobs: strategy: fail-fast: false matrix: - os-version: - - 'windows-2019' vs-toolset: - 'v141' - 'v142' - fastdds-branch: - - '2.10.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.2.x with: - os-version: ${{ matrix.os-version }} + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'windows-2019' vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-1.2.x-${{ matrix.fastdds-branch }}' + label: 'nightly-windows-${{ matrix.vs-toolset }}-ci-1.2.x-2.10.x' fastdds-python-branch: '1.2.x' - fastdds-branch: ${{ matrix.fastdds-branch }} + fastdds-branch: '2.10.x' run-build: true run-tests: true @@ -77,19 +68,17 @@ jobs: strategy: fail-fast: false matrix: - os-version: - - 'windows-2019' vs-toolset: - 'v141' - 'v142' - fastdds-branch: - - '2.6.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.0.x with: - os-version: ${{ matrix.os-version }} + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'windows-2019' vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-${{ matrix.os-version }}-${{ matrix.vs-toolset }}-ci-1.0.x-${{ matrix.fastdds-branch }}' + label: 'nightly-windows-${{ matrix.vs-toolset }}-ci-1.0.x-2.6.x' fastdds-python-branch: '1.0.x' - fastdds-branch: ${{ matrix.fastdds-branch }} + fastdds-branch: '2.6.x' run-build: false run-tests: false From 91e1d955094e68dca1d541a07bbd77e5f61cad28 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Thu, 4 Jul 2024 11:43:59 +0200 Subject: [PATCH 18/21] Refs #21228: Move 2.6.x related jobs to weekly workflow Signed-off-by: JesusPoderoso --- .github/workflows/nightly-ubuntu-ci.yml | 14 ------------- .github/workflows/nightly-windows-ci.yml | 25 +++-------------------- .github/workflows/weekly-ubuntu-ci.yml | 20 ++++++++++++++++++ .github/workflows/weekly-windows-ci.yml | 26 ++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 36 deletions(-) create mode 100644 .github/workflows/weekly-ubuntu-ci.yml create mode 100644 .github/workflows/weekly-windows-ci.yml diff --git a/.github/workflows/nightly-ubuntu-ci.yml b/.github/workflows/nightly-ubuntu-ci.yml index 02f6df60..49b170aa 100644 --- a/.github/workflows/nightly-ubuntu-ci.yml +++ b/.github/workflows/nightly-ubuntu-ci.yml @@ -53,17 +53,3 @@ jobs: run-build: true run-tests: true use-ccache: false - - # python 1.0.x - fastdds 2.6.x - nightly-ubuntu-ci-1_0_x: - uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.0.x - with: - # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: - # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. - os-version: 'ubuntu-20.04' - label: 'nightly-ubuntu-ci-1.0.x-2.6.x' - fastdds-python-branch: '1.0.x' - fastdds-branch: '2.6.x' - run-build: true - run-tests: false - use-ccache: false diff --git a/.github/workflows/nightly-windows-ci.yml b/.github/workflows/nightly-windows-ci.yml index f4778291..e9625f1b 100644 --- a/.github/workflows/nightly-windows-ci.yml +++ b/.github/workflows/nightly-windows-ci.yml @@ -13,7 +13,7 @@ jobs: # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. os-version: 'windows-2019' - vs.toolset: 'v142' + vs-toolset: 'v142' label: 'nightly-windows-v142-ci-main-master' fastdds-python-branch: 'main' fastdds-branch: 'master' @@ -36,7 +36,7 @@ jobs: # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. os-version: 'windows-2019' - vs.toolset: ${{ matrix.vs-toolset }} + vs-toolset: ${{ matrix.vs-toolset }} label: 'nightly-windows-${{ matrix.vs-toolset }}-ci-1.4.x-${{ matrix.fastdds-branch }}' fastdds-python-branch: '1.4.x' fastdds-branch: ${{ matrix.fastdds-branch }} @@ -56,29 +56,10 @@ jobs: # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. os-version: 'windows-2019' - vs.toolset: ${{ matrix.vs-toolset }} + vs-toolset: ${{ matrix.vs-toolset }} label: 'nightly-windows-${{ matrix.vs-toolset }}-ci-1.2.x-2.10.x' fastdds-python-branch: '1.2.x' fastdds-branch: '2.10.x' run-build: true run-tests: true - # python 1.0.x - fastdds 2.6.x - nightly-windows-ci-1_0_x: - strategy: - fail-fast: false - matrix: - vs-toolset: - - 'v141' - - 'v142' - uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.0.x - with: - # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: - # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. - os-version: 'windows-2019' - vs.toolset: ${{ matrix.vs-toolset }} - label: 'nightly-windows-${{ matrix.vs-toolset }}-ci-1.0.x-2.6.x' - fastdds-python-branch: '1.0.x' - fastdds-branch: '2.6.x' - run-build: false - run-tests: false diff --git a/.github/workflows/weekly-ubuntu-ci.yml b/.github/workflows/weekly-ubuntu-ci.yml new file mode 100644 index 00000000..2d8e82e4 --- /dev/null +++ b/.github/workflows/weekly-ubuntu-ci.yml @@ -0,0 +1,20 @@ +name: Fast DDS Python Ubuntu CI (weekly) + +on: + workflow_dispatch: + schedule: + - cron: '0 * * * 1' # Run at minute 0 on Monday + +jobs: + weekly-ubuntu-ci-1_0_x: + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-ubuntu-ci.yml@1.0.x + with: + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'ubuntu-20.04' + label: 'weekly-ubuntu-ci-1.0.x-2.6.x' + fastdds-python-branch: '1.0.x' + fastdds-branch: '2.6.x' + run-build: true + run-tests: false + use-ccache: false diff --git a/.github/workflows/weekly-windows-ci.yml b/.github/workflows/weekly-windows-ci.yml new file mode 100644 index 00000000..b2560653 --- /dev/null +++ b/.github/workflows/weekly-windows-ci.yml @@ -0,0 +1,26 @@ +name: Fast DDS Python Windows CI (weekly) + +on: + workflow_dispatch: + schedule: + - cron: '0 * * * 1' # Run at minute 0 on Monday + +jobs: + weekly-windows-ci-1_0_x: + strategy: + fail-fast: false + matrix: + vs-toolset: + - 'v141' + - 'v142' + uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.0.x + with: + # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: + # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. + os-version: 'windows-2019' + vs-toolset: ${{ matrix.vs-toolset }} + label: 'weekly-windows-${{ matrix.vs-toolset }}-ci-1.0.x-2.6.x' + fastdds-python-branch: '1.0.x' + fastdds-branch: '2.6.x' + run-build: false + run-tests: false From 85f7216c0d003ee8bd1be1d39c76071c76038e76 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Mon, 8 Jul 2024 16:07:23 +0200 Subject: [PATCH 19/21] Refs #21228: Fix weekly cron expression Signed-off-by: JesusPoderoso --- .github/workflows/weekly-ubuntu-ci.yml | 2 +- .github/workflows/weekly-windows-ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/weekly-ubuntu-ci.yml b/.github/workflows/weekly-ubuntu-ci.yml index 2d8e82e4..b362b5a3 100644 --- a/.github/workflows/weekly-ubuntu-ci.yml +++ b/.github/workflows/weekly-ubuntu-ci.yml @@ -3,7 +3,7 @@ name: Fast DDS Python Ubuntu CI (weekly) on: workflow_dispatch: schedule: - - cron: '0 * * * 1' # Run at minute 0 on Monday + - cron: '0 0 * * 1' # Run at minute 0 on Monday jobs: weekly-ubuntu-ci-1_0_x: diff --git a/.github/workflows/weekly-windows-ci.yml b/.github/workflows/weekly-windows-ci.yml index b2560653..646e88a2 100644 --- a/.github/workflows/weekly-windows-ci.yml +++ b/.github/workflows/weekly-windows-ci.yml @@ -3,7 +3,7 @@ name: Fast DDS Python Windows CI (weekly) on: workflow_dispatch: schedule: - - cron: '0 * * * 1' # Run at minute 0 on Monday + - cron: '0 0 * * 1' # Run at minute 0 on Monday jobs: weekly-windows-ci-1_0_x: From 7dd2d1a59ae1ce44282d7b9c26b0e0940eae823f Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Tue, 9 Jul 2024 12:21:31 +0200 Subject: [PATCH 20/21] Refs #21228: Apply rev suggestions Signed-off-by: JesusPoderoso --- .github/workflows/nightly-windows-ci.yml | 6 ------ .github/workflows/weekly-windows-ci.yml | 2 -- 2 files changed, 8 deletions(-) diff --git a/.github/workflows/nightly-windows-ci.yml b/.github/workflows/nightly-windows-ci.yml index e9625f1b..f18d6736 100644 --- a/.github/workflows/nightly-windows-ci.yml +++ b/.github/workflows/nightly-windows-ci.yml @@ -10,8 +10,6 @@ jobs: nightly-windows-ci-main: uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@main with: - # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: - # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. os-version: 'windows-2019' vs-toolset: 'v142' label: 'nightly-windows-v142-ci-main-master' @@ -33,8 +31,6 @@ jobs: - '2.13.x' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.4.x with: - # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: - # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. os-version: 'windows-2019' vs-toolset: ${{ matrix.vs-toolset }} label: 'nightly-windows-${{ matrix.vs-toolset }}-ci-1.4.x-${{ matrix.fastdds-branch }}' @@ -53,8 +49,6 @@ jobs: - 'v142' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.2.x with: - # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: - # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. os-version: 'windows-2019' vs-toolset: ${{ matrix.vs-toolset }} label: 'nightly-windows-${{ matrix.vs-toolset }}-ci-1.2.x-2.10.x' diff --git a/.github/workflows/weekly-windows-ci.yml b/.github/workflows/weekly-windows-ci.yml index 646e88a2..1ba2aa8c 100644 --- a/.github/workflows/weekly-windows-ci.yml +++ b/.github/workflows/weekly-windows-ci.yml @@ -15,8 +15,6 @@ jobs: - 'v142' uses: eProsima/Fast-DDS-Python/.github/workflows/reusable-windows-ci.yml@1.0.x with: - # It would be desirable to have a matrix of ubuntu OS for this job, but due to the issue opened in this ticket: - # https://github.com/orgs/community/discussions/128118 , it has been set as a single OS job. os-version: 'windows-2019' vs-toolset: ${{ matrix.vs-toolset }} label: 'weekly-windows-${{ matrix.vs-toolset }}-ci-1.0.x-2.6.x' From a80e8ae5e432c5b73b9f3c7cc541cd2db613d1b2 Mon Sep 17 00:00:00 2001 From: JesusPoderoso Date: Thu, 11 Jul 2024 15:11:56 +0200 Subject: [PATCH 21/21] Refs #21228: Apply rev suggestions Signed-off-by: JesusPoderoso --- README.md | 2 ++ RELEASE_SUPPORT.md | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 93b11513..a0895d20 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ [![Issues](https://img.shields.io/github/issues/eProsima/Fast-DDS-python.svg)](https://github.com/eProsima/Fast-DDS-python/issues) [![Forks](https://img.shields.io/github/forks/eProsima/Fast-DDS-python.svg)](https://github.com/eProsima/Fast-DDS-python/network/members) [![Stars](https://img.shields.io/github/stars/eProsima/Fast-DDS-python.svg)](https://github.com/eProsima/Fast-DDS-python/stargazers) +[![Fast DDS Python Ubuntu CI (nightly)](https://github.com/eProsima/Fast-DDS-Python/actions/workflows/nightly-ubuntu-ci.yml/badge.svg)](https://github.com/eProsima/Fast-DDS-Python/actions/workflows/nightly-ubuntu-ci.yml) +[![Fast DDS Python Windows CI (nightly)](https://github.com/eProsima/Fast-DDS-Python/actions/workflows/nightly-windows-ci.yml/badge.svg)](https://github.com/eProsima/Fast-DDS-Python/actions/workflows/nightly-windows-ci.yml) > [!WARNING] diff --git a/RELEASE_SUPPORT.md b/RELEASE_SUPPORT.md index 2b512a84..15c3f6b0 100644 --- a/RELEASE_SUPPORT.md +++ b/RELEASE_SUPPORT.md @@ -1,6 +1,5 @@ # Release support - Please, refer to the [main branch](https://github.com/eProsima/Fast-DDS-Python/blob/master/RELEASE_SUPPORT.md) for the latest version of this document. *eProsima Fast DDS Python* maintains several releases with different support cycles.