gplugin/gplugin

Add runtime dependencies to tests

7 months ago, Elliott Sales de Andrade
b493e1ee4fbd
Add runtime dependencies to tests

`meson test` only builds what's required to run a test. If you start with a clean build directory (or run `ninja clean`), then about half the tests fail because the required plugins or even the loaders themselves have not yet been built.

This adds the proper dependencies so that all requirements are built before testing.

The name of the macro used to pass through the build directory has also been made consistent, so that it could be automatically generated.

Testing Done:
`ninja clean` and then `meson test`, and all tests now pass.
Also `ninja clean` and `meson test "test name"` for all test names, and each individual test passes.

Reviewed at https://reviews.imfreedom.org/r/2662/
environment:
- BUILD_NUMBER
- REPOSITORY=gplugin/builders
- REGISTRY=docker.io
- REGISTRY_USERNAME
- REGISTRY_PASSWORD
- DOCS_BUILD_IMAGE=${REGISTRY}/${REPOSITORY}:debian-bookworm-amd64
tasks:
clean:
type: convey/clean
files:
- alpine-edge-amd64
- debian-bookworm-amd64
- debian-bookworm-arm64
- debian-bookworm-armhf
- dist
- fedora-36-amd64
- fedora-rawhide-amd64
- i18n
- opensuse-tumbleweed-amd64
- scanbuild
- ubuntu-jammy-amd64
- valgrind
- gplugin-docs
- gplugin-docs.zip
- gplugin-gtk-docs
- gplugin-gtk4-docs
- gplugin-gtk4-docs.zip
import:
type: docker/import
files: .:.
import-artifacts:
type: docker/import
files: ${DISTRO}-${VERSION}-${ARCH}
build:
type: docker/run
image: ${REGISTRY}/${REPOSITORY}:${TARGET}
export:
type: docker/export
files: ${TARGET}
login:
type: docker/login
server: ${REGISTRY}
username: ${REGISTRY_USERNAME}
password: ${REGISTRY_PASSWORD}
logout:
type: docker/logout
server: ${REGISTRY}
docs-clean:
type: convey/clean
files:
- gplugin-docs
- gplugin-docs.zip
- gplugin-gtk-docs
- gplugin-gtk4-docs
- gplugin-gtk4-docs.zip
docs-build:
type: docker/run
image: ${DOCS_BUILD_IMAGE}
workdir: ${CONVEY_WORKSPACE}
shell: /bin/bash
script:
- set -ex
- meson setup build-docs -Ddoc=true
- ninja -C build-docs doc
- pushd build-docs/gplugin/reference
- zip -9r gplugin-docs.zip gplugin
- popd
- pushd build-docs/gplugin-gtk4/reference
- zip -9r gplugin-gtk4-docs.zip gplugin-gtk4
docs-export:
type: docker/export
files:
- build-docs/gplugin/reference/gplugin-docs.zip:gplugin-docs.zip
- build-docs/gplugin-gtk4/reference/gplugin-gtk4-docs.zip:gplugin-gtk4-docs.zip
plans:
clean:
stages:
- tasks: clean
alpine-edge-amd64:
environment: TARGET=alpine-edge-amd64
stages:
- tasks: [import, build]
- tasks: [export]
run: always
clang-format:
environment: TARGET=clang-format
stages:
- tasks: [import, build]
debian-bookworm-amd64:
environment: TARGET=debian-bookworm-amd64
stages:
- tasks: [import, build]
- tasks: [export]
run: always
debian-bookworm-arm64:
environment: TARGET=debian-bookworm-arm64
stages:
- tasks: [import, build]
- tasks: [export]
run: always
debian-bookworm-armhf:
environment: TARGET=debian-bookworm-armhf
stages:
- tasks: [import, build]
- tasks: [export]
run: always
dist:
environment: TARGET=dist
stages:
- tasks: [import, build]
- tasks: [export]
run: always
docs:
stages:
- tasks: [docs-clean, import, docs-build, docs-export]
fedora-36-amd64:
environment: TARGET=fedora-36-amd64
stages:
- tasks: [import, build]
- tasks: [export]
run: always
fedora-rawhide-amd64:
environment: TARGET=fedora-rawhide-amd64
stages:
- tasks: [import, build]
- tasks: [export]
run: always
i18n:
environment: TARGET=i18n
stages:
- tasks: [import, build]
- tasks: [export]
run: always
opensuse-tumbleweed-amd64:
environment: TARGET=opensuse-tumbleweed-amd64
stages:
- tasks: [import, build]
- tasks: [export]
run: always
scanbuild:
environment: TARGET=scanbuild
stages:
- tasks: [import, build]
- tasks: [export]
run: always
simple:
environment: TARGET=simple
stages:
- tasks: [import, build]
- tasks: [export]
run: always
ubuntu-jammy-amd64:
environment: TARGET=ubuntu-jammy-amd64
stages:
- tasks: [import, build]
- tasks: [export]
run: always
valgrind:
environment: TARGET=valgrind
stages:
- tasks: [import, build]
- tasks: [export]
run: always
meta-plans:
all:
plans:
- alpine-edge-amd64
- debian-bookworm-amd64
- dist
- fedora-34-amd64
- fedora-rawhide-amd64
- opensuse-tumbleweed-amd64
- ubuntu-jammy-amd64
tools:
plans:
- clang-format
- i18n
- scanbuild
- valgrind
- simple
qemu-user-static:
plans:
- debian-bookworm-arm64
- debian-bookworm-armhf