OMG interoperability #97
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: Zip executable # Zipping done here to preserve executable bit | |
| run: | | |
| version=$( cargo tree --package dust_dds --depth 0 --prefix none | tr -d 'dust_dds v' ) | |
| cp ../dds-rtps/srcRs/DustDDS/target/release/dust_dds_shape_main_linux dust_dds-${version}_shape_main_linux | |
| mkdir ../artifacts | |
| zip --junk-paths ../artifacts/dust_dds-${version}_shape_main_linux.zip dust_dds-${version}_shape_main_linux | |
| working-directory: | |
| dust-dds | |
| - name: Upload executable artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: interoperability_executable | |
| path: artifacts | |
| 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: s2e-systems/dds-rtps | |
| ref: update-dust-dds-src | |
| 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: zipped_executables | |
| - name: Remove DustDDS | |
| run: rm zipped_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: zipped_executables | |
| - name: Unzip executables | |
| run: unzip 'zipped_executables/*.zip' -d 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: 30 | |
| 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: s2e-systems/dds-rtps | |
| ref: update-dust-dds-src | |
| path: omg-dds-rtps | |
| - 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 |