1
0
Fork 0
gnome-software/.gitlab-ci.yml
Daniel Baumann 68ee05b3fd
Adding upstream version 48.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 21:00:23 +02:00

185 lines
5.5 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

include:
- project: 'GNOME/citemplates'
file: '/flatpak/flatpak_ci_initiative.yml'
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "dist"
tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}"
stages:
- build
- pages
- deploy
cache:
paths:
- _ccache/
variables:
FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gnome-software/fedora:v22"
DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/gnome-software/debian:v21"
MESON_TEST_TIMEOUT_MULTIPLIER: 4
G_MESSAGES_DEBUG: all
MESON_COMMON_OPTIONS: "--werror --buildtype debug --wrap-mode=nodownload --prefix /usr -Dwebapps=true -Dhardcoded_foss_webapps=false -Dhardcoded_proprietary_webapps=false"
BUNDLE: "gnome-software-dev.flatpak"
# -O2 is needed for -Wnull-dereference to work:
CFLAGS: "-O2"
# expected naming scheme for the release-service job
TARBALL_ARTIFACT_PATH: "_build/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
# FIXME: Work around https://gitlab.com/gitlab-org/gitlab/-/issues/391756
.submodule_workaround:
before_script:
- git config --global --add safe.directory "${PWD}"
- git submodule update --init --depth 1
- git config --global --add safe.directory "${PWD}/subprojects/*"
variables:
GIT_SUBMODULE_STRATEGY: "none"
GIT_SUBMODULE_DEPTH: 1
.build:
variables: !reference [".submodule_workaround", variables]
before_script:
- cp -r $HOME/subprojects/* subprojects/
- !reference [".submodule_workaround", "before_script"]
fedora-x86_64:
extends: .build
image: "${FEDORA_IMAGE}"
stage: build
except:
- tags
script:
- meson setup ${MESON_COMMON_OPTIONS}
-Ddkms=true
-Drpm_ostree=true
-Dmalcontent=true
-Dsysprof=enabled
_build
- meson compile -C _build
- .gitlab-ci/run-tests.sh
--no-suite packagekit
--no-suite fwupd
--no-suite gtk
--no-suite libglib-testing
--no-suite malcontent
artifacts:
reports:
junit: "_build/${CI_JOB_NAME}-report.xml"
name: "gnome-software-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- "_build/config.h"
- "_build/help/"
- "_build/meson-logs"
- "_build/${CI_JOB_NAME}-report.xml"
debian-x86_64:
extends: .build
image: "${DEBIAN_IMAGE}"
stage: build
except:
- tags
script:
- meson setup ${MESON_COMMON_OPTIONS}
-Ddkms=true
-Drpm_ostree=false
-Dmalcontent=false
-Dsysprof=disabled
_build
- meson compile -C _build
- .gitlab-ci/run-tests.sh
--no-suite packagekit
--no-suite fwupd
--no-suite gtk
--no-suite fedora-langpacks
--no-suite libxmlb
artifacts:
reports:
junit: "_build/${CI_JOB_NAME}-report.xml"
name: "gnome-software-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- "_build/config.h"
- "_build/meson-logs"
- "_build/${CI_JOB_NAME}-report.xml"
# Allow building a flatpak on demand to test out the gnome-software UI
flatpak bundle:
extends:
- ".flatpak"
- ".submodule_workaround"
stage: 'build'
variables:
MANIFEST_PATH: "build-aux/org.gnome.Software.Devel.json"
FLATPAK_MODULE: "gnome-software"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
APP_ID: "org.gnome.Software.Devel"
RUN_TESTS: "no"
when: manual
allow_failure: true
# Due to the `only` clause in .publish_nightly, this will only publish on-demand
# builds to nightly.gnome.org if they are built from a commit on `main`
nightly:
extends: '.publish_nightly'
dependencies:
- 'flatpak bundle'
needs: ['flatpak bundle']
when: manual
dist:
extends: .build
image: "${FEDORA_IMAGE}"
stage: build
needs: []
only:
- schedules
- tags
script:
- meson setup ${MESON_COMMON_OPTIONS}
--buildtype release
-Dgtk_doc=true
_build
# We cant run tests because it would run the `gtk` suite, which doesnt work on CI
# Theres currently no way to selectively disable some suites at dist time.
- meson dist -C _build --no-tests
# Compile again to build the docs
- meson compile -C _build
- ninja -C _build gnome-software-doc
- tar -c -J -f "_build/gnome-software-docs-${CI_COMMIT_TAG}.tar.xz" -C _build/doc/api html
artifacts:
paths:
- "${CI_PROJECT_DIR}/_build/gnome-software-docs-${CI_COMMIT_TAG}.tar.xz"
- "${CI_PROJECT_DIR}/_build/meson-dist/gnome-software-*.tar.xz"
pages:
image: "${FEDORA_IMAGE}"
stage: pages
needs: ['fedora-x86_64']
interruptible: false
script:
- |
# yelp-build requires absolute paths
builddir="$(realpath ./_build)"
echo "Generating help for C locale"
mkdir -p "./public/help/C/"
yelp-build html --output ./public/help/C/ ./help/C/*.page
grep -v '^#' ./help/LINGUAS | while read -r language; do
echo "Generating help for ${language} locale"
mkdir "./public/help/${language}"
yelp-build html --ignore --output ./public/help/"${language}/" --path help/C/ "${builddir}/help/${language}/"
done
echo "Generating index"
./.gitlab-ci/generate-help-index.py ./public/index.html ./help/
artifacts:
paths:
- "public"
rules:
- if: $CI_PROJECT_PATH == "GNOME/gnome-software" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
changes:
- "help/**/*"
- ".gitlab-ci/generate-help-index.py"