Run Interoperability Tests #5
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: 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: [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 |