# Test whether building gnome-system-monitor works on fedora and ubuntu. # Tests against the latest libtop master version. stages: - check - build - release variables: FEDORA_LIBGTOP_DEPENDENCIES: # packages required to build libgtop on fedora. gettext-devel gobject-introspection-devel gtk-doc texinfo-tex FEDORA_DEPENDENCIES: # packages required to build the system monitor on fedora. appstream catch catch-devel gcc-c++ git glibmm2.68-devel gtkmm4.0-devel libadwaita-devel itstool librsvg2-devel libxml2-devel meson UBUNTU_LIBGTOP_DEPENDENCIES: # packages required to build libgtop on ubuntu. automake autopoint gettext gtk-doc-tools libgirepository1.0-dev libtool make texinfo texlive UBUNTU_DEPENDENCIES: # packages required to build the system monitor on ubuntu. appstream-util catch2 git itstool libglibmm-2.68-dev libgtkmm-4.0-dev libadwaita-1-dev librsvg2-dev libsystemd-dev libxml2-dev meson MESON_BUILD_DIR: _build TARBALL_ARTIFACT_PATH: "${MESON_BUILD_DIR}/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz" include: - component: gitlab.gnome.org/GNOME/citemplates/release-service@master inputs: job-stage: release dist-job-name: "build-release-tarball" tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}" # Based on https://gitlab.gnome.org/GNOME/mutter/-/blob/main/.gitlab-ci.yml check-code-style: image: fedora:latest stage: check allow_failure: true before_script: - dnf install -y python3 git patch uncrustify script: - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]]; then git remote add target $CI_MERGE_REQUEST_PROJECT_URL.git; git fetch target $CI_MERGE_REQUEST_TARGET_BRANCH_NAME; export common_parent_sha=$(diff --old-line-format='' --new-line-format='' <(git rev-list --first-parent "target/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME") <(git rev-list --first-parent HEAD) | head -1); ./check-style.py --dry-run --sha $common_parent_sha; else echo "Not a merge request"; fi build-fedora: image: fedora:rawhide stage: build except: - tags before_script: - dnf update -y --nogpgcheck - dnf install -y --nogpgcheck $FEDORA_LIBGTOP_DEPENDENCIES $FEDORA_DEPENDENCIES script: - git clone https://gitlab.gnome.org/gnome/libgtop.git/ # build and install libgtop - cd libgtop - mkdir "${MESON_BUILD_DIR}" - cd "${MESON_BUILD_DIR}" - ../autogen.sh --disable-dependency-tracking --prefix=/usr --libdir=/usr/lib64 - make - make install - cd ../.. # build and install gnome-system-monitor - meson "${MESON_BUILD_DIR}" -Dsystemd=false - ninja -C "${MESON_BUILD_DIR}" - ninja -C "${MESON_BUILD_DIR}" install build-ubuntu: image: ubuntu:oracular stage: build except: - tags before_script: - apt-get update - DEBIAN_FRONTEND=noninteractive apt-get install -y $UBUNTU_LIBGTOP_DEPENDENCIES $UBUNTU_DEPENDENCIES script: - git clone https://gitlab.gnome.org/gnome/libgtop.git/ # build and install libgtop - cd libgtop - mkdir "${MESON_BUILD_DIR}" - cd "${MESON_BUILD_DIR}" - ../autogen.sh - make - make install - cd ../.. # build and install gnome-system-monitor - meson "${MESON_BUILD_DIR}" - ninja -C "${MESON_BUILD_DIR}" - ninja -C "${MESON_BUILD_DIR}" install build-release-tarball: image: fedora:latest stage: build before_script: - dnf update -y --nogpgcheck - dnf install -y --nogpgcheck $FEDORA_DEPENDENCIES gettext libgtop2-devel systemd-devel script: - meson setup "${MESON_BUILD_DIR}" - meson dist -C "${MESON_BUILD_DIR}" --include-subprojects artifacts: name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}" when: always paths: - "${TARBALL_ARTIFACT_PATH}"