Skip to content

MIDI tests, ASAN build+test #318

MIDI tests, ASAN build+test

MIDI tests, ASAN build+test #318

Workflow file for this run

name: Build and test
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
env:
BUILD_TYPE: Debug
permissions:
contents: read
checks: write
jobs:
build_whl:
runs-on: ubuntu-latest
container:
image: sandervocke/shoopdaloop_ubuntu_kinetic_build_base:latest
options: --user root --workdir /
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Build wheel
run: |
python3 -m build -w
cd dist && echo "WHEEL=$(ls *.whl)" >> $GITHUB_ENV
- name: Store wheel
uses: actions/upload-artifact@v3
with:
name: wheel
path: dist/${{ env.WHEEL }}
# Test the built wheel in an Ubuntu environment using PyPi packages
test_wheel_ubuntu_pypi:
needs: build_whl
runs-on: ubuntu-latest
container:
image: sandervocke/shoopdaloop_ubuntu_kinetic_run_base:latest
options: --user root --workdir /
steps:
- name: Retrieve wheel
uses: actions/download-artifact@v3
with:
name: wheel
path: ~/wheel
- name: Install wheel
run: |
python3 -m pip install ~/wheel/*.whl
echo "PKG_DIR=$(shoopdaloop --info | grep "Installed" | sed -r 's/Installed @ //g')" >> $GITHUB_ENV
- name: Report package install dir
run: |
echo "$PKG_DIR"
- name: Back-end tests
if: success() || failure() # always run even if the previous step fails
run: |
mkdir -p reports
${{ env.PKG_DIR }}/test_runner --reporter junit --out reports/backend_junit_results.xml
echo "Back-end test results file: $(ls -la reports/backend_junit_results.xml)"
- name: Python tests
if: success() || failure() # always run even if the previous step fails
run: |
mkdir -p reports
pytest ${{ env.PKG_DIR }} --junit-xml=reports/python_junit_results.xml
echo "Python test results file: $(ls -la reports/python_junit_results.xml)"
- name: QML tests
if: success() || failure() # always run even if the previous step fails
run: |
mkdir -p reports
QT_QPA_PLATFORM=vnc LD_LIBRARY_PATH=$(dirname $(find ${{ env.PKG_DIR }}/.. -name libQt6Core.so.6)) python3 ${{ env.PKG_DIR }}/run_qml_tests.py -o reports/qml_junit_results.xml,junitxml
echo "QML test results file: $(ls -la reports/qml_junit_results.xml)"
- name: App runs and closes gracefully
if: success() || failure() # always run even if the previous step fails
run: |
QT_QPA_PLATFORM=vnc EXPECT_STAY_OPEN=1 WAIT_MS_BEFORE_CLOSE=5000 N_ITERATIONS=10 WAIT_MS_BEFORE_KILL=10000 ${{ env.PKG_DIR }}/scripts/test_run_app.sh shoopdaloop -b dummy
- name: Publish Backend Test Report
uses: mikepenz/action-junit-report@v3
if: success() || failure() # always run even if the previous step fails
with:
report_paths: 'reports/backend_junit_results.xml'
detailed_summary: true
include_passed: true
check_name: 'backend test (ubuntu pypi)'
- name: Publish Python Test Report
uses: mikepenz/action-junit-report@v3
if: success() || failure() # always run even if the previous step fails
with:
report_paths: 'reports/python_junit_results.xml'
detailed_summary: true
include_passed: true
check_name: 'python test (ubuntu pypi)'
- name: Publish QML Test Report
uses: mikepenz/action-junit-report@v3
if: success() || failure() # always run even if the previous step fails
with:
report_paths: 'reports/qml_junit_results.xml'
detailed_summary: true
include_passed: true
check_name: 'qml test (ubuntu pypi)'
# # Test the built wheel in an Arch environment with dependencies pre-installed.
# test_wheel_arch_systempackages:
# needs: build_whl
# runs-on: ubuntu-latest
# container:
# image: sandervocke/shoopdaloop_run_arch:latest
# options: --user root --workdir /
# steps:
# - name: Retrieve wheel
# uses: actions/download-artifact@v3
# with:
# name: wheel
# path: ~/wheel
# - name: Install wheel
# run: |
# echo "::warning title=PACKAGING_ISSUE::Temporarily removed --no-deps on Arch because of broken python-numba"
# python3 -m pip install ~/wheel/*.whl --break-system-packages
# echo "PKG_DIR=$(python3 -m pip show shiboken6 | grep "Location:" | sed -r 's/Location: //g')" >> $GITHUB_ENV
# - name: Back-end tests
# if: success() || failure() # always run even if the previous step fails
# run: |
# mkdir -p reports
# ${{ env.PKG_DIR }}/shoopdaloop/test_runner --reporter junit --out reports/backend_junit_results.xml
# echo "Back-end test results file: $(ls -la reports/backend_junit_results.xml)"
# - name: Python tests
# if: success() || failure() # always run even if the previous step fails
# run: |
# mkdir -p reports
# pytest ${{ env.PKG_DIR }}/shoopdaloop --junit-xml=reports/python_junit_results.xml
# echo "Python test results file: $(ls -la reports/python_junit_results.xml)"
# - name: QML tests
# if: success() || failure() # always run even if the previous step fails
# run: |
# mkdir -p reports
# QT_QPA_PLATFORM=vnc ${{ env.PKG_DIR }}/shoopdaloop/run_qml_tests.py -o reports/qml_junit_results.xml,junitxml
# echo "QML test results file: $(ls -la reports/qml_junit_results.xml)"
# - name: App runs and closes gracefully
# if: success() || failure() # always run even if the previous step fails
# run: |
# QT_QPA_PLATFORM=vnc EXPECT_STAY_OPEN=1 WAIT_MS_BEFORE_CLOSE=5000 N_ITERATIONS=10 WAIT_MS_BEFORE_KILL=10000 ${{ env.PKG_DIR }}/shoopdaloop/scripts/test_run_app.sh shoopdaloop
# - name: Publish Backend Test Report
# uses: mikepenz/action-junit-report@v3
# if: success() || failure() # always run even if the previous step fails
# with:
# report_paths: 'reports/backend_junit_results.xml'
# detailed_summary: true
# include_passed: true
# check_name: 'backend test (arch system)'
# - name: Publish Python Test Report
# uses: mikepenz/action-junit-report@v3
# if: success() || failure() # always run even if the previous step fails
# with:
# report_paths: 'reports/python_junit_results.xml'
# detailed_summary: true
# include_passed: true
# check_name: 'python test (arch system)'
# - name: Publish QML Test Report
# uses: mikepenz/action-junit-report@v3
# if: success() || failure() # always run even if the previous step fails
# with:
# report_paths: 'reports/qml_junit_results.xml'
# detailed_summary: true
# include_passed: true
# check_name: 'qml test (arch system)'
# # Test the built wheel in an Ubuntu environment with dependencies pre-installed.
# test_wheel_ubuntu_systempackages:
# needs: build_whl
# runs-on: ubuntu-latest
# container:
# image: sandervocke/shoopdaloop_run_ubuntu:latest
# options: --user root --workdir /
# steps:
# - name: Retrieve wheel
# uses: actions/download-artifact@v3
# with:
# name: wheel
# path: ~/wheel
# - name: Install wheel
# run: |
# python3 -m pip install --no-deps --break-system-packages ~/wheel/*.whl
# echo "PKG_DIR=$(python3 -m pip show shiboken6 | grep "Location:" | sed -r 's/Location: //g')" >> $GITHUB_ENV
# - name: Back-end tests
# if: success() || failure() # always run even if the previous step fails
# run: |
# mkdir -p reports
# ${{ env.PKG_DIR }}/shoopdaloop/test_runner --reporter junit --out reports/backend_junit_results.xml
# echo "Back-end test results file: $(ls -la reports/backend_junit_results.xml)"
# - name: Python tests
# if: success() || failure() # always run even if the previous step fails
# run: |
# mkdir -p reports
# pytest ${{ env.PKG_DIR }}/shoopdaloop --junit-xml=reports/python_junit_results.xml
# echo "Python test results file: $(ls -la reports/python_junit_results.xml)"
# - name: QML tests
# if: success() || failure() # always run even if the previous step fails
# run: |
# mkdir -p reports
# QT_QPA_PLATFORM=vnc ${{ env.PKG_DIR }}/shoopdaloop/run_qml_tests.py -o reports/qml_junit_results.xml,junitxml
# echo "QML test results file: $(ls -la reports/qml_junit_results.xml)"
# - name: App runs and closes gracefully
# if: success() || failure() # always run even if the previous step fails
# run: |
# QT_QPA_PLATFORM=vnc EXPECT_STAY_OPEN=1 WAIT_MS_BEFORE_CLOSE=5000 N_ITERATIONS=10 WAIT_MS_BEFORE_KILL=10000 ${{ env.PKG_DIR }}/shoopdaloop/scripts/test_run_app.sh shoopdaloop
# - name: Publish Backend Test Report
# uses: mikepenz/action-junit-report@v3
# if: success() || failure() # always run even if the previous step fails
# with:
# report_paths: 'reports/backend_junit_results.xml'
# detailed_summary: true
# include_passed: true
# check_name: 'backend test (ubuntu system)'
# - name: Publish Python Test Report
# uses: mikepenz/action-junit-report@v3
# if: success() || failure() # always run even if the previous step fails
# with:
# report_paths: 'reports/python_junit_results.xml'
# detailed_summary: true
# include_passed: true
# check_name: 'python test (ubuntu system)'
# - name: Publish QML Test Report
# uses: mikepenz/action-junit-report@v3
# if: success() || failure() # always run even if the previous step fails
# with:
# report_paths: 'reports/qml_junit_results.xml'
# detailed_summary: true
# include_passed: true
# check_name: 'qml test (ubuntu system)'