e4db49d467
ci-templates had a bug where it failed to find the ready-built container images on the upstream repository due to invalid assumptions about the relationship between upstream repository and image registry. This resulted in the container image to be rebuilt, wasting valuable CPU cycles and storage space. Bump the included ci-templates template to include the fix for this. See https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/22. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1583>
181 lines
4.6 KiB
YAML
181 lines
4.6 KiB
YAML
include:
|
|
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/97556201e6e0e30554ee93249f5287be826be718/templates/fedora.yml'
|
|
|
|
stages:
|
|
- prepare
|
|
- review
|
|
- build
|
|
- test
|
|
- coverage
|
|
|
|
.mutter.fedora:33:
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: 33
|
|
FDO_DISTRIBUTION_TAG: '2020-11-16.0'
|
|
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 accountsservice-libs \
|
|
gnome-control-center gcovr libnma python3-gobject \
|
|
python3-dbusmock &&
|
|
|
|
# GNOME Shell
|
|
dnf builddep -y gnome-shell --setopt=install_weak_deps=False &&
|
|
dnf remove -y gnome-bluetooth-libs-devel &&
|
|
dnf remove -y --noautoremove mutter mutter-devel &&
|
|
|
|
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
|
|
<<: *only_default
|
|
|
|
check-commit-log:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .mutter.fedora:33
|
|
stage: review
|
|
needs: ["build-fedora-container"]
|
|
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
|
|
|
|
build-mutter:
|
|
extends:
|
|
- .fdo.distribution-image@fedora
|
|
- .mutter.fedora:33
|
|
stage: build
|
|
needs: ["check-commit-log"]
|
|
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: ["check-commit-log"]
|
|
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: ["check-commit-log"]
|
|
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
|