ff4ff35918
Red Bear OS is a full fork. All sources must be available from git clone with zero network access. Removed gitignore rules that excluded fetched source trees under recipes/*/source/, local/recipes/kde/*/source/, local/recipes/qt/*/source/, and vendor source trees. Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded. 127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt frameworks, mesa, wayland, DRM drivers, and every other recipe source.
323 lines
7.5 KiB
YAML
323 lines
7.5 KiB
YAML
include:
|
|
- project: 'Infrastructure/freedesktop-ci-templates'
|
|
ref: '707b49ef'
|
|
file:
|
|
- 'templates/fedora.yml'
|
|
- component: "gitlab.gnome.org/GNOME/citemplates/release-service@master"
|
|
inputs:
|
|
job-stage: "build"
|
|
dist-job-name: "release-build"
|
|
|
|
stages:
|
|
- prepare
|
|
- check
|
|
- build
|
|
- analysis
|
|
- docs
|
|
- deploy
|
|
|
|
# Common variables
|
|
variables:
|
|
FDO_UPSTREAM_REPO: GNOME/gdk-pixbuf
|
|
CCACHE_DIR: _ccache
|
|
COMMON_MESON_FLAGS: "-Dwerror=true -Dglib:werror=false"
|
|
LOADERS_FLAGS: "-Dpng=enabled -Djpeg=enabled -Dtiff=enabled -Dgif=enabled -Dothers=enabled -Dglycin=disabled"
|
|
MESON_TEST_TIMEOUT_MULTIPLIER: 3
|
|
|
|
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-10-07.0'
|
|
FDO_DISTRIBUTION_VERSION: 42
|
|
FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}"
|
|
FDO_DISTRIBUTION_PACKAGES:
|
|
ccache
|
|
clang
|
|
clang-analyzer
|
|
clang-tools-extra
|
|
gcc
|
|
gcc-c++
|
|
gettext
|
|
gettext-devel
|
|
gi-docgen
|
|
git
|
|
glib2-devel
|
|
gobject-introspection-devel
|
|
itstool
|
|
jasper-devel
|
|
lcov
|
|
libasan
|
|
libjpeg-turbo-devel
|
|
libpng-devel
|
|
libtiff-devel
|
|
libubsan
|
|
libX11-devel
|
|
meson
|
|
python3
|
|
python3-docutils
|
|
python3-jinja2
|
|
python3-markdown
|
|
python3-pip
|
|
python3-pygments
|
|
python3-setuptools
|
|
python3-toml
|
|
python3-typogrify
|
|
python3-wheel
|
|
redhat-rpm-config
|
|
shared-mime-info
|
|
|
|
.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
|
|
|
|
.test-runner:
|
|
artifacts:
|
|
name: "gdk-pixbuf-${CI_COMMIT_REF_NAME}"
|
|
when: always
|
|
reports:
|
|
junit:
|
|
- "${CI_PROJECT_DIR}/_build/meson-logs/testlog.junit.xml"
|
|
paths:
|
|
- "${CI_PROJECT_DIR}/_build/meson-logs"
|
|
- "${CI_PROJECT_DIR}/_build/meson-dist"
|
|
|
|
.dist-runner:
|
|
artifacts:
|
|
name: "gdk-pixbuf-dist-${CI_COMMIT_REF_NAME}"
|
|
when: always
|
|
paths:
|
|
- "${CI_PROJECT_DIR}/public-dist"
|
|
|
|
.scan-runner:
|
|
artifacts:
|
|
name: "gdk-pixbuf-scan-${CI_COMMIT_REF_NAME}"
|
|
when: always
|
|
paths:
|
|
- "${CI_PROJECT_DIR}/_scan_build/meson-logs"
|
|
- "${CI_PROJECT_DIR}/_static_scan"
|
|
|
|
.build-fedora-default:
|
|
extends:
|
|
- .distribution.fedora
|
|
cache:
|
|
key: "$CI_JOB_NAME"
|
|
paths:
|
|
- _ccache/
|
|
|
|
style-check-diff:
|
|
extends:
|
|
- .build-fedora-default
|
|
needs: ['container:fedora']
|
|
stage: check
|
|
allow_failure: true
|
|
script:
|
|
- .gitlab/scripts/run-style-check-diff.sh
|
|
|
|
fedora-x86_64:
|
|
extends:
|
|
- .test-runner
|
|
- .build-fedora-default
|
|
stage: build
|
|
needs: ["container:fedora"]
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both"
|
|
script:
|
|
- meson setup ${COMMON_MESON_FLAGS} ${LOADERS_FLAGS} ${EXTRA_MESON_FLAGS} _build
|
|
- meson compile -C _build
|
|
- meson test -C _build
|
|
|
|
release-build:
|
|
extends:
|
|
- .dist-runner
|
|
- .build-fedora-default
|
|
stage: build
|
|
needs: ['container:fedora']
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--buildtype=release"
|
|
script:
|
|
- mkdir _install
|
|
- git config --global --add safe.directory $CI_PROJECT_DIR
|
|
- meson setup
|
|
--prefix=${CI_PROJECT_DIR}/_install
|
|
${COMMON_MESON_FLAGS}
|
|
${LOADERS_FLAGS}
|
|
${EXTRA_MESON_FLAGS}
|
|
_build
|
|
- meson compile -C _build
|
|
- meson dist -C _build
|
|
- cp -r "_build/meson-dist" "${CI_PROJECT_DIR}/public-dist/"
|
|
|
|
asan-build:
|
|
extends:
|
|
- .test-runner
|
|
- .build-fedora-default
|
|
tags: [ asan ]
|
|
stage: analysis
|
|
needs: ['container:fedora']
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--buildtype=debug -Ddocumentation=false -Dintrospection=disabled"
|
|
ASAN_OPTIONS: allocator_may_return_null=1
|
|
script:
|
|
- meson setup
|
|
${COMMON_MESON_FLAGS}
|
|
${LOADERS_FLAGS}
|
|
${EXTRA_MESON_FLAGS}
|
|
-Db_sanitize=address
|
|
-Db_lundef=false
|
|
_build
|
|
- meson compile -C _build
|
|
- meson test --no-suite=slow -C _build
|
|
|
|
ubsan-build:
|
|
extends:
|
|
- .test-runner
|
|
- .build-fedora-default
|
|
tags: [ asan ]
|
|
stage: analysis
|
|
needs: ['container:fedora']
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--buildtype=debug -Ddocumentation=false -Dintrospection=disabled"
|
|
script:
|
|
- meson setup
|
|
${COMMON_MESON_FLAGS}
|
|
${LOADERS_FLAGS}
|
|
${EXTRA_MESON_FLAGS}
|
|
-Db_sanitize=undefined
|
|
-Db_lundef=false
|
|
_build
|
|
- meson compile -C _build
|
|
- meson test --no-suite=slow -C _build
|
|
|
|
static-scan:
|
|
extends:
|
|
- .scan-runner
|
|
- .build-fedora-default
|
|
tags: [ asan ]
|
|
stage: analysis
|
|
needs: ['container:fedora']
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "--buildtype=debug -Dintrospection=disabled -Ddocumentation=false"
|
|
script:
|
|
- CC=clang meson setup
|
|
${COMMON_MESON_FLAGS}
|
|
${LOADERS_FLAGS}
|
|
${EXTRA_MESON_FLAGS}
|
|
_scan_build
|
|
- ninja -C _scan_build scan-build
|
|
- cp -r _scan_build/meson-logs/scanbuild _static_scan
|
|
allow_failure: true
|
|
|
|
macos-build:
|
|
stage: build
|
|
needs: []
|
|
only:
|
|
- branches@GNOME/gdk-pixbuf
|
|
except:
|
|
- tags
|
|
tags:
|
|
- macos
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "-Dintrospection=disabled -Dinstalled_tests=false -Dman=false -Ddocumentation=false"
|
|
before_script:
|
|
- pip3 install --user meson==1.5
|
|
- pip3 install --user ninja
|
|
- export PATH=/Users/gitlabrunner/Library/Python/3.7/bin:$PATH
|
|
script:
|
|
- meson setup
|
|
${COMMON_MESON_FLAGS}
|
|
${LOADERS_FLAGS}
|
|
${EXTRA_MESON_FLAGS}
|
|
_build
|
|
- meson compile -C _build
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- "${CI_PROJECT_DIR}/_build/meson-logs"
|
|
allow_failure: true
|
|
|
|
msys2-mingw64-build:
|
|
stage: build
|
|
needs: []
|
|
tags:
|
|
- win32-ps
|
|
variables:
|
|
MSYSTEM: "MINGW64"
|
|
CHERE_INVOKING: "yes"
|
|
script:
|
|
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
|
|
- C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab/ci/test-msys2.sh"
|
|
artifacts:
|
|
name: "gdk-pixbuf-${env:CI_JOB_NAME}-${env:CI_COMMIT_REF_NAME}"
|
|
when: always
|
|
paths:
|
|
- _build/meson-logs
|
|
|
|
reference:
|
|
extends:
|
|
- .build-fedora-default
|
|
tags: [ asan ]
|
|
needs: ['container:fedora']
|
|
stage: docs
|
|
variables:
|
|
EXTRA_MESON_FLAGS: "-Dbuildtype=release -Dintrospection=enabled -Ddocumentation=true"
|
|
script:
|
|
- meson setup
|
|
${COMMON_MESON_FLAGS}
|
|
${LOADERS_FLAGS}
|
|
${EXTRA_MESON_FLAGS}
|
|
_build
|
|
- meson compile -C _build
|
|
- mkdir -p _reference
|
|
- mv _build/docs/gdk-pixbuf/ _reference/gdk-pixbuf/
|
|
- mv _build/docs/gdk-pixdata/ _reference/gdk-pixdata/
|
|
artifacts:
|
|
when: on_success
|
|
paths:
|
|
- _reference
|
|
|
|
pages:
|
|
stage: deploy
|
|
needs: ["reference", "static-scan"]
|
|
script:
|
|
- mv _reference public
|
|
- mv _static_scan public/static-scan/
|
|
artifacts:
|
|
when: on_success
|
|
paths:
|
|
- public
|
|
only:
|
|
- master
|