blob: 7df19d2154b2c737cf3e56b4294668b669ff5a77 [file]
include:
- project: 'Infrastructure/freedesktop-ci-templates'
ref: '707b49ef'
file:
- 'templates/fedora.yml'
- 'templates/debian.yml'
- project: 'gnome/citemplates'
file: 'flatpak/flatpak_ci_initiative.yml'
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "release-build"
tarball-artifact-path: "_build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz"
stages:
- prepare
- check
- build
- analysis
- docs
- android
- flatpak
- publish
- deploy
- release
.cache-paths: &cache-paths
paths:
- _ccache/
- subprojects/gdk-pixbuf/
- subprojects/glib/
- subprojects/graphene/
- subprojects/libepoxy/
- subprojects/pango/
# Common variables
variables:
FDO_UPSTREAM_REPO: GNOME/gtk
COMMON_MESON_FLAGS: "-Dwerror=true -Dcairo:werror=false -Dgi-docgen:werror=false -Dgraphene:werror=false -Dlibepoxy:werror=false -Dlibsass:werror=false -Dpango:werror=false -Dsassc:werror=false -Dgdk-pixbuf:werror=false -Dglib:werror=false -Dlibcloudproviders:werror=false -Dlibpng:werror=false -Dlibtiff:werror=false -Dsysprof:werror=false -Dwayland:werror=false -Dwayland-protocols:werror=false -Dharfbuzz:werror=false -Dfreetype2:werror=false -Dfontconfig:werror=false -Dfribidi:werror=false -Dlibffi:werror=false -Dlibjpeg-turbo:werror=false -Dmutest:werror=false -Dpcre2:werror=false -Dpixman:werror=false -Dproxy-libintl:werror=false -Dgperf:werror=false"
BACKEND_FLAGS: "-Dx11-backend=true -Dwayland-backend=true -Dbroadway-backend=true"
FEATURE_FLAGS: "-Dvulkan=enabled -Dcloudproviders=enabled -Dbuild-testsuite=true -Dintrospection=enabled"
MESON_TEST_TIMEOUT_MULTIPLIER: 3
MESON_TEST_MAX_PROCESSES: 8
workflow:
rules:
# run merge request pipelines
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
# do not run branch pipelines if corresponding merge requests exist...
# (this avoids duplicate pipelines)
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
when: never
# ...but otherwise run branch pipelines
- if: $CI_COMMIT_BRANCH
# run tag pipelines
- if: $CI_COMMIT_TAG
default:
retry:
max: 2
when:
- 'runner_system_failure'
- 'stuck_or_timeout_failure'
- 'scheduler_failure'
- 'api_failure'
interruptible: true
.container.fedora:
variables:
BASE_TAG: '2025-08-10.0'
FDO_DISTRIBUTION_VERSION: 42
FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}"
FDO_DISTRIBUTION_PACKAGES:
ccache
clang
clang-analyzer
clang-tools-extra
cmake
compiler-rt
dbus-daemon
dejavu-sans-mono-fonts
diffutils
git
graphviz
libasan
libcloudproviders-devel
librsvg2-devel
libubsan
meson
mingw64-filesystem
mingw64-gcc
mingw64-binutils
mingw64-cairo
mingw64-gdk-pixbuf
mingw64-gstreamer1-plugins-bad-free
mingw64-glib2
mingw64-libepoxy
mingw64-pango
mutter
python-devel
python3-jinja2
python3-markdown
python3-markupsafe
python3-pip
python3-pygments
python3-typogrify
sassc
vulkan-validation-layers
weston
xorg-x11-server-Xvfb
FDO_DISTRIBUTION_EXEC: |
dnf builddep -y gtk4 &&
meson subprojects download || exit 137 &&
meson subprojects update --reset || exit 137 &&
mkdir /subprojects && find subprojects -mindepth 1 -maxdepth 1 -type d -exec mv {} /subprojects \;
.distribution.fedora:
extends:
- .fdo.distribution-image@fedora
- .container.fedora
container:fedora:
extends:
- .container.fedora
- .fdo.container-build@fedora@x86_64
# DNS issues can cause this to fail
retry:
max: 2
exit_codes: 137
stage: prepare
.container.android:
variables:
BASE_TAG: '2025-08-05.0'
FDO_DISTRIBUTION_VERSION: sid
FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}"
FDO_DISTRIBUTION_PACKAGES:
build-essential
gir1.2-appstream
git
git-lfs
glslc
gobject-introspection
libglib2.0-dev-bin
libglib-perl
libglib-object-introspection-perl
libipc-run-perl
libjson-perl
libset-scalar-perl
libxml2-utils
libxml-libxml-perl
libxml-libxslt-perl
meson
ninja-build
openjdk-17-jre
openjdk-17-jdk
perl
pkg-config
sassc
sdkmanager
sudo
FDO_DISTRIBUTION_EXEC: |
.gitlab-ci/android-sdk.sh &&
apt-get -y clean
ANDROID_HOME: "/opt/android/"
ANDROID_SDKVER: "35.0.0"
HOST_USER_ID: "5555"
LANG: "C.UTF-8"
.distribution.android:
extends:
- .fdo.distribution-image@debian
- .container.android
container:android:
extends:
- .container.android
- .fdo.container-build@debian@x86_64
stage: prepare
style-check-diff:
extends:
- .distribution.fedora
stage: check
when: manual
script:
- .gitlab-ci/run-style-check-diff.sh
needs: ['container:fedora']
.test-runner:
artifacts:
name: "gtk-${CI_COMMIT_REF_NAME}"
when: always
reports:
junit:
- "${CI_PROJECT_DIR}/_build/meson-logs/testlog-x11.junit.xml"
- "${CI_PROJECT_DIR}/_build/meson-logs/testlog-wayland.junit.xml"
- "${CI_PROJECT_DIR}/_build/meson-logs/testlog-wayland_gl.junit.xml"
- "${CI_PROJECT_DIR}/_build/meson-logs/testlog-wayland_minimal.junit.xml"
- "${CI_PROJECT_DIR}/_build/meson-logs/testlog-broadway.junit.xml"
paths:
- "${CI_PROJECT_DIR}/_build/meson-logs"
- "${CI_PROJECT_DIR}/_build/testsuite/reftests/output/*/*.png"
- "${CI_PROJECT_DIR}/_build/testsuite/reftests/output/*/*.node"
- "${CI_PROJECT_DIR}/_build/testsuite/tools/output/*/*"
- "${CI_PROJECT_DIR}/_build/testsuite/gsk/compare/*/*/*.png"
- "${CI_PROJECT_DIR}/_build/testsuite/gsk/compare/*/*/*.node"
- "${CI_PROJECT_DIR}/_build/testsuite/css/output/*/*.syscap"
- "${CI_PROJECT_DIR}/_build/testsuite/headless/*/*.log"
- "${CI_PROJECT_DIR}/_build_hello/meson-logs"
- "${CI_PROJECT_DIR}/_build/gtk/GdkX11-4.0.gir"
- "${CI_PROJECT_DIR}/_build/gtk/GdkWayland-4.0.gir"
- "${CI_PROJECT_DIR}/_build/meson-dist/*.tar.xz"
.build-fedora-default:
extends:
- .distribution.fedora
cache:
key: "$CI_JOB_NAME"
paths:
- _ccache/
.meson-subprojects:
before_script:
- find /subprojects -mindepth 1 -maxdepth 1 -type d -exec ln -s {} subprojects/ \;
fedora-x86_64:
extends:
- .test-runner
- .build-fedora-default
- .meson-subprojects
stage: build
needs: ["container:fedora"]
variables:
EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both"
script:
- .gitlab-ci/show-info-linux.sh
- export PATH="$HOME/.local/bin:$PATH"
- meson setup
${COMMON_MESON_FLAGS}
${EXTRA_MESON_FLAGS}
${BACKEND_FLAGS}
${FEATURE_FLAGS}
_build
- meson compile -C _build
- .gitlab-ci/run-tests.sh _build x11 gtk
# only repeat test runs that are likely affected by test setups
- .gitlab-ci/run-tests.sh _build wayland_gl gtk:gdk,gtk:gsk-gl
release-build:
extends:
- .test-runner
- .build-fedora-default
stage: build
needs: ['container:fedora']
variables:
EXTRA_MESON_FLAGS: "--buildtype=release"
script:
- .gitlab-ci/show-info-linux.sh
- mkdir _install
# don't use catch by default, since it causes sporadic test failures
# - export PATH="$HOME/.local/bin:${CI_PROJECT_DIR}/_install/bin:$PATH"
# - .gitlab-ci/install-meson-project.sh --prefix ${CI_PROJECT_DIR}/_install https://gitlab.gnome.org/jadahl/catch.git main
- git config --global --add safe.directory $CI_PROJECT_DIR
- meson setup
--prefix=${CI_PROJECT_DIR}/_install
${COMMON_MESON_FLAGS}
${EXTRA_MESON_FLAGS}
${BACKEND_FLAGS}
${FEATURE_FLAGS}
_build
- meson compile -C _build
- meson install -C _build
- PKG_CONFIG_PATH=${CI_PROJECT_DIR}/_install/lib64/pkgconfig:${CI_PROJECT_DIR}/_install/share/pkgconfig meson setup _build_hello examples/hello
- LD_LIBRARY_PATH=${CI_PROJECT_DIR}/_install/lib64 meson compile -C _build_hello
- .gitlab-ci/run-tests.sh _build wayland gtk
- meson dist -C _build --include-subprojects --no-tests
fedora-clang:
extends:
- .test-runner
- .build-fedora-default
- .meson-subprojects
stage: build
needs: ["container:fedora"]
variables:
EXTRA_MESON_FLAGS: "--buildtype=release"
script:
- .gitlab-ci/show-info-linux.sh
- export PATH="$HOME/.local/bin:$PATH"
- export CC=clang
- meson setup
${COMMON_MESON_FLAGS}
${EXTRA_MESON_FLAGS}
-Dx11-backend=false -Dwayland-backend=true -Dbroadway-backend=false
${FEATURE_FLAGS}
_build
- meson compile -C _build
- .gitlab-ci/run-tests.sh _build wayland_minimal gtk:gsk
fedora-mingw64:
extends:
- .build-fedora-default
- .meson-subprojects
stage: build
needs: ["container:fedora"]
script:
- .gitlab-ci/show-info-linux.sh
- export PATH="$HOME/.local/bin:$PATH"
- pip3 install --user meson==1.8.2
- meson -Dintrospection=disabled -Dgraphene:introspection=disabled _build
- meson compile -C _build
.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-ucrt64:
extends: .mingw-defaults
needs: []
variables:
MSYSTEM: "UCRT64"
CHERE_INVOKING: "yes"
artifacts:
when: always
expose_as: 'Windows_DLL_MSYS2_64_bit_toolchain'
paths:
- "${CI_PROJECT_DIR}/_build/gtkdll.tar.gz"
- "${CI_PROJECT_DIR}/_build/gtk/GdkWin32-4.0.gir"
macos-arm64:
stage: build
tags:
- macos
- arm64
needs: []
cache:
- key: $CI_JOB_NAME_SLUG
paths:
- ccache
variables:
BACKEND_FLAGS: ""
FEATURE_FLAGS: "-Dvulkan=disabled -Daccesskit=enabled -Dgobject-introspection:werror=false -Dintrospection=enabled -Dmedia-gstreamer=disabled"
EXTRA_MESON_FLAGS: ""
# additional settings
CCACHE_MAXSIZE: "250Mi"
CCACHE_DIR: $CI_PROJECT_DIR/ccache
PKG_CONFIG_PATH: $CI_PROJECT_DIR/.venv/lib/pkgconfig
SDKROOT: /opt/sdks/MacOSX11.3.sdk
before_script:
- .gitlab-ci/show-info-macos.sh
# Setup the virtual environment with meson and ninja. Add ccache to speed
# up the build.
- |
python3 -m venv .venv
source .venv/bin/activate
pip3 install meson==1.9.0 ninja==1.11.1.1 certifi==2025.4.26
ln -s /opt/ccache/ccache .venv/bin
# The introspection feature requires pkg-config and bison.
- curl -L $CI_API_V4_URL/projects/30437/packages/generic/pkgconfig/v0.29.2+10/pkg-config-0.29.2+10_$(uname -m).tar.xz | tar -C .venv -xJ
- curl -L $CI_API_V4_URL/projects/30438/packages/generic/bison/v3.8.2+3/bison-3.8.2+3_$(uname -m).tar.xz | tar -C .venv -xJ
# The AccessKit feature requires Rust and toml2json.
- ln -s /opt/rustup/toolchains/1.86.0-aarch64-apple-darwin/bin/* .venv/bin
- pip3 install toml2json==0.1.0
# Meson cannot handle circular dependencies in subprojects, so we have to build GLib and
# GObject Introspection ourselves. With crudini we ensure using the same versions as
# defined in the subproject wrappers.
- pip3 install crudini==0.9.6
- |
pip3 install packaging==24.2
git clone --depth 1 --branch $(crudini --get subprojects/glib.wrap wrap-git revision) https://gitlab.gnome.org/gnome/glib.git
meson setup -Dprefix=${CI_PROJECT_DIR}/.venv -Dintrospection=disabled -Dtests=false _glib_build glib
meson compile -C _glib_build
meson install -C _glib_build
cp -rvf "${CI_PROJECT_DIR}/_glib_build/meson-logs" "${CI_PROJECT_DIR}/_glib_build/meson-logs.no-introspection"
- |
git clone --depth 1 --branch $(crudini --get subprojects/gobject-introspection.wrap wrap-git revision) --recurse-submodules https://gitlab.gnome.org/gnome/gobject-introspection.git
meson setup -Dprefix=${CI_PROJECT_DIR}/.venv _gi_build gobject-introspection
meson compile -C _gi_build
meson install -C _gi_build
- |
meson configure -Dintrospection=enabled _glib_build
meson compile -C _glib_build
meson install -C _glib_build
script:
- meson setup
${COMMON_MESON_FLAGS}
${EXTRA_MESON_FLAGS}
${BACKEND_FLAGS}
${FEATURE_FLAGS}
_build
- meson compile -C _build
artifacts:
when: always
paths:
- "${CI_PROJECT_DIR}/_glib_build/meson-logs.no-introspection"
- "${CI_PROJECT_DIR}/_glib_build/meson-logs"
- "${CI_PROJECT_DIR}/_build/meson-logs"
- "${CI_PROJECT_DIR}/_build/gtk/GdkMacos-4.0.gir"
vs2019-x64:
# TODO: Uncomment this when ready to merge.
# rules:
# - if: $CI_PROJECT_NAMESPACE == "GNOME"
stage: build
tags:
- win32-ps
needs: []
variables:
script:
- .gitlab-ci/test-msvc.bat ${COMMON_MESON_FLAGS}
artifacts:
when: always
paths:
- "${CI_PROJECT_DIR}/_build/meson-logs"
android:
extends:
- .distribution.android
stage: build
parallel:
matrix:
- ARCH: [ "aarch64", "x86_64" ]
needs: ['container:android']
variables:
EXTRA_MESON_FLAGS: "-Dgperf:werror=false"
BACKEND_FLAGS: "-Dandroid-backend=true"
FEATURE_FLAGS: "-Dmedia-gstreamer=disabled"
before_script:
- .gitlab-ci/show-info-linux.sh
# We aren't actually using pixiewood here, we just make get the ${ARCH}.cross, android.cross, fontconfig.wrap and glib/hack.patch files.
- git clone https://github.com/sp1ritCS/gtk-android-builder.git pixiewood
- cp -f pixiewood/prepare/wraps/fontconfig/fontconfig.wrap subprojects/
# glib/hack makes the g_set_user_dirs public. Drop once glib has android support
- mkdir -p subprojects/packagefiles/
- cp -f pixiewood/prepare/wraps/glib/hack.patch subprojects/packagefiles/glib_hack.patch
- sed -i 's/\[provide\]/diff_files = glib_hack.patch\n\n\0/' subprojects/glib.wrap
# Drop this as soon as Debian/the container has meson >= 1.7.0
- git clone --depth 1 https://github.com/mesonbuild/meson.git --branch 1.8.2
script:
- ./meson/meson.py setup
--cross-file "${ANDROID_HOME}/toolchain.cross"
--cross-file "pixiewood/prepare/arch/$ARCH.cross"
--cross-file "pixiewood/prepare/android.cross"
${COMMON_MESON_FLAGS}
${EXTRA_MESON_FLAGS}
${BACKEND_FLAGS}
${FEATURE_FLAGS}
_build
- ./meson/meson.py compile -C _build
artifacts:
when: always
paths:
- "${CI_PROJECT_DIR}/_build/meson-logs"
.android-defaults:
extends:
- .distribution.android
stage: android
artifacts:
paths:
- apks
expire_in: 1 day
rules:
# Treat Android application bundle build job like a normal job on main or when marge is checking the changeset
- if: $CI_COMMIT_BRANCH == "main" || $GITLAB_USER_LOGIN == "marge-bot" || $CI_MERGE_REQUEST_ASSIGNEES == "marge-bot"
# normal CI job
- if: $CI_COMMIT_BRANCH != "main" && $GITLAB_USER_LOGIN != "marge-bot" && $CI_MERGE_REQUEST_ASSIGNEES != "marge-bot"
when: "manual"
allow_failure: true
needs: ['container:android']
before_script:
- .gitlab-ci/show-info-linux.sh
- git clone https://github.com/sp1ritCS/gtk-android-builder.git pixiewood
- git clone --depth 1 https://github.com/mesonbuild/meson.git # TODO: affix to a tag as soon as one exists that contains 98b1980
- git clone --depth 1 https://github.com/sp1ritCS/mini-studio.git
script:
# This should be included in the repo itself once it's been merged into meson and released
- >
find demos/ -type f -name 'meson.build' -exec sed -i "s/^executable.*$/\0 android_exe_type: 'application',/" {} \;
- ./pixiewood/pixiewood prepare --release -s "${ANDROID_HOME}" -a ./mini-studio --meson ./meson/meson.py "build-aux/android/${APPID}.xml"
- ./pixiewood/pixiewood generate
- ./pixiewood/pixiewood build
- mkdir -p apks/${APPID}/
- cp .pixiewood/android/app/build/outputs/apk/release/* apks/${APPID}/
android:demo:
extends: '.android-defaults'
variables:
APPID: org.gtk.Demo4
android-signer:
extends:
- .distribution.android
stage: android
artifacts:
paths:
- apks
expire_in: 1 day
needs: [ 'android:demo' ]
before_script:
- |
if [ -z ${ANDROID_KEYSTORE_ENC} ]; then
export ANDROID_KEYSTORE_LOCATION=".gitlab-ci/debug.keystore"
export ANDROID_KEYSTORE_KEY="android"
export ANDROID_APK_SUFFIX="debugsigned"
else
export ANDROID_KEYSTORE_LOCATION="keystore.jks"
echo "${ANDROID_KEYSTORE_ENC}" | base64 -d > ${ANDROID_KEYSTORE_LOCATION}
export ANDROID_APK_SUFFIX="signed"
fi
script:
- find apks/ -type f -name '*.apk' -exec sh -c '${ANDROID_HOME}/build-tools/${ANDROID_SDKVER}/apksigner sign --ks "${ANDROID_KEYSTORE_LOCATION}" --ks-pass "env:ANDROID_KEYSTORE_KEY" --in "$0" --out `echo "$0" | sed s/unsigned/${ANDROID_APK_SUFFIX}/g`' {} \; -delete
.flatpak-defaults:
image: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master"
stage: flatpak
allow_failure: true
tags:
- flatpak
artifacts:
paths:
- "${APPID}-dev.flatpak"
- 'repo.tar'
expire_in: 1 day
rules:
# Only build Flatpak bundles automatically on main
- if: $CI_COMMIT_BRANCH == "main"
- if: $CI_COMMIT_BRANCH != "main"
when: "manual"
script:
- bash -x ./.gitlab-ci/flatpak-build.sh "${APPID}"
flatpak:demo:
extends: '.flatpak-defaults'
needs: []
variables:
APPID: org.gtk.Demo4
flatpak:demo:aarch64:
extends: '.flatpak-defaults'
needs: []
tags:
- flatpak-aarch64
variables:
APPID: org.gtk.Demo4
flatpak:widget-factory:
extends: '.flatpak-defaults'
needs: []
variables:
APPID: org.gtk.WidgetFactory4
flatpak:widget-factory:aarch64:
extends: '.flatpak-defaults'
needs: []
tags:
- flatpak-aarch64
variables:
APPID: org.gtk.WidgetFactory4
flatpak:node-editor:
extends: '.flatpak-defaults'
needs: []
variables:
APPID: org.gtk.gtk4.NodeEditor
flatpak:node-editor:aarch64:
extends: '.flatpak-defaults'
needs: []
tags:
- flatpak-aarch64
variables:
APPID: org.gtk.gtk4.NodeEditor
flatpak:icon-editor:
extends: '.flatpak-defaults'
needs: []
variables:
APPID: org.gtk.Shaper
flatpak:icon-editor:aarch64:
extends: '.flatpak-defaults'
needs: []
tags:
- flatpak-aarch64
variables:
APPID: org.gtk.Shaper
# Publish the demo apps to the GNOME Nightly repo
# https://wiki.gnome.org/Apps/Nightly
# https://gitlab.gnome.org/GNOME/Initiatives/-/wikis/DevOps-with-Flatpak
nightly demo:
extends: '.publish_nightly'
needs: ['flatpak:demo']
nightly demo aarch64:
extends: '.publish_nightly'
needs: ['flatpak:demo:aarch64']
nightly factory:
extends: '.publish_nightly'
needs: ['flatpak:widget-factory']
nightly factory aarch64:
extends: '.publish_nightly'
needs: ['flatpak:widget-factory:aarch64']
nightly node-editor:
extends: '.publish_nightly'
needs: ['flatpak:node-editor']
nightly node-editor aarch64:
extends: '.publish_nightly'
needs: ['flatpak:node-editor:aarch64']
nightly icon-editor:
extends: '.publish_nightly'
needs: ['flatpak:icon-editor']
nightly icon-editor aarch64:
extends: '.publish_nightly'
needs: ['flatpak:icon-editor:aarch64']
static-scan:
extends:
- .distribution.fedora
stage: analysis
needs: ['container:fedora']
variables:
EXTRA_MESON_FLAGS: "--buildtype=debug"
script:
- export PATH="$HOME/.local/bin:$PATH"
- meson setup
${COMMON_MESON_FLAGS}
${EXTRA_MESON_FLAGS}
${BACKEND_FLAGS}
${FEATURE_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
# and f16c, since they are incompatible with asan
asan-build:
extends:
- .test-runner
- .build-fedora-default
tags: [ asan ]
stage: analysis
needs: ['container:fedora']
script:
- export PATH="$HOME/.local/bin:$PATH"
- CC=clang meson setup
--buildtype=debugoptimized
-Db_sanitize=address
-Db_lundef=false
-Dbuild-demos=false
-Dbuild-tests=false
-Dbuild-examples=false
-Dintrospection=disabled
-Df16c=disabled
_build
- meson compile -C_build
# Work around https://gitlab.freedesktop.org/mesa/mesa/-/issues/12666
- rm -rf _build/subprojects/wayland/src/libwayland-server*
- .gitlab-ci/run-tests.sh _build wayland gtk
reference:
extends:
- .distribution.fedora
stage: docs
needs: ['container:fedora']
script:
- export PATH="$HOME/.local/bin:$PATH"
- meson setup
${COMMON_MESON_FLAGS}
--buildtype=release
--force-fallback-for=gdk-pixbuf,pango
-Dintrospection=enabled
-Ddocumentation=true
-Dman-pages=true
-Dgdk-pixbuf:gtk_doc=true
-Dpango:documentation=true
-Dbuild-demos=true
-Dbuild-examples=false
-Dbuild-tests=false
-Dbuild-testsuite=false
_build
- meson compile -C _build
- mkdir -p _reference/
- mv _build/docs/reference/gdk/gdk4/ _reference/gdk4/
- mv _build/docs/reference/gdk/gdk4-x11/ _reference/gdk4-x11/
- mv _build/docs/reference/gdk/gdk4-wayland/ _reference/gdk4-wayland/
- mv _build/docs/reference/gsk/gsk4/ _reference/gsk4/
- mv _build/docs/reference/gtk/gtk4/ _reference/gtk4/
- mv _build/docs/reference/gtk/*.html _reference/gtk4/
- mv _build/subprojects/pango/docs/Pango/ _reference/Pango/
- mv _build/subprojects/pango/docs/PangoCairo/ _reference/PangoCairo/
- mv _build/subprojects/pango/docs/PangoFc/ _reference/PangoFc/
- mv _build/subprojects/pango/docs/PangoFT2/ _reference/PangoFT2/
- mv _build/subprojects/pango/docs/PangoOT/ _reference/PangoOT/
- mv _build/subprojects/pango/docs/PangoXft/ _reference/PangoXft/
- mv _build/subprojects/gdk-pixbuf/docs/gdk-pixbuf/ _reference/gdk-pixbuf/
- mv _build/subprojects/gdk-pixbuf/docs/gdk-pixdata/ _reference/gdk-pixdata/
artifacts:
paths:
- _reference
publish-docs:
extends:
- .distribution.fedora
stage: publish
interruptible: false
needs: ['reference']
script:
- "curl -X POST -F token=${PAGES_TRIGGER_TOKEN} -F ref=docs-gtk-org https://gitlab.gnome.org/api/v4/projects/665/trigger/pipeline"
rules:
- if: $CI_COMMIT_REF_NAME == "main"