forked from AuroraMiddleware/gtk
0e5dac8c25
Yielding option means that if pango is built as a subproject, it will take the value of that option from the parent project (e.g. gst-build). For that to work it must be of the same type, which is "feature" instead of "boolean" in all GStreamer modules.
261 lines
6.3 KiB
YAML
261 lines
6.3 KiB
YAML
stages:
|
|
- build
|
|
- analysis
|
|
- docs
|
|
- flatpak
|
|
- deploy
|
|
|
|
.cache-paths: &cache-paths
|
|
paths:
|
|
- _ccache/
|
|
- subprojects/gdk-pixbuf/
|
|
- subprojects/glib/
|
|
- subprojects/graphene/
|
|
- subprojects/libepoxy/
|
|
- subprojects/pango/
|
|
|
|
# Common variables
|
|
variables:
|
|
COMMON_MESON_FLAGS: "--fatal-meson-warnings -Dgtk:werror=true"
|
|
BACKEND_FLAGS: "-Dx11-backend=true -Dwayland-backend=true -Dbroadway-backend=true"
|
|
FEATURE_FLAGS: "-Dvulkan=enabled -Dcloudproviders=enabled"
|
|
MESON_TEST_TIMEOUT_MULTIPLIER: 3
|
|
FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v23"
|
|
FLATPAK_IMAGE: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master"
|
|
DOCS_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora-docs:v19"
|
|
|
|
.only-default:
|
|
only:
|
|
- branches
|
|
except:
|
|
- tags
|
|
|
|
style-check-diff:
|
|
extends: .only-default
|
|
image: $FEDORA_IMAGE
|
|
stage: .pre
|
|
allow_failure: true
|
|
script:
|
|
- .gitlab-ci/run-style-check-diff.sh
|
|
|
|
.build-fedora-default:
|
|
image: $FEDORA_IMAGE
|
|
artifacts:
|
|
when: always
|
|
reports:
|
|
junit:
|
|
- "${CI_PROJECT_DIR}/_build/report-x11.xml"
|
|
- "${CI_PROJECT_DIR}/_build/report-wayland.xml"
|
|
- "${CI_PROJECT_DIR}/_build/report-broadway.xml"
|
|
name: "gtk-${CI_COMMIT_REF_NAME}"
|
|
paths:
|
|
- "${CI_PROJECT_DIR}/_build/meson-logs"
|
|
- "${CI_PROJECT_DIR}/_build/report*.xml"
|
|
- "${CI_PROJECT_DIR}/_build/report*.html"
|
|
- "${CI_PROJECT_DIR}/_build/testsuite/reftests/output/*/*.png"
|
|
- "${CI_PROJECT_DIR}/_build/testsuite/gsk/compare/*/*/*.png"
|
|
- "${CI_PROJECT_DIR}/_build/testsuite/css/output/*/*.syscap"
|
|
cache:
|
|
key: "$CI_JOB_NAME"
|
|
paths:
|
|
- _ccache/
|
|
- subprojects/gdk-pixbuf/
|
|
- subprojects/glib/
|
|
- subprojects/graphene/
|
|
- subprojects/libepoxy/
|
|
- subprojects/pango/
|
|
|
|
fedora-x86_64:
|
|
extends: .build-fedora-default
|
|
stage: build
|
|
needs: []
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both"
|
|
script:
|
|
- meson subprojects update
|
|
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS}
|
|
-Dsysprof=enabled
|
|
_build
|
|
- ninja -C _build
|
|
- .gitlab-ci/run-tests.sh _build x11
|
|
- .gitlab-ci/run-tests.sh _build wayland
|
|
- .gitlab-ci/run-tests.sh _build broadway
|
|
|
|
release-build:
|
|
extends: .build-fedora-default
|
|
stage: build
|
|
needs: []
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--buildtype=release"
|
|
script:
|
|
- meson subprojects update
|
|
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS}
|
|
_build
|
|
- ninja -C _build
|
|
- .gitlab-ci/run-tests.sh _build x11
|
|
|
|
installed-tests:
|
|
extends: .build-fedora-default
|
|
stage: build
|
|
needs: []
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--prefix=/usr --libdir=/usr/lib64 -Dinstall-tests=true"
|
|
script:
|
|
- meson subprojects update
|
|
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS}
|
|
_build
|
|
- ninja -C _build
|
|
- sudo ninja -C _build install
|
|
- dbus-run-session xvfb-run -a -s "-screen 0 1024x768x24"
|
|
gnome-desktop-testing-runner
|
|
--report-directory=_build/installed-tests-report/failed/
|
|
--parallel=0
|
|
gtk-4.0
|
|
artifacts:
|
|
paths:
|
|
- "_build/installed-tests-report/"
|
|
|
|
|
|
.mingw-defaults:
|
|
stage: build
|
|
tags:
|
|
- win32-ps
|
|
script:
|
|
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
|
|
- C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
|
|
cache:
|
|
key: "$CI_JOB_NAME"
|
|
paths:
|
|
- _ccache/
|
|
- subprojects/gdk-pixbuf/
|
|
- subprojects/glib/
|
|
- subprojects/graphene/
|
|
- subprojects/libepoxy/
|
|
- subprojects/pango/
|
|
|
|
msys2-mingw64:
|
|
extends: .mingw-defaults
|
|
needs: []
|
|
variables:
|
|
MSYSTEM: "MINGW64"
|
|
CHERE_INVOKING: "yes"
|
|
|
|
.flatpak-defaults:
|
|
image: $FLATPAK_IMAGE
|
|
stage: flatpak
|
|
allow_failure: true
|
|
tags:
|
|
- flatpak
|
|
artifacts:
|
|
paths:
|
|
- "${APPID}-dev.flatpak"
|
|
expire_in: 1 day
|
|
script:
|
|
- bash -x ./.gitlab-ci/flatpak-build.sh "${APPID}"
|
|
|
|
# Manual jobs, for branches and MRs
|
|
.flatpak-manual:
|
|
extends: .flatpak-defaults
|
|
when: manual
|
|
|
|
# Only build Flatpak bundles automatically on master
|
|
.flatpak-master:
|
|
extends: .flatpak-defaults
|
|
only:
|
|
- master
|
|
|
|
flatpak-manual:demo:
|
|
extends: .flatpak-manual
|
|
needs: []
|
|
variables:
|
|
APPID: org.gtk.Demo4
|
|
|
|
flatpak-master:demo:
|
|
extends: .flatpak-master
|
|
needs: []
|
|
variables:
|
|
APPID: org.gtk.Demo4
|
|
|
|
flatpak-manual:widget-factory:
|
|
extends: .flatpak-manual
|
|
needs: []
|
|
variables:
|
|
APPID: org.gtk.WidgetFactory4
|
|
|
|
flatpak-master:widget-factory:
|
|
extends: .flatpak-master
|
|
needs: []
|
|
variables:
|
|
APPID: org.gtk.WidgetFactory4
|
|
|
|
flatpak-manual:icon-browser:
|
|
extends: .flatpak-manual
|
|
needs: []
|
|
variables:
|
|
APPID: org.gtk.IconBrowser4
|
|
|
|
flatpak-master:icon-browser:
|
|
extends: .flatpak-master
|
|
needs: []
|
|
variables:
|
|
APPID: org.gtk.IconBrowser4
|
|
|
|
static-scan:
|
|
image: $FEDORA_IMAGE
|
|
stage: analysis
|
|
needs: []
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--buildtype=debug"
|
|
script:
|
|
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} _scan_build
|
|
- ninja -C _scan_build scan-build
|
|
artifacts:
|
|
paths:
|
|
- _scan_build/meson-logs
|
|
allow_failure: true
|
|
|
|
# Run tests with the address sanitizer. We need to turn off introspection,
|
|
# since it is incompatible with asan
|
|
asan-build:
|
|
image: $FEDORA_IMAGE
|
|
tags: [ asan ]
|
|
stage: analysis
|
|
needs: []
|
|
variables:
|
|
script:
|
|
- CC=clang meson --buildtype=debugoptimized -Db_sanitize=address -Db_lundef=false -Dintrospection=disabled _build
|
|
- ninja -C _build
|
|
- .gitlab-ci/run-tests.sh _build wayland
|
|
artifacts:
|
|
paths:
|
|
- _build/meson-logs
|
|
allow_failure: true
|
|
|
|
reference:
|
|
image: $DOCS_IMAGE
|
|
stage: docs
|
|
needs: []
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--buildtype=release"
|
|
script:
|
|
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} -Dgtk_doc=true _build
|
|
- ninja -C _build gdk4-doc gsk4-doc gtk4-doc
|
|
- mkdir -p _reference/
|
|
- mv _build/docs/reference/gdk/html/ _reference/gdk/
|
|
- mv _build/docs/reference/gsk/html/ _reference/gsk/
|
|
- mv _build/docs/reference/gtk/html/ _reference/gtk/
|
|
artifacts:
|
|
paths:
|
|
- _reference
|
|
|
|
pages:
|
|
stage: deploy
|
|
needs: ['reference']
|
|
script:
|
|
- mv _reference/ public/
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
only:
|
|
- master
|