Skip to content

tests Linux

tests Linux #1674

Workflow file for this run

# 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