132 lines
3.8 KiB
YAML
132 lines
3.8 KiB
YAML
# 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}"
|