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/build_and_test.yml b/.github/workflows/build_and_test.yml index 0908fa5f..6b6a356f 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -8,13 +8,13 @@ on: required: false default: 'master' fastcdr_versions: - description: 'Fast-CDR branches to be used' + description: 'Fast CDR branches to be used' required: false default: '["1.1.x", "master"]' fastdds_branch: - description: 'Fast-DDS branch to be used' + description: 'Fast DDS branch to be used' required: false - default: 'master' + default: '2.12.x' pull_request: push: branches: @@ -22,12 +22,21 @@ on: 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 || '["1.1.x", "master"]') }} + fastdds_version: + - ${{ github.event.inputs.fastdds_branch || '2.12.x' }} env: CXXFLAGS: /MP @@ -47,32 +56,51 @@ jobs: 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 - - uses: eProsima/eProsima-CI/external/setup-python@v0 + - name: Setup Python version + uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - - uses: eProsima/eProsima-CI/multiplatform/install_python_packages@v0 + - name: Install Python dependencies + uses: eProsima/eProsima-CI/multiplatform/install_python_packages@v0 with: packages: pytest pywin32 - - uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0 + - name: Install colcon + uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0 - - uses: eProsima/eProsima-CI/external/checkout@v0 + - name: Checkout Fast DDS Python + uses: eProsima/eProsima-CI/external/checkout@v0 with: path: src/fastdds_python - - uses: ./src/fastdds_python/.github/actions/fetch-fastdds_python-repos + - name: Checkout foonathan memory vendor + uses: eProsima/eProsima-CI/external/checkout@v0 with: - foonathan-memory-vendor-branch: ${{ github.event.inputs.foonathan_memory_vendor_branch || 'master' }} - fastcdr-branch: ${{ matrix.fastcdr_version }} - fastdds-branch: ${{ github.event.inputs.fastdds_branch || 'master' }} + repository: eProsima/foonathan_memory_vendor + path: src/foonathan_memory_vendor + ref: ${{ matrix.foonathan_memory_vendor_version }} - - uses: eProsima/eProsima-CI/external/get-cmake@v0 + - 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 @@ -89,23 +117,23 @@ jobs: windows_compile_environment: msvc - name: Build workspace - shell: pwsh - run: | - $installpath = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" - $modulepath = "$installpath\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" - Import-Module $modulepath - Enter-VsDevShell -SetDefaultWindowTitle -InstallPath $installpath ` - -StartInPath (pwd) -DevCmdArguments '/arch=x64 /host_arch=x64'; - cmake --version - colcon build --executor parallel --event-handlers console_direct+ desktop_notification- ` - --metas ./src/fastdds_python/.github/workflows/test.meta ` - --mixin rel-with-deb-info ccache ${{ steps.ninja.outputs.cmake_generator }} + 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 ${{ 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 - shell: pwsh - run: | - colcon test --packages-select fastdds_python --event-handlers console_direct+ desktop_notification- ` - --return-code-on-test-failure --ctest-args --timeout 60 + id: test + uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0 + with: + colcon_test_args: --packages-select fastdds_python --return-code-on-test-failure + colcon_test_args_default: --event-handlers console_direct+ desktop_notification- + ctest_args_default: --timeout 60 + workspace: ${{ github.workspace }} - name: Upload Logs uses: actions/upload-artifact@v1 @@ -117,27 +145,52 @@ jobs: 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 || '["1.1.x", "master"]') }} + fastdds_version: + - ${{ github.event.inputs.fastdds_branch || '2.12.x' }} + steps: - - uses: eProsima/eProsima-CI/external/checkout@v0 + - name: Checkout Fast DDS Python + uses: eProsima/eProsima-CI/external/checkout@v0 with: path: src/fastdds_python - - uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 + - name: Install apt dependencies + uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 with: packages: libasio-dev libtinyxml2-dev libpython3-dev swig - - uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0 + - name: Install colcon + uses: eProsima/eProsima-CI/multiplatform/install_colcon@v0 - - uses: ./src/fastdds_python/.github/actions/fetch-fastdds_python-repos + - name: Checkout foonathan memory vendor + uses: eProsima/eProsima-CI/external/checkout@v0 with: - foonathan-memory-vendor-branch: ${{ github.event.inputs.foonathan_memory_vendor_branch || 'master' }} - fastcdr-branch: ${{ matrix.fastcdr_version }} - fastdds-branch: ${{ github.event.inputs.fastdds_branch || 'master' }} + repository: eProsima/foonathan_memory_vendor + path: src/foonathan_memory_vendor + ref: ${{ matrix.foonathan_memory_vendor_version }} - - uses: eProsima/eProsima-CI/external/get-cmake@v0 + - 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 @@ -145,23 +198,23 @@ jobs: uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - name: Build workspace - run: | - cmake --version - colcon build \ - --event-handlers=console_direct+ \ - --metas ./src/fastdds_python/.github/workflows/test.meta \ - --mixin rel-with-deb-info ccache + 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 - run: | - source install/setup.bash && \ - colcon test \ - --packages-select fastdds_python \ - --event-handlers=console_direct+ \ - --return-code-on-test-failure \ - --ctest-args \ - --output-on-failure \ - --timeout 60 + id: test + uses: eProsima/eProsima-CI/multiplatform/colcon_test@v0 + with: + colcon_test_args: --packages-select fastdds_python --return-code-on-test-failure + colcon_test_args_default: --event-handlers console_direct+ + ctest_args_default: --timeout 60 + workspace: ${{ github.workspace }} - name: Upload Logs uses: actions/upload-artifact@v1