ci: check if all plugins are installed with meson

Will prevent us to forget adding new plugins to meson.
This commit is contained in:
Guillaume Desmottes 2020-11-18 15:53:01 +01:00
parent b664055e3c
commit d921ee2245
2 changed files with 36 additions and 2 deletions

View file

@ -153,8 +153,9 @@ test nightly:
meson shared:
extends: .img-stable
script:
- meson build --default-library=shared
- ninja -C build
- meson build --default-library=shared --prefix=$(pwd)/install
- ninja -C build install
- ./ci/check-plugins-installed.py install
rules:
- if: '$UPDATE_IMG == null || $UPDATE_IMG == "stable"'

33
ci/check-plugins-installed.py Executable file
View file

@ -0,0 +1,33 @@
#!/usr/bin/env python3
# Check that all available plugins have been build and installed in the prefix
# directory passed in argument.
import sys
import os
import glob
DIRS = ['audio', 'generic', 'net', 'text', 'utils', 'video']
OVERRIDE = {'wrap': 'textwrap', 'flavors': 'rsflv'}
prefix = sys.argv[1]
plugins = glob.glob(os.path.join(
prefix, '**', 'gstreamer-1.0', '*.so'), recursive=True)
plugins = list(map(os.path.basename, plugins))
print("Built plugins:", plugins)
success = True
for d in DIRS:
for name in os.listdir(d):
name = OVERRIDE.get(name, name)
plugin = "libgst{}.so".format(name)
# Some plugins are prefixed with 'rs'
rs_plugin = "libgstrs{}.so".format(name)
if plugin not in plugins and rs_plugin not in plugins:
print(name, "missing in", prefix)
success = False
if not success:
sys.exit(1)