| include: |
| - 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: |
| - 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: |
| 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-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" |
| 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 |
| FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v52" |
| ANDROID_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/android:v2" |
| |
| 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 |
| |
| style-check-diff: |
| image: $FEDORA_IMAGE |
| stage: check |
| when: manual |
| script: |
| - .gitlab-ci/run-style-check-diff.sh |
| |
| .build-fedora-default: |
| image: $FEDORA_IMAGE |
| 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-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" |
| cache: |
| key: "$CI_JOB_NAME" |
| paths: |
| - _ccache/ |
| |
| meson-subprojects: |
| stage: build |
| needs: [] |
| image: $FEDORA_IMAGE |
| script: |
| - export PATH="$HOME/.local/bin:$PATH" |
| # DNS issues can cause this to fail |
| - meson subprojects download || exit 137 |
| - meson subprojects update --reset || exit 137 |
| retry: |
| max: 2 |
| exit_codes: 137 |
| artifacts: |
| name: "gtk-subprojects-${CI_COMMIT_REF_NAME}" |
| when: always |
| paths: |
| - "${CI_PROJECT_DIR}/subprojects" |
| cache: |
| key: "$CI_JOB_NAME" |
| paths: |
| - subprojects/ |
| |
| fedora-x86_64: |
| extends: .build-fedora-default |
| stage: build |
| needs: ["meson-subprojects"] |
| 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: .build-fedora-default |
| stage: build |
| needs: [] |
| 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 subprojects download |
| - meson subprojects update --reset |
| - 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: .build-fedora-default |
| stage: build |
| needs: ["meson-subprojects"] |
| 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 |
| |
| fedora-mingw64: |
| extends: .build-fedora-default |
| stage: build |
| needs: ["meson-subprojects"] |
| before_script: |
| - sudo dnf install -y |
| mingw64-filesystem |
| mingw64-gcc |
| mingw64-binutils |
| mingw64-cairo |
| mingw64-gdk-pixbuf |
| mingw64-gstreamer1-plugins-bad-free |
| mingw64-glib2 |
| mingw64-libepoxy |
| mingw64-pango |
| # mingw64-graphene (rawhide) |
| script: |
| - .gitlab-ci/show-info-linux.sh |
| - export PATH="$HOME/.local/bin:$PATH" |
| - pip3 install --user meson~=1.0 |
| - 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: |
| rules: |
| # Do not run in forks as the runner is not available there. |
| # (except for dehesselle who maintains the runner) |
| - if: $CI_PROJECT_NAMESPACE == "GNOME" || $CI_PROJECT_NAMESPACE == "dehesselle" |
| stage: build |
| tags: |
| - macosarm |
| needs: [] |
| variables: |
| BACKEND_FLAGS: "-Dx11-backend=false -Dbroadway-backend=true" |
| FEATURE_FLAGS: "-Daccesskit=enabled -Dgobject-introspection:werror=false -Dintrospection=enabled -Dmedia-gstreamer=disabled" |
| EXTRA_MESON_FLAGS: "" |
| # additional settings |
| CARGO_HOME: $CI_PROJECT_DIR/.cargo |
| PIP_CACHE_DIR: /Users/Shared/work/cache |
| PIPENV_CACHE_DIR: $PIP_CACHE_DIR |
| PKG_CONFIG_PATH: $CI_PROJECT_DIR/.venv/lib/pkgconfig |
| PYTHONPYCACHEPREFIX: $PIP_CACHE_DIR |
| SDKROOT: /opt/sdks/MacOSX11.3.sdk |
| TMPDIR: /Users/Shared/work/tmp |
| before_script: |
| - .gitlab-ci/show-info-macos.sh |
| # Setup the virtual environment with 'meson' and 'ninja'. |
| - | |
| python3 -m venv .venv |
| source .venv/bin/activate |
| pip3 install meson==1.4.0 ninja==1.11.1.1 |
| # 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. |
| - ln -s /opt/rustup/toolchains/1.84.0-aarch64-apple-darwin/bin/* .venv/bin |
| # The GLib subproject requires 'packaging'. |
| - pip3 install packaging==24.2 |
| # Meson cannot handle circular dependencies in subprojects, so we have to build GLib and |
| # GObject Introspection ourselves. |
| - | |
| git clone --depth 1 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 |
| - | |
| git clone --depth 1 --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}/_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: |
| image: $ANDROID_IMAGE |
| stage: build |
| parallel: |
| matrix: |
| - ARCH: [ "aarch64", "x86_64" ] |
| needs: [] |
| 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 and fontconfig.wrap files. |
| - git clone https://github.com/sp1ritCS/gtk-android-builder.git pixiewood |
| - cp -f pixiewood/prepare/wraps/fontconfig/fontconfig.wrap subprojects/ |
| # Drop this as soon as Debian/the container has meson >= 1.7.0 |
| - git clone --depth 1 https://github.com/mesonbuild/meson.git |
| 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: |
| image: $ANDROID_IMAGE |
| stage: android |
| allow_failure: true |
| artifacts: |
| paths: |
| - apks |
| expire_in: 1 day |
| rules: |
| # Only build Android application bundles automatically on main |
| - if: $CI_COMMIT_BRANCH == "main" |
| - if: $CI_COMMIT_BRANCH != "main" |
| when: "manual" |
| needs: [] |
| 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/sp1ritCS/meson.git --branch android2 |
| - 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/gnome.executable/' {} \; |
| - ./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: |
| image: $ANDROID_IMAGE |
| 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 |
| |
| # 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'] |
| |
| static-scan: |
| image: $FEDORA_IMAGE |
| stage: analysis |
| needs: [] |
| 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: .build-fedora-default |
| tags: [ asan ] |
| stage: analysis |
| needs: [] |
| 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 |
| - ninja -C _build |
| - .gitlab-ci/run-tests.sh _build wayland gtk |
| |
| reference: |
| image: $FEDORA_IMAGE |
| stage: docs |
| needs: [] |
| 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: |
| image: $FEDORA_IMAGE |
| 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" |