mirror of
https://github.com/brl/mutter.git
synced 2024-11-12 17:27:03 -05:00
abd8032fe5
gnome-shell depends on gdm's client library at runtime, but the new pipeline-built image no longer provides it. Add it back, but built it from source instead of using the Fedora package, so we don't draw in all of gdm's runtime dependencies (which includes a full GNOME session including gnome-shell). Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1590>
216 lines
5.5 KiB
YAML
216 lines
5.5 KiB
YAML
include:
|
|
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/97556201e6e0e30554ee93249f5287be826be718/templates/fedora.yml"
|
|
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/97556201e6e0e30554ee93249f5287be826be718/templates/ci-fairy.yml"
|
|
|
|
stages:
|
|
- review
|
|
- prepare
|
|
- build
|
|
- test
|
|
- coverage
|
|
|
|
.mutter.fedora:33:
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: 33
|
|
FDO_DISTRIBUTION_TAG: '2020-11-20.1'
|
|
FDO_UPSTREAM_REPO: GNOME/mutter
|
|
FDO_DISTRIBUTION_EXEC: |
|
|
dnf install -y 'dnf-command(builddep)' &&
|
|
dnf builddep -y mutter --setopt=install_weak_deps=False &&
|
|
|
|
# For running unit tests
|
|
dnf install -y xorg-x11-server-Xvfb mesa-dri-drivers dbus dbus-x11 \
|
|
xorg-x11-server-Xvfb 'pkgconfig(accountsservice)' \
|
|
gnome-control-center gcovr libnma python3-gobject \
|
|
python3-dbusmock &&
|
|
|
|
# GNOME Shell
|
|
dnf builddep -y gnome-shell --setopt=install_weak_deps=False &&
|
|
dnf install -y 'pkgconfig(gtk4)' 'pkgconfig(vulkan)' &&
|
|
dnf remove -y gnome-bluetooth-libs-devel &&
|
|
dnf remove -y --noautoremove mutter mutter-devel &&
|
|
|
|
./.gitlab-ci/install-meson-project.sh \
|
|
-Dlibaudit=disabled \
|
|
-Dplymouth=disabled \
|
|
-Dselinux=disabled \
|
|
-Dxdmcp=disabled \
|
|
https://gitlab.gnome.org/GNOME/gdm.git \
|
|
3.38.0 . &&
|
|
|
|
dnf clean all
|
|
|
|
default:
|
|
# Cancel jobs if newer commits are pushed to the branch
|
|
interruptible: true
|
|
# Auto-retry jobs in case of infra failures
|
|
retry:
|
|
max: 1
|
|
when:
|
|
- 'runner_system_failure'
|
|
- 'stuck_or_timeout_failure'
|
|
- 'scheduler_failure'
|
|
- 'api_failure'
|
|
|
|
workflow:
|
|
rules:
|
|
- if: '$CI_MERGE_REQUEST_IID'
|
|
- if: '$CI_COMMIT_TAG'
|
|
- if: '$CI_COMMIT_BRANCH'
|
|
|
|
.only_default: &only_default
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
- if: '$CI_COMMIT_TAG'
|
|
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
|
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
|
|
- when: 'manual'
|
|
|
|
build-fedora-container:
|
|
extends:
|
|
- .fdo.container-build@fedora@x86_64
|
|
- .mutter.fedora:33
|
|
stage: prepare
|
|
needs:
|
|
- check-commit-log
|
|
- check-merge-request
|
|
<<: *only_default
|
|
|
|
check-commit-log:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
stage: review
|
|
variables:
|
|
GIT_DEPTH: "100"
|
|
script:
|
|
- ./.gitlab-ci/check-commit-log.sh
|
|
artifacts:
|
|
expire_in: 1 week
|
|
paths:
|
|
- commit-message-junit-report.xml
|
|
reports:
|
|
junit: commit-message-junit-report.xml
|
|
|
|
check-merge-request:
|
|
extends:
|
|
- .fdo.ci-fairy
|
|
stage: review
|
|
script:
|
|
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
|
then
|
|
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
|
|
else
|
|
echo "Not a merge request" ;
|
|
fi
|
|
artifacts:
|
|
expire_in: 1 week
|
|
paths:
|
|
- check-merge-request-report.xml
|
|
reports:
|
|
junit: check-merge-request-report.xml
|
|
|
|
build-mutter:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .mutter.fedora:33
|
|
stage: build
|
|
needs:
|
|
- build-fedora-container
|
|
script:
|
|
- meson . build -Dbuildtype=debugoptimized -Db_coverage=true -Degl_device=true -Dwayland_eglstream=true --werror --prefix /usr
|
|
- ninja -C build
|
|
- ninja -C build install
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- build
|
|
|
|
build-without-opengl-and-glx:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .mutter.fedora:33
|
|
stage: build
|
|
needs:
|
|
- build-fedora-container
|
|
script:
|
|
- meson . build -Dbuildtype=debugoptimized -Dopengl=false -Dglx=false -Degl_device=true -Dwayland_eglstream=true --werror --prefix /usr
|
|
- ninja -C build
|
|
- ninja -C build install
|
|
artifacts:
|
|
paths:
|
|
- build/meson-logs
|
|
|
|
build-without-native-backend-and-wayland:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .mutter.fedora:33
|
|
stage: build
|
|
needs:
|
|
- build-fedora-container
|
|
script:
|
|
- meson . build -Dbuildtype=debugoptimized -Dnative_backend=false -Dudev=false -Dwayland=false -Dcore_tests=false --werror --prefix /usr
|
|
- ninja -C build
|
|
- ninja -C build install
|
|
artifacts:
|
|
paths:
|
|
- build/meson-logs
|
|
|
|
test-mutter:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .mutter.fedora:33
|
|
stage: test
|
|
dependencies:
|
|
- build-mutter
|
|
needs:
|
|
- build-mutter
|
|
variables:
|
|
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
|
GSETTINGS_SCHEMA_DIR: "$CI_PROJECT_DIR/build/data"
|
|
G_SLICE: "always-malloc"
|
|
MALLOC_CHECK_: "3"
|
|
NO_AT_BRIDGE: "1"
|
|
script:
|
|
- bash -x ./.gitlab-ci/run-tests.sh
|
|
artifacts:
|
|
expire_in: 1 day
|
|
reports:
|
|
junit: "build/${CI_JOB_NAME}-report.xml"
|
|
name: "mutter-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
|
when: always
|
|
paths:
|
|
- build
|
|
|
|
test-mutter-coverage:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .mutter.fedora:33
|
|
stage: coverage
|
|
dependencies:
|
|
- test-mutter
|
|
needs:
|
|
- test-mutter
|
|
script:
|
|
- ninja -C build coverage
|
|
- cat build/meson-logs/coverage.txt
|
|
artifacts:
|
|
paths:
|
|
- build/meson-logs/coveragereport
|
|
coverage: '/^TOTAL.*\s+(\d+\%)$/'
|
|
|
|
can-build-gnome-shell:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .mutter.fedora:33
|
|
stage: test
|
|
dependencies:
|
|
- build-mutter
|
|
needs:
|
|
- build-mutter
|
|
before_script:
|
|
- meson install --no-rebuild -C build
|
|
script:
|
|
- .gitlab-ci/checkout-gnome-shell.sh
|
|
- meson gnome-shell gnome-shell/build --prefix /usr -Dman=false
|
|
- ninja -C gnome-shell/build install
|