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 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 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 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 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