Skip to content

Run Interoperability Tests #6

Run Interoperability Tests

Run Interoperability Tests #6

name: 1 - Run Interoperability Tests
run-name: Run Interoperability Tests
on: workflow_dispatch
jobs:
generate_timestamp:
runs-on: ubuntu-latest
steps:
- name: Generate timestamp file
run: date '+%Y-%m-%d-%H_%M_%S' > timestamp
- name: Upload timestamp file
uses: actions/upload-artifact@v4
with:
name: timestamp
path: |
./timestamp
run_tests:
runs-on: ubuntu-latest
needs: generate_timestamp
strategy:
matrix:
publisher: ${{ fromJson(github.event.inputs.publishers || '["connext_dds","dust_dds","eprosima_fastdds","intercom_dds","opendds","toc_coredx_dds"]') }}
subscriber: [connext_dds, dust_dds, eprosima_fastdds, intercom_dds, opendds, toc_coredx_dds]
steps:
- name: Checkout sources
uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Download shape_main executables
uses: robinraju/[email protected]
with:
repository: omg-dds/dds-rtps
latest: true
fileName: "*"
out-file-path: zipped_executables
- name: Unzip executables
run: unzip 'zipped_executables/*.zip' -d executables
- name: Install Python requirements
run: pip install --requirement requirements.txt
- name: Run Interoperability script
timeout-minutes: 60
run: python3 interoperability_report.py --publisher executables/${{ matrix.publisher }}*shape_main_linux --subscriber executables/${{ matrix.subscriber }}*shape_main_linux --output-name junit_report-${{ matrix.publisher }}-${{ matrix.subscriber }}.xml
- name: Download timestamp
uses: actions/download-artifact@v4
with:
name: timestamp
- name: Upload report
uses: actions/upload-artifact@v4
with:
name: junit_report-${{ matrix.publisher }}-${{ matrix.subscriber }}
path: |
./junit_report-${{ matrix.publisher }}-${{ matrix.subscriber }}.xml
./timestamp
generate_report:
runs-on: ubuntu-latest
needs: run_tests
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
with:
pattern: junit_report-*
merge-multiple: true
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Install Python requirements
run: pip install --requirement requirements.txt
- name: merge reports
run: junitparser merge *.xml junit_interoperability_report.xml
- name: Generate xlsx report
run: python3 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: Download timestamp
uses: actions/download-artifact@v4
with:
name: timestamp
- name: Attach the report
if: always()
uses: actions/upload-artifact@v4
with:
name: interoperability_report_complete
path: |
./index.html
./junit_interoperability_report.xml
./interoperability_report.xlsx
./timestamp