MIDI tests, ASAN build+test #318
Workflow file for this run
This file contains 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: 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)' | |