Skip to content

OMG interoperability #88

OMG interoperability

OMG interoperability #88

name: OMG interoperability
on:
workflow_dispatch:
jobs:
create_bin_release:
name: Create binary release
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
path: dust-dds
- name: Checkout omg dds-rtps from s2e-systems fork
uses: actions/checkout@v4
with:
repository: s2e-systems/dds-rtps
ref: update-dust-dds-src
path: dds-rtps
- name: Build executable
run: cargo build --package dust_dds_shape_main_linux --release --manifest-path dds-rtps/srcRs/DustDDS/Cargo.toml --config patch.crates-io.dust_dds.path="'dust-dds/dds'"
- name: Upload executable artifact
uses: actions/upload-artifact@v4
with:
name: interoperability_executable
path: dds-rtps/srcRs/DustDDS/target/release/dust_dds_shape_main_linux
run_tests:
runs-on: ubuntu-latest
needs: create_bin_release
strategy:
matrix:
include:
- publisher: dust_dds
subscriber: dust_dds
- publisher: dust_dds
subscriber: connext_dds
- publisher: dust_dds
subscriber: eprosima_fastdds
- publisher: dust_dds
subscriber: toc_coredx_dds
- publisher: dust_dds
subscriber: intercom_dds
- publisher: dust_dds
subscriber: opendds
- publisher: connext_dds
subscriber: dust_dds
- publisher: eprosima_fastdds
subscriber: dust_dds
- publisher: toc_coredx_dds
subscriber: dust_dds
- publisher: intercom_dds
subscriber: dust_dds
- publisher: opendds
subscriber: dust_dds
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Checkout omg dds-rtps
uses: actions/checkout@v4
with:
repository: omg-dds/dds-rtps
ref: 'v2.0.2025'
path: omg-dds-rtps
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Downloads shape_main executables from OMG
uses: robinraju/[email protected]
with:
repository: omg-dds/dds-rtps
latest: true
preRelease: false
fileName: "*"
out-file-path: executables
extract: true
- name: Remove DustDDS
run: rm executables/dust_dds-*
continue-on-error: true
- name: Download dust_dds_shape_main executable artifact from create_bin_release
uses: actions/download-artifact@v4
with:
name: interoperability_executable
path: executables
- name: List directory
run: ls -l executables
- name: Install omg-dds dds-rtps Python requirements
run: pip install --requirement omg-dds-rtps/requirements.txt
- name: Run Interoperability script
timeout-minutes: 60
run: python3 ./omg-dds-rtps/interoperability_report.py --verbose --publisher ./executables/${{ matrix.publisher }}*shape_main_linux --subscriber ./executables/${{ matrix.subscriber }}*shape_main_linux --output-name junit_report-${{ matrix.publisher }}-${{ matrix.subscriber }}.xml
- name: Upload report
uses: actions/upload-artifact@v4
with:
name: junit_report-${{ matrix.publisher }}-${{ matrix.subscriber }}
path: ./junit_report-${{ matrix.publisher }}-${{ matrix.subscriber }}.xml
report:
runs-on: ubuntu-latest
needs: run_tests
steps:
- name: Download junit reports
uses: actions/download-artifact@v4
with:
pattern: junit_report-*
merge-multiple: true
- name: Checkout omg-dds dds-rtps
uses: actions/checkout@v4
with:
repository: omg-dds/dds-rtps
ref: '9e1fdbcd30bc785e5e5113a94e5e936695a3385e'
path: omg-dds-rtps
sparse-checkout-cone-mode: false
sparse-checkout: |
generate_xlsx_report.py
rtps_test_utilities.py
test_suite.py
test_suite_functions.py
requirements.txt
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Install omg-dds dds-rtps Python requirements
run: pip install --requirement omg-dds-rtps/requirements.txt
- name: merge reports
run: junitparser merge *.xml junit_interoperability_report.xml
- name: List directory
run: ls -l
- name: Generate xlsx report
run: python3 ./omg-dds-rtps/generate_xlsx_report.py --input junit_interoperability_report.xml --output interoperability_report.xlsx
- name: XUnit
uses: AutoModality/action-xunit-viewer@v1
with:
results: ./junit_interoperability_report.xml
fail: false
- name: Upload report
uses: actions/upload-artifact@v4
with:
name: interoperability_report_complete
path: |
./index.html
./junit_interoperability_report.xml
./interoperability_report.xlsx