tests Linux #1672
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
# Warning: this name must stay in sync with the badges referenced in the README | |
name: 'tests Linux' | |
on: | |
push: | |
branches: | |
- 'main' | |
pull_request: | |
schedule: | |
- cron: "0 0 * * 6" # Run every Saturday at midnight | |
jobs: | |
linux: | |
runs-on: ubuntu-24.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- backend: "opengl" | |
custom_env: "" | |
custom_args: --suite opengl | |
- backend: "opengles" | |
custom_env: "" | |
custom_args: --suite opengles | |
- backend: "opengles 3.0" | |
custom_env: MESA_GLES_VERSION_OVERRIDE=3.0 | |
custom_args: --suite opengles | |
- backend: "vulkan" | |
custom_env: "" | |
custom_args: --suite vulkan | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt -y update | |
# | |
# python3-venv is required to prevent the following issue: | |
# The virtual environment was not created successfully because ensurepip is not | |
# available. On Debian/Ubuntu systems, you need to install the python3-venv | |
# package using the following command. | |
# | |
# apt-get install python3-venv | |
# | |
sudo apt -y install libsdl2-dev libva-dev python3-venv valgrind spirv-tools glslang-dev libvulkan-dev mesa-vulkan-drivers vulkan-validationlayers | |
sudo apt -y install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libavdevice-dev libavfilter-dev libswscale-dev libswresample-dev libpostproc-dev | |
sudo apt -y install libfreetype-dev libharfbuzz-dev libfribidi-dev | |
sudo apt -y install graphviz | |
- name: Build | |
run: | | |
./configure.py --buildtype debug --debug-opts gl vk gpu_capture | |
make | |
- name: Python import and dylib runtime test | |
run: | | |
. venv/bin/ngli-activate | |
python -c "import pynopegl, pynopegl_utils" | |
ngl-python -h | |
- name: Native lib memory check | |
run: | | |
. venv/bin/ngli-activate | |
meson test -C builddir/libnopegl --wrap 'valgrind --leak-check=full --show-leak-kinds=all --error-exitcode=1' | |
- name: Build HTML doc | |
run: | | |
. venv/bin/ngli-activate | |
make htmldoc | |
- name: Run tests ${{matrix.backend}} | |
run: | | |
${{matrix.custom_env}} make tests-setup | |
. venv/bin/ngli-activate | |
${{matrix.custom_env}} meson test -C builddir/tests --timeout-multiplier=3 ${{matrix.custom_args}} | |
- name: Upload Logs | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux logs ${{matrix.backend}} | |
path: builddir/tests/meson-logs/testlog.txt |