Skip to content

angelrti is testing out GitHub Actions 🚀 #24

angelrti is testing out GitHub Actions 🚀

angelrti is testing out GitHub Actions 🚀 #24

name: 1 - Run Interoperability Tests
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
env:
# comma separated list of tests to skip
SKIP_EXEC: "connext_dds-6.1.2_shape_main_linux"
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: Attach the report
if: always()
uses: actions/upload-artifact@v4
with:
name: timestamp
path: |
./timestamp
connext_dds:
runs-on: ubuntu-latest
needs: generate_timestamp
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: timestamp
- name: Downloads assets
uses: robinraju/release-downloader@v1.10
with:
latest: true
fileName: "*"
- name: Skip tests
run: |
echo "Skipping the following tests: $SKIP_EXEC"
clean_list="${SKIP_EXEC//[[:space:]]/}"
for name in ${clean_list//,/ }; do
rm -f "$name.zip"
done
- name: Unzip
run: unzip '*.zip' -d executables
- name: Setting up environment
run: |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- name: Run Interoperability script
# The test descriptions used are the generated for the last execution.
# This shouldn't be an issue because all test are run always
run: |
source .venv/bin/activate
cd executables
for publisher in connext_dds-* ; do \
if [ -e "$publisher" ]; then \
for subscriber in * ; do \
extra_args=""; \
if [[ "${subscriber,,}" == *opendds* ]]; then \
extra_args="--periodic-announcements 5000"; \
fi; \
echo "Testing Publisher $publisher --- Subscriber $subscriber"; \
python3 ./../interoperability_report.py -P ./$publisher -S ./$subscriber -o=./../junit_interoperability_report.xml $extra_args; \
if [ -d "./OpenDDS-durable-data-dir" ]; then \
echo Deleting OpenDDS-durable-data-dir; \
rm -rf ./OpenDDS-durable-data-dir; \
fi; \
done \
fi; \
done
- name: Attach the report
if: always()
uses: actions/upload-artifact@v4
with:
name: interoperability_report_connext_dds
path: |
./junit_interoperability_report.xml
./timestamp
dust_dds:
runs-on: ubuntu-latest
needs: connext_dds
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: interoperability_report_connext_dds
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Downloads assets
uses: robinraju/release-downloader@v1.10
with:
latest: true
fileName: "*"
- name: Skip tests
run: |
echo "Skipping the following tests: $SKIP_EXEC"
clean_list="${SKIP_EXEC//[[:space:]]/}"
for name in ${clean_list//,/ }; do
rm -f "$name.zip"
done
- name: Unzip
run: unzip '*.zip' -d executables
- name: Setting up environment
run: |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- name: Run Interoperability script
# The test descriptions used are the generated for the last execution.
# This shouldn't be an issue because all test are run always
run: |
source .venv/bin/activate
cd executables
for publisher in dust_dds-* ; do \
if [ -e "$publisher" ]; then \
for subscriber in * ; do \
echo "Testing Publisher $publisher --- Subscriber $subscriber"; \
python3 ./../interoperability_report.py -P ./$publisher -S ./$subscriber -o=./../junit_interoperability_report.xml; \
if [ -d "./OpenDDS-durable-data-dir" ]; then \
echo Deleting OpenDDS-durable-data-dir; \
rm -rf ./OpenDDS-durable-data-dir; \
fi; \
done \
fi; \
done
- name: Attach the report
if: always()
uses: actions/upload-artifact@v4
with:
name: interoperability_report_dust_dds
path: |
./junit_interoperability_report.xml
./timestamp
eprosima_fastdds:
runs-on: ubuntu-latest
needs: dust_dds
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: interoperability_report_dust_dds
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Downloads assets
uses: robinraju/release-downloader@v1.10
with:
latest: true
fileName: "*"
- name: Skip tests
run: |
echo "Skipping the following tests: $SKIP_EXEC"
clean_list="${SKIP_EXEC//[[:space:]]/}"
for name in ${clean_list//,/ }; do
rm -f "$name.zip"
done
- name: Unzip
run: unzip '*.zip' -d executables
- name: Setting up environment
run: |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- name: Run Interoperability script
# The test descriptions used are the generated for the last execution.
# This shouldn't be an issue because all test are run always
run: |
source .venv/bin/activate
cd executables
for publisher in eprosima_fastdds-* ; do \
if [ -e "$publisher" ]; then \
for subscriber in * ; do \
echo "Testing Publisher $publisher --- Subscriber $subscriber"; \
python3 ./../interoperability_report.py -P ./$publisher -S ./$subscriber -o=./../junit_interoperability_report.xml; \
if [ -d "./OpenDDS-durable-data-dir" ]; then \
echo Deleting OpenDDS-durable-data-dir; \
rm -rf ./OpenDDS-durable-data-dir; \
fi; \
done \
fi; \
done
- name: Attach the report
if: always()
uses: actions/upload-artifact@v4
with:
name: interoperability_report_eprosima_fastdds
path: |
./junit_interoperability_report.xml
./timestamp
intercom_dds:
runs-on: ubuntu-latest
needs: eprosima_fastdds
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: interoperability_report_eprosima_fastdds
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Downloads assets
uses: robinraju/release-downloader@v1.10
with:
latest: true
fileName: "*"
- name: Skip tests
run: |
echo "Skipping the following tests: $SKIP_EXEC"
clean_list="${SKIP_EXEC//[[:space:]]/}"
for name in ${clean_list//,/ }; do
rm -f "$name.zip"
done
- name: Unzip
run: unzip '*.zip' -d executables
- name: Setting up environment
run: |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- name: Run Interoperability script
# The test descriptions used are the generated for the last execution.
# This shouldn't be an issue because all test are run always
run: |
source .venv/bin/activate
cd executables
for publisher in intercom_dds-* ; do \
if [ -e "$publisher" ]; then \
for subscriber in * ; do \
echo "Testing Publisher $publisher --- Subscriber $subscriber"; \
python3 ./../interoperability_report.py -P ./$publisher -S ./$subscriber -o=./../junit_interoperability_report.xml; \
if [ -d "./OpenDDS-durable-data-dir" ]; then \
echo Deleting OpenDDS-durable-data-dir; \
rm -rf ./OpenDDS-durable-data-dir; \
fi; \
done \
fi; \
done
- name: Attach the report
if: always()
uses: actions/upload-artifact@v4
with:
name: interoperability_report_intercom_dds
path: |
./junit_interoperability_report.xml
./timestamp
opendds:
runs-on: ubuntu-latest
needs: intercom_dds
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: interoperability_report_intercom_dds
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Downloads assets
uses: robinraju/release-downloader@v1.10
with:
latest: true
fileName: "*"
- name: Skip tests
run: |
echo "Skipping the following tests: $SKIP_EXEC"
clean_list="${SKIP_EXEC//[[:space:]]/}"
for name in ${clean_list//,/ }; do
rm -f "$name.zip"
done
- name: Unzip
run: unzip '*.zip' -d executables
- name: Setting up environment
run: |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- name: Run Interoperability script
# The test descriptions used are the generated for the last execution.
# This shouldn't be an issue because all test are run always
run: |
source .venv/bin/activate
cd executables
for publisher in opendds-* ; do \
if [ -e "$publisher" ]; then \
for subscriber in * ; do \
echo "Testing Publisher $publisher --- Subscriber $subscriber"; \
python3 ./../interoperability_report.py -P ./$publisher -S ./$subscriber -o=./../junit_interoperability_report.xml; \
if [ -d "./OpenDDS-durable-data-dir" ]; then \
echo Deleting OpenDDS-durable-data-dir; \
rm -rf ./OpenDDS-durable-data-dir; \
fi; \
done \
fi; \
done
- name: Attach the report
if: always()
uses: actions/upload-artifact@v4
with:
name: interoperability_report_opendds
path: |
./junit_interoperability_report.xml
./timestamp
toc_coredx_dds:
runs-on: ubuntu-latest
needs: opendds
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: interoperability_report_opendds
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Downloads assets
uses: robinraju/release-downloader@v1.10
with:
latest: true
fileName: "*"
- name: Skip tests
run: |
echo "Skipping the following tests: $SKIP_EXEC"
clean_list="${SKIP_EXEC//[[:space:]]/}"
for name in ${clean_list//,/ }; do
rm -f "$name.zip"
done
- name: Unzip
run: unzip '*.zip' -d executables
- name: Setting up environment
run: |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- name: Run Interoperability script
# The test descriptions used are the generated for the last execution.
# This shouldn't be an issue because all test are run always
run: |
source .venv/bin/activate
cd executables
for publisher in toc_coredx_dds-* ; do \
if [ -e "$publisher" ]; then \
for subscriber in * ; do \
echo "Testing Publisher $publisher --- Subscriber $subscriber"; \
python3 ./../interoperability_report.py -P ./$publisher -S ./$subscriber -o=./../junit_interoperability_report.xml; \
if [ -d "./OpenDDS-durable-data-dir" ]; then \
echo Deleting OpenDDS-durable-data-dir; \
rm -rf ./OpenDDS-durable-data-dir; \
fi; \
done \
fi; \
done
- name: Attach the report
if: always()
uses: actions/upload-artifact@v4
with:
name: interoperability_report_toc_coredx_dds
path: |
./junit_interoperability_report.xml
./timestamp
generate_report:
runs-on: ubuntu-latest
needs: toc_coredx_dds
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: interoperability_report_toc_coredx_dds
- uses: actions/setup-python@v5
with:
python-version: '3.11.4'
- name: Setting up environment
run: |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- name: Generate xlsx report
run: |
source .venv/bin/activate
python3 generate_xlsx_report.py --input junit_interoperability_report.xml --output interoperability_report.xlsx
- name: XUnit Viewer
id: xunit-viewer
uses: AutoModality/action-xunit-viewer@v1
with:
results: ./junit_interoperability_report.xml
- 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