Files
ModemManager/.gitlab-ci.yml
T
Yegor Yefremov ad6772df34 .gitlab-ci.yml: use meson instead of ninja where possible
Replace all ninja invocations but for the uninstall target with
meson.

meson build command can be omitted when executing test and install
targets that depend on compile target.
2024-02-27 15:11:48 +01:00

287 lines
7.7 KiB
YAML

include:
- project: freedesktop/ci-templates
ref: 290b79e0e78eab67a83766f4e9691be554fc4afd
file:
- templates/ubuntu.yml
stages:
- container prep
- build
.common_variables:
variables:
FDO_UPSTREAM_REPO: mobile-broadband/ModemManager
FDO_DISTRIBUTION_VERSION: '20.04'
FDO_DISTRIBUTION_TAG: '2023-01-03.1'
FDO_DISTRIBUTION_PACKAGES: ca-certificates git gcc meson ninja-build gawk
libgettextpo-dev libgirepository1.0-dev libglib2.0-dev
libgudev-1.0-dev python3-dbus python3-gi autopoint
xsltproc dbus gettext gtk-doc-tools libglib2.0-doc
gobject-introspection python-is-python3 libsystemd-dev
libpolkit-gobject-1-dev valac libdbus-1-dev
bash-completion udev policykit-1 help2man
LIBQMI_BRANCH: 'main'
LIBQRTR_BRANCH: 'main'
LIBMBIM_BRANCH: 'main'
build container:
extends:
- .fdo.container-build@ubuntu
- .common_variables
stage: container prep
only:
- main
- merge_requests
- tags
- schedules
before_script:
- export BUILD_MBIM=true
- export BUILD_QMI=true
- export BUILD_QRTR=true
.prepare_deps: &prepare_deps
- >
if [ "$BUILD_MBIM" == "true" ]; then
git clone --depth 1 --branch ${LIBMBIM_BRANCH} https://gitlab.freedesktop.org/mobile-broadband/libmbim.git
pushd libmbim
meson setup build --prefix=/usr -Dgtk_doc=false -Dintrospection=false -Dbash_completion=false
meson install -C build
popd
fi
- >
if [ "$BUILD_QRTR" == "true" ]; then
git clone --depth 1 --branch ${LIBQRTR_BRANCH} https://gitlab.freedesktop.org/mobile-broadband/libqrtr-glib.git
pushd libqrtr-glib
meson setup build --prefix=/usr -Dgtk_doc=false -Dintrospection=false
meson install -C build
popd
fi
- >
if [ "$BUILD_QMI" == "true" ]; then
git clone --depth 1 --branch ${LIBQMI_BRANCH} https://gitlab.freedesktop.org/mobile-broadband/libqmi.git
pushd libqmi
meson setup build --prefix=/usr -Dgtk_doc=false -Dintrospection=false -Dbash_completion=false -Dmbim_qmux=$BUILD_MBIM -Dqrtr=$BUILD_QRTR -Dcollection=basic
meson install -C build
popd
fi
build-no-qmi:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- export BUILD_QRTR=false
- export BUILD_QMI=false
- *prepare_deps
- meson setup build --prefix=/usr -Dwerror=true -Dgtk_doc=false -Dqmi=false -Dqrtr=false -Dmbim=true
- meson install -C build
build-qmi-qrtr-no-mbim:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- export BUILD_MBIM=false
- *prepare_deps
- meson setup build --prefix=/usr -Dwerror=true -Dgtk_doc=false -Dqmi=true -Dqrtr=true -Dmbim=false
- meson install -C build
build-qmi-no-qrtr-no-mbim:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- export BUILD_MBIM=false
- export BUILD_QRTR=false
- *prepare_deps
- meson setup build --prefix=/usr -Dwerror=true -Dgtk_doc=false -Dqmi=true -Dqrtr=false -Dmbim=false
- meson install -C build
build-no-qmi-no-mbim:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- export BUILD_MBIM=false
- export BUILD_QRTR=false
- export BUILD_QMI=false
- *prepare_deps
- meson setup build --prefix=/usr -Dwerror=true -Dgtk_doc=false -Dqmi=false -Dqrtr=false -Dmbim=false
- meson test -C build
- meson install -C build
build-no-qmi-no-mbim-no-tests:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- export BUILD_MBIM=false
- export BUILD_QRTR=false
- export BUILD_QMI=false
- *prepare_deps
- meson setup build --prefix=/usr -Dwerror=true -Dgtk_doc=false -Dqmi=false -Dqrtr=false -Dmbim=false -Dtests=false
- meson install -C build
build-no-deprecated:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- export BUILD_MBIM=false
- export BUILD_QRTR=false
- export BUILD_QMI=false
- *prepare_deps
- CFLAGS="-DMM_DISABLE_DEPRECATED" meson setup build --prefix=/usr -Dwerror=true -Dgtk_doc=false -Dqmi=false -Dqrtr=false -Dmbim=false
- meson test -C build
- meson install -C build
build-no-suspend-resume:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- *prepare_deps
- meson setup build --prefix=/usr -Dwerror=true -Dgtk_doc=false -Dsystemd_suspend_resume=false -Dpowerd_suspend_resume=false
- meson install -C build
build-suspend-resume-powerd:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- *prepare_deps
- meson setup build --prefix=/usr -Dgtk_doc=false -Dsystemd_suspend_resume=false -Dpowerd_suspend_resume=true
- meson install -C build
build-single-plugins:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- tags
- schedules
script:
- *prepare_deps
- for PLUGIN in $(grep "plugin_" meson_options.txt | awk -F"'" '{ print $2 }'); do
meson setup build_$PLUGIN --prefix=/usr -Dwerror=true -Dgtk_doc=false -Dintrospection=false -Dbash_completion=false -Dauto_features=disabled -D$PLUGIN=enabled;
meson compile -C build_$PLUGIN;
done
build-single-plugins-builtin:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- tags
- schedules
script:
- *prepare_deps
- for PLUGIN in $(grep "plugin_" meson_options.txt | awk -F"'" '{ print $2 }'); do
meson setup build_$PLUGIN --prefix=/usr -Dgtk_doc=false -Dintrospection=false -Dbash_completion=false -Dauto_features=disabled -D$PLUGIN=enabled -Dbuiltin_plugins=true;
meson compile -C build_$PLUGIN;
done
build-debug:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- *prepare_deps
- meson setup build --buildtype=debug --prefix=/usr -Dwerror=true -Dgtk_doc=true -Dpolkit=strict -Dsystemdsystemunitdir=/lib/systemd/system
- meson test -C build
- meson install -C build
- ninja -C build uninstall
build-release:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- *prepare_deps
- meson setup build --buildtype=release --prefix=/usr -Dwerror=true -Dgtk_doc=true -Dpolkit=strict -Dsystemdsystemunitdir=/lib/systemd/system
- meson test -C build
- meson install -C build
- ninja -C build uninstall
build-release-builtin:
stage: build
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- *prepare_deps
- meson setup build --buildtype=release --prefix=/usr -Dwerror=true -Dgtk_doc=true -Dpolkit=strict -Dsystemdsystemunitdir=/lib/systemd/system -Dbuiltin_plugins=true
- meson test -C build
- meson install -C build
- ninja -C build uninstall