Files
ModemManager/.gitlab-ci.yml
T
Aleksander Morgado 609ff75033 Revert ".gitlab-ci.yml: use meson instead of ninja where possible"
This reverts commit ad6772df34.

The 'compile' command in meson was included in v0.53.0. Let's keep on
recommending the use of ninja to build everywhere.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/844
2024-04-01 10:10:01 +00:00

301 lines
8.0 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
ninja -C build
ninja -C build install
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
ninja -C build
ninja -C build install
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
ninja -C build
ninja -C build install
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
- ninja -C build
- ninja -C build install
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
- ninja -C build
- ninja -C build install
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
- ninja -C build
- ninja -C build install
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
- ninja -C build
- ninja -C build test
- ninja -C build install
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
- ninja -C build
- ninja -C build install
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
- ninja -C build
- ninja -C build test
- ninja -C build install
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
- ninja -C build
- ninja -C build install
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
- ninja -C build
- ninja -C build install
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;
ninja -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;
ninja -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
- ninja -C build
- ninja -C build test
- ninja -C build install
- 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
- ninja -C build
- ninja -C build test
- ninja -C build install
- 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
- ninja -C build
- ninja -C build test
- ninja -C build install
- ninja -C build uninstall